From 23eb4a95581ebd90708cec67fc91352ee7079a76 Mon Sep 17 00:00:00 2001 From: emmanuelm41 Date: Fri, 18 Oct 2024 10:16:04 -0300 Subject: [PATCH] feat: commit initial app code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: AndrĂ©s Benso Co-authored-by: Natanael Mojica --- .clang-format | 5 + .clang-tidy | 22 + .editorconfig | 16 + .github/workflows/check_version.yml | 55 + .github/workflows/codeql.yml | 40 + .github/workflows/guidelines_enforcer.yml | 25 + .github/workflows/lint.yml | 43 + .github/workflows/main.yml | 302 ++ .gitignore | 82 + .gitmodules | 15 + CMakeLists.txt | 248 ++ LICENSE | 201 ++ Makefile | 66 + README.md | 211 +- app/.gitignore | 51 + app/LICENSE | 201 ++ app/Makefile | 167 + app/Makefile.version | 6 + app/flex_icon.gif | Bin 0 -> 147 bytes app/glyphs/icon_app.gif | Bin 0 -> 107 bytes app/glyphs/icon_stax_32.gif | Bin 0 -> 167 bytes app/glyphs/icon_stax_64.gif | Bin 0 -> 313 bytes app/nanos_icon.gif | Bin 0 -> 107 bytes app/nanox_icon.gif | Bin 0 -> 104 bytes app/output/.gitkeep | 0 app/pkg/.gitkeep | 0 app/rust/.cargo/.package-cache-mutate | 0 app/rust/.cargo/config.toml | 22 + app/rust/Cargo.lock | 531 ++++ app/rust/Cargo.toml | 64 + app/rust/include/rslib.h | 29 + app/rust/src/address.rs | 202 ++ app/rust/src/address/address_index.rs | 0 app/rust/src/address/address_view.rs | 29 + app/rust/src/bolos.rs | 75 + app/rust/src/constants.rs | 37 + app/rust/src/effect_hash.rs | 76 + app/rust/src/ffi.rs | 2 + app/rust/src/ffi/bech32.rs | 51 + app/rust/src/ffi/keys.rs | 134 + app/rust/src/keys.rs | 18 + app/rust/src/keys/clue_key.rs | 189 ++ app/rust/src/keys/detection_key.rs | 109 + app/rust/src/keys/dk.rs | 128 + app/rust/src/keys/fvk.rs | 152 + app/rust/src/keys/ivk.rs | 117 + app/rust/src/keys/ka.rs | 63 + app/rust/src/keys/nk.rs | 37 + app/rust/src/keys/ovk.rs | 65 + app/rust/src/keys/payload_key.rs | 62 + app/rust/src/keys/signing_key.rs | 39 + app/rust/src/keys/spend_key.rs | 100 + app/rust/src/keys/transmission_key.rs | 17 + app/rust/src/lib.rs | 92 + app/rust/src/network.rs | 6 + app/rust/src/parser.rs | 120 + app/rust/src/parser/address.rs | 101 + app/rust/src/parser/amount.rs | 71 + app/rust/src/parser/asset_id.rs | 87 + app/rust/src/parser/bytes.rs | 63 + app/rust/src/parser/clue_plan.rs | 67 + app/rust/src/parser/curve_fields.rs | 75 + app/rust/src/parser/error.rs | 98 + app/rust/src/parser/fee.rs | 57 + app/rust/src/parser/note.rs | 56 + app/rust/src/parser/object_list.rs | 283 ++ app/rust/src/parser/plans.rs | 245 ++ app/rust/src/parser/plans/action.rs | 93 + app/rust/src/parser/plans/detection.rs | 124 + app/rust/src/parser/plans/memo.rs | 112 + app/rust/src/parser/plans/memo_plain_text.rs | 46 + app/rust/src/parser/plans/spend.rs | 67 + app/rust/src/parser/plans/symmetric.rs | 88 + app/rust/src/parser/position.rs | 48 + app/rust/src/parser/precision.rs | 81 + app/rust/src/parser/tx_parameters.rs | 86 + app/rust/src/parser/value.rs | 73 + app/rust/src/utils.rs | 129 + app/rust/src/utils/apdu_unwrap.rs | 63 + app/rust/src/utils/big_int.rs | 5 + app/rust/src/utils/prf.rs | 78 + app/rust/src/wallet_id.rs | 3 + app/script_s2.ld | 170 ++ app/script_x.ld | 175 ++ app/src/addr.c | 104 + app/src/addr.h | 36 + app/src/apdu_handler.c | 291 ++ app/src/c_api/rust.c | 26 + app/src/coin.h | 57 + app/src/common/actions.c | 19 + app/src/common/actions.h | 97 + app/src/common/main.c | 38 + app/src/common/parser.h | 43 + app/src/common/parser_common.h | 80 + app/src/common/tx.c | 115 + app/src/common/tx.h | 52 + app/src/constants.h | 0 app/src/crypto.c | 163 + app/src/crypto.h | 45 + app/src/crypto_helper.c | 50 + app/src/crypto_helper.h | 54 + app/src/keys_def.h | 102 + app/src/nanopb_tiny/pb.h | 881 ++++++ app/src/nanopb_tiny/pb_common.c | 339 +++ app/src/nanopb_tiny/pb_common.h | 49 + app/src/nanopb_tiny/pb_decode.c | 1494 +++++++++ app/src/nanopb_tiny/pb_decode.h | 209 ++ app/src/parser.c | 122 + app/src/parser_impl.c | 376 +++ app/src/parser_impl.h | 39 + app/src/parser_interface.c | 54 + app/src/parser_interface.h | 35 + app/src/parser_pb_utils.c | 54 + app/src/parser_pb_utils.h | 54 + app/src/parser_txdef.h | 122 + app/src/protobuf/amino/amino.pb.c | 7 + app/src/protobuf/amino/amino.pb.h | 34 + .../protobuf/capability/v1/capability.pb.c | 13 + .../protobuf/capability/v1/capability.pb.h | 102 + app/src/protobuf/capability/v1/genesis.pb.c | 11 + app/src/protobuf/capability/v1/genesis.pb.h | 92 + .../cosmos/app/runtime/v1alpha1/module.pb.c | 11 + .../cosmos/app/runtime/v1alpha1/module.pb.h | 138 + .../protobuf/cosmos/app/v1alpha1/config.pb.c | 13 + .../protobuf/cosmos/app/v1alpha1/config.pb.h | 143 + .../protobuf/cosmos/app/v1alpha1/module.pb.c | 25 + .../protobuf/cosmos/app/v1alpha1/module.pb.h | 160 + .../protobuf/cosmos/app/v1alpha1/query.pb.c | 11 + .../protobuf/cosmos/app/v1alpha1/query.pb.h | 73 + .../cosmos/auth/module/v1/module.pb.c | 11 + .../cosmos/auth/module/v1/module.pb.h | 93 + .../protobuf/cosmos/auth/v1beta1/auth.pb.c | 15 + .../protobuf/cosmos/auth/v1beta1/auth.pb.h | 158 + .../protobuf/cosmos/auth/v1beta1/genesis.pb.c | 9 + .../protobuf/cosmos/auth/v1beta1/genesis.pb.h | 66 + .../protobuf/cosmos/auth/v1beta1/query.pb.c | 47 + .../protobuf/cosmos/auth/v1beta1/query.pb.h | 493 +++ app/src/protobuf/cosmos/auth/v1beta1/tx.pb.c | 11 + app/src/protobuf/cosmos/auth/v1beta1/tx.pb.h | 86 + .../cosmos/authz/module/v1/module.pb.c | 9 + .../cosmos/authz/module/v1/module.pb.h | 51 + .../protobuf/cosmos/authz/v1beta1/authz.pb.c | 15 + .../protobuf/cosmos/authz/v1beta1/authz.pb.h | 149 + .../protobuf/cosmos/authz/v1beta1/event.pb.c | 11 + .../protobuf/cosmos/authz/v1beta1/event.pb.h | 95 + .../cosmos/authz/v1beta1/genesis.pb.c | 9 + .../cosmos/authz/v1beta1/genesis.pb.h | 57 + .../protobuf/cosmos/authz/v1beta1/query.pb.c | 19 + .../protobuf/cosmos/authz/v1beta1/query.pb.h | 193 ++ app/src/protobuf/cosmos/authz/v1beta1/tx.pb.c | 19 + app/src/protobuf/cosmos/authz/v1beta1/tx.pb.h | 180 ++ .../protobuf/cosmos/autocli/v1/options.pb.c | 22 + .../protobuf/cosmos/autocli/v1/options.pb.h | 304 ++ app/src/protobuf/cosmos/autocli/v1/query.pb.c | 14 + app/src/protobuf/cosmos/autocli/v1/query.pb.h | 98 + .../cosmos/bank/module/v1/module.pb.c | 9 + .../cosmos/bank/module/v1/module.pb.h | 62 + .../protobuf/cosmos/bank/v1beta1/authz.pb.c | 9 + .../protobuf/cosmos/bank/v1beta1/authz.pb.h | 69 + .../protobuf/cosmos/bank/v1beta1/bank.pb.c | 21 + .../protobuf/cosmos/bank/v1beta1/bank.pb.h | 265 ++ .../protobuf/cosmos/bank/v1beta1/genesis.pb.c | 11 + .../protobuf/cosmos/bank/v1beta1/genesis.pb.h | 114 + .../protobuf/cosmos/bank/v1beta1/query.pb.c | 55 + .../protobuf/cosmos/bank/v1beta1/query.pb.h | 625 ++++ app/src/protobuf/cosmos/bank/v1beta1/tx.pb.c | 23 + app/src/protobuf/cosmos/bank/v1beta1/tx.pb.h | 238 ++ .../cosmos/base/abci/v1beta1/abci.pb.c | 29 + .../cosmos/base/abci/v1beta1/abci.pb.h | 449 +++ .../cosmos/base/node/v1beta1/query.pb.c | 15 + .../cosmos/base/node/v1beta1/query.pb.h | 135 + .../cosmos/base/query/v1beta1/pagination.pb.c | 11 + .../cosmos/base/query/v1beta1/pagination.pb.h | 114 + .../base/reflection/v1beta1/reflection.pb.c | 19 + .../base/reflection/v1beta1/reflection.pb.h | 126 + .../base/reflection/v2alpha1/reflection.pb.c | 74 + .../base/reflection/v2alpha1/reflection.pb.h | 715 +++++ .../cosmos/base/tendermint/v1beta1/query.pb.c | 49 + .../cosmos/base/tendermint/v1beta1/query.pb.h | 600 ++++ .../cosmos/base/tendermint/v1beta1/types.pb.c | 11 + .../cosmos/base/tendermint/v1beta1/types.pb.h | 163 + .../protobuf/cosmos/base/v1beta1/coin.pb.c | 11 + .../protobuf/cosmos/base/v1beta1/coin.pb.h | 91 + .../cosmos/circuit/module/v1/module.pb.c | 9 + .../cosmos/circuit/module/v1/module.pb.h | 55 + app/src/protobuf/cosmos/circuit/v1/query.pb.c | 19 + app/src/protobuf/cosmos/circuit/v1/query.pb.h | 164 + app/src/protobuf/cosmos/circuit/v1/tx.pb.c | 19 + app/src/protobuf/cosmos/circuit/v1/tx.pb.h | 178 ++ app/src/protobuf/cosmos/circuit/v1/types.pb.c | 13 + app/src/protobuf/cosmos/circuit/v1/types.pb.h | 137 + .../cosmos/consensus/module/v1/module.pb.c | 9 + .../cosmos/consensus/module/v1/module.pb.h | 55 + .../protobuf/cosmos/consensus/v1/query.pb.c | 11 + .../protobuf/cosmos/consensus/v1/query.pb.h | 76 + app/src/protobuf/cosmos/consensus/v1/tx.pb.c | 11 + app/src/protobuf/cosmos/consensus/v1/tx.pb.h | 99 + .../cosmos/crisis/module/v1/module.pb.c | 9 + .../cosmos/crisis/module/v1/module.pb.h | 60 + .../cosmos/crisis/v1beta1/genesis.pb.c | 9 + .../cosmos/crisis/v1beta1/genesis.pb.h | 59 + .../protobuf/cosmos/crisis/v1beta1/tx.pb.c | 15 + .../protobuf/cosmos/crisis/v1beta1/tx.pb.h | 132 + .../protobuf/cosmos/crypto/ed25519/keys.pb.c | 11 + .../protobuf/cosmos/crypto/ed25519/keys.pb.h | 81 + app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.c | 9 + app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.h | 71 + .../cosmos/crypto/keyring/v1/record.pb.c | 17 + .../cosmos/crypto/keyring/v1/record.pb.h | 169 ++ .../protobuf/cosmos/crypto/multisig/keys.pb.c | 9 + .../protobuf/cosmos/crypto/multisig/keys.pb.h | 63 + .../crypto/multisig/v1beta1/multisig.pb.c | 11 + .../crypto/multisig/v1beta1/multisig.pb.h | 84 + .../cosmos/crypto/secp256k1/keys.pb.c | 11 + .../cosmos/crypto/secp256k1/keys.pb.h | 80 + .../cosmos/crypto/secp256r1/keys.pb.c | 11 + .../cosmos/crypto/secp256r1/keys.pb.h | 78 + .../cosmos/distribution/module/v1/module.pb.c | 9 + .../cosmos/distribution/module/v1/module.pb.h | 59 + .../distribution/v1beta1/distribution.pb.c | 34 + .../distribution/v1beta1/distribution.pb.h | 381 +++ .../cosmos/distribution/v1beta1/genesis.pb.c | 28 + .../cosmos/distribution/v1beta1/genesis.pb.h | 333 ++ .../cosmos/distribution/v1beta1/query.pb.c | 63 + .../cosmos/distribution/v1beta1/query.pb.h | 562 ++++ .../cosmos/distribution/v1beta1/tx.pb.c | 43 + .../cosmos/distribution/v1beta1/tx.pb.h | 389 +++ .../cosmos/evidence/module/v1/module.pb.c | 9 + .../cosmos/evidence/module/v1/module.pb.h | 51 + .../cosmos/evidence/v1beta1/evidence.pb.c | 9 + .../cosmos/evidence/v1beta1/evidence.pb.h | 74 + .../cosmos/evidence/v1beta1/genesis.pb.c | 9 + .../cosmos/evidence/v1beta1/genesis.pb.h | 56 + .../cosmos/evidence/v1beta1/query.pb.c | 15 + .../cosmos/evidence/v1beta1/query.pb.h | 139 + .../protobuf/cosmos/evidence/v1beta1/tx.pb.c | 11 + .../protobuf/cosmos/evidence/v1beta1/tx.pb.h | 85 + .../cosmos/feegrant/module/v1/module.pb.c | 9 + .../cosmos/feegrant/module/v1/module.pb.h | 51 + .../cosmos/feegrant/v1beta1/feegrant.pb.c | 15 + .../cosmos/feegrant/v1beta1/feegrant.pb.h | 180 ++ .../cosmos/feegrant/v1beta1/genesis.pb.c | 9 + .../cosmos/feegrant/v1beta1/genesis.pb.h | 57 + .../cosmos/feegrant/v1beta1/query.pb.c | 21 + .../cosmos/feegrant/v1beta1/query.pb.h | 193 ++ .../protobuf/cosmos/feegrant/v1beta1/tx.pb.c | 15 + .../protobuf/cosmos/feegrant/v1beta1/tx.pb.h | 127 + .../cosmos/genutil/module/v1/module.pb.c | 9 + .../cosmos/genutil/module/v1/module.pb.h | 51 + .../cosmos/genutil/v1beta1/genesis.pb.c | 9 + .../cosmos/genutil/v1beta1/genesis.pb.h | 56 + .../protobuf/cosmos/gov/module/v1/module.pb.c | 9 + .../protobuf/cosmos/gov/module/v1/module.pb.h | 61 + app/src/protobuf/cosmos/gov/v1/genesis.pb.c | 9 + app/src/protobuf/cosmos/gov/v1/genesis.pb.h | 117 + app/src/protobuf/cosmos/gov/v1/gov.pb.c | 25 + app/src/protobuf/cosmos/gov/v1/gov.pb.h | 513 ++++ app/src/protobuf/cosmos/gov/v1/query.pb.c | 43 + app/src/protobuf/cosmos/gov/v1/query.pb.h | 500 +++ app/src/protobuf/cosmos/gov/v1/tx.pb.c | 35 + app/src/protobuf/cosmos/gov/v1/tx.pb.h | 419 +++ .../protobuf/cosmos/gov/v1beta1/genesis.pb.c | 9 + .../protobuf/cosmos/gov/v1beta1/genesis.pb.h | 93 + app/src/protobuf/cosmos/gov/v1beta1/gov.pb.c | 25 + app/src/protobuf/cosmos/gov/v1beta1/gov.pb.h | 415 +++ .../protobuf/cosmos/gov/v1beta1/query.pb.c | 39 + .../protobuf/cosmos/gov/v1beta1/query.pb.h | 451 +++ app/src/protobuf/cosmos/gov/v1beta1/tx.pb.c | 23 + app/src/protobuf/cosmos/gov/v1beta1/tx.pb.h | 239 ++ .../cosmos/group/module/v1/module.pb.c | 9 + .../cosmos/group/module/v1/module.pb.h | 64 + app/src/protobuf/cosmos/group/v1/events.pb.c | 25 + app/src/protobuf/cosmos/group/v1/events.pb.h | 227 ++ app/src/protobuf/cosmos/group/v1/genesis.pb.c | 9 + app/src/protobuf/cosmos/group/v1/genesis.pb.h | 92 + app/src/protobuf/cosmos/group/v1/query.pb.c | 63 + app/src/protobuf/cosmos/group/v1/query.pb.h | 712 +++++ app/src/protobuf/cosmos/group/v1/tx.pb.c | 64 + app/src/protobuf/cosmos/group/v1/tx.pb.h | 787 +++++ app/src/protobuf/cosmos/group/v1/types.pb.c | 29 + app/src/protobuf/cosmos/group/v1/types.pb.h | 586 ++++ app/src/protobuf/cosmos/ics23/v1/proofs.pb.c | 33 + app/src/protobuf/cosmos/ics23/v1/proofs.pb.h | 574 ++++ .../cosmos/mint/module/v1/module.pb.c | 9 + .../cosmos/mint/module/v1/module.pb.h | 59 + .../protobuf/cosmos/mint/v1beta1/genesis.pb.c | 9 + .../protobuf/cosmos/mint/v1beta1/genesis.pb.h | 65 + .../protobuf/cosmos/mint/v1beta1/mint.pb.c | 11 + .../protobuf/cosmos/mint/v1beta1/mint.pb.h | 101 + .../protobuf/cosmos/mint/v1beta1/query.pb.c | 19 + .../protobuf/cosmos/mint/v1beta1/query.pb.h | 158 + app/src/protobuf/cosmos/mint/v1beta1/tx.pb.c | 11 + app/src/protobuf/cosmos/mint/v1beta1/tx.pb.h | 86 + .../cosmos/msg/textual/v1/textual.pb.c | 7 + .../cosmos/msg/textual/v1/textual.pb.h | 24 + app/src/protobuf/cosmos/msg/v1/msg.pb.c | 7 + app/src/protobuf/cosmos/msg/v1/msg.pb.h | 26 + .../protobuf/cosmos/nft/module/v1/module.pb.c | 9 + .../protobuf/cosmos/nft/module/v1/module.pb.h | 51 + .../protobuf/cosmos/nft/v1beta1/event.pb.c | 13 + .../protobuf/cosmos/nft/v1beta1/event.pb.h | 128 + .../protobuf/cosmos/nft/v1beta1/genesis.pb.c | 11 + .../protobuf/cosmos/nft/v1beta1/genesis.pb.h | 90 + app/src/protobuf/cosmos/nft/v1beta1/nft.pb.c | 11 + app/src/protobuf/cosmos/nft/v1beta1/nft.pb.h | 121 + .../protobuf/cosmos/nft/v1beta1/query.pb.c | 35 + .../protobuf/cosmos/nft/v1beta1/query.pb.h | 366 +++ app/src/protobuf/cosmos/nft/v1beta1/tx.pb.c | 11 + app/src/protobuf/cosmos/nft/v1beta1/tx.pb.h | 86 + .../cosmos/orm/module/v1alpha1/module.pb.c | 9 + .../cosmos/orm/module/v1alpha1/module.pb.h | 53 + .../cosmos/orm/query/v1alpha1/query.pb.c | 21 + .../cosmos/orm/query/v1alpha1/query.pb.h | 287 ++ app/src/protobuf/cosmos/orm/v1/orm.pb.c | 39 + app/src/protobuf/cosmos/orm/v1/orm.pb.h | 184 ++ .../protobuf/cosmos/orm/v1alpha1/schema.pb.c | 23 + .../protobuf/cosmos/orm/v1alpha1/schema.pb.h | 122 + .../cosmos/params/module/v1/module.pb.c | 9 + .../cosmos/params/module/v1/module.pb.h | 51 + .../cosmos/params/v1beta1/params.pb.c | 11 + .../cosmos/params/v1beta1/params.pb.h | 93 + .../protobuf/cosmos/params/v1beta1/query.pb.c | 17 + .../protobuf/cosmos/params/v1beta1/query.pb.h | 159 + app/src/protobuf/cosmos/query/v1/query.pb.c | 7 + app/src/protobuf/cosmos/query/v1/query.pb.h | 24 + .../cosmos/reflection/v1/reflection.pb.c | 14 + .../cosmos/reflection/v1/reflection.pb.h | 74 + .../cosmos/slashing/module/v1/module.pb.c | 9 + .../cosmos/slashing/module/v1/module.pb.h | 55 + .../cosmos/slashing/v1beta1/genesis.pb.c | 15 + .../cosmos/slashing/v1beta1/genesis.pb.h | 151 + .../cosmos/slashing/v1beta1/query.pb.c | 19 + .../cosmos/slashing/v1beta1/query.pb.h | 172 ++ .../cosmos/slashing/v1beta1/slashing.pb.c | 11 + .../cosmos/slashing/v1beta1/slashing.pb.h | 119 + .../protobuf/cosmos/slashing/v1beta1/tx.pb.c | 15 + .../protobuf/cosmos/slashing/v1beta1/tx.pb.h | 124 + .../cosmos/staking/module/v1/module.pb.c | 9 + .../cosmos/staking/module/v1/module.pb.h | 62 + .../cosmos/staking/v1beta1/authz.pb.c | 11 + .../cosmos/staking/v1beta1/authz.pb.h | 135 + .../cosmos/staking/v1beta1/genesis.pb.c | 11 + .../cosmos/staking/v1beta1/genesis.pb.h | 120 + .../cosmos/staking/v1beta1/query.pb.c | 73 + .../cosmos/staking/v1beta1/query.pb.h | 751 +++++ .../cosmos/staking/v1beta1/staking.pb.c | 49 + .../cosmos/staking/v1beta1/staking.pb.h | 790 +++++ .../protobuf/cosmos/staking/v1beta1/tx.pb.c | 36 + .../protobuf/cosmos/staking/v1beta1/tx.pb.h | 419 +++ .../cosmos/store/internal/kv/v1beta1/kv.pb.c | 11 + .../cosmos/store/internal/kv/v1beta1/kv.pb.h | 80 + .../cosmos/store/snapshots/v1/snapshot.pb.c | 21 + .../cosmos/store/snapshots/v1/snapshot.pb.h | 227 ++ .../cosmos/store/streaming/abci/grpc.pb.c | 23 + .../cosmos/store/streaming/abci/grpc.pb.h | 223 ++ .../cosmos/store/v1beta1/commit_info.pb.c | 13 + .../cosmos/store/v1beta1/commit_info.pb.h | 112 + .../cosmos/store/v1beta1/listening.pb.c | 13 + .../cosmos/store/v1beta1/listening.pb.h | 150 + .../protobuf/cosmos/tx/config/v1/config.pb.c | 9 + .../protobuf/cosmos/tx/config/v1/config.pb.h | 59 + .../cosmos/tx/signing/v1beta1/signing.pb.c | 19 + .../cosmos/tx/signing/v1beta1/signing.pb.h | 240 ++ .../protobuf/cosmos/tx/v1beta1/service.pb.c | 43 + .../protobuf/cosmos/tx/v1beta1/service.pb.h | 605 ++++ app/src/protobuf/cosmos/tx/v1beta1/tx.pb.c | 33 + app/src/protobuf/cosmos/tx/v1beta1/tx.pb.h | 550 ++++ .../cosmos/upgrade/module/v1/module.pb.c | 9 + .../cosmos/upgrade/module/v1/module.pb.h | 55 + .../cosmos/upgrade/v1beta1/query.pb.c | 29 + .../cosmos/upgrade/v1beta1/query.pb.h | 262 ++ .../protobuf/cosmos/upgrade/v1beta1/tx.pb.c | 15 + .../protobuf/cosmos/upgrade/v1beta1/tx.pb.h | 126 + .../cosmos/upgrade/v1beta1/upgrade.pb.c | 15 + .../cosmos/upgrade/v1beta1/upgrade.pb.h | 177 ++ .../cosmos/vesting/module/v1/module.pb.c | 9 + .../cosmos/vesting/module/v1/module.pb.h | 51 + .../protobuf/cosmos/vesting/v1beta1/tx.pb.c | 21 + .../protobuf/cosmos/vesting/v1beta1/tx.pb.h | 200 ++ .../cosmos/vesting/v1beta1/vesting.pb.c | 19 + .../cosmos/vesting/v1beta1/vesting.pb.h | 203 ++ app/src/protobuf/cosmos_proto/cosmos.pb.c | 11 + app/src/protobuf/cosmos_proto/cosmos.pb.h | 139 + app/src/protobuf/gogoproto/gogo.pb.c | 859 ++++++ app/src/protobuf/gogoproto/gogo.pb.h | 99 + app/src/protobuf/google/api/annotations.pb.c | 19 + app/src/protobuf/google/api/annotations.pb.h | 25 + app/src/protobuf/google/api/http.pb.c | 13 + app/src/protobuf/google/api/http.pb.h | 441 +++ app/src/protobuf/google/protobuf/any.pb.c | 9 + app/src/protobuf/google/protobuf/any.pb.h | 169 ++ .../protobuf/google/protobuf/descriptor.pb.c | 82 + .../protobuf/google/protobuf/descriptor.pb.h | 2109 +++++++++++++ .../protobuf/google/protobuf/duration.pb.c | 9 + .../protobuf/google/protobuf/duration.pb.h | 119 + .../protobuf/google/protobuf/timestamp.pb.c | 9 + .../protobuf/google/protobuf/timestamp.pb.h | 148 + .../protobuf/ibc/applications/fee/v1/ack.pb.c | 9 + .../protobuf/ibc/applications/fee/v1/ack.pb.h | 58 + .../protobuf/ibc/applications/fee/v1/fee.pb.c | 15 + .../protobuf/ibc/applications/fee/v1/fee.pb.h | 157 + .../ibc/applications/fee/v1/genesis.pb.c | 17 + .../ibc/applications/fee/v1/genesis.pb.h | 195 ++ .../ibc/applications/fee/v1/metadata.pb.c | 9 + .../ibc/applications/fee/v1/metadata.pb.h | 59 + .../ibc/applications/fee/v1/query.pb.c | 53 + .../ibc/applications/fee/v1/query.pb.h | 546 ++++ .../protobuf/ibc/applications/fee/v1/tx.pb.c | 24 + .../protobuf/ibc/applications/fee/v1/tx.pb.h | 251 ++ .../controller/v1/controller.pb.c | 10 + .../controller/v1/controller.pb.h | 54 + .../controller/v1/query.pb.c | 19 + .../controller/v1/query.pb.h | 126 + .../interchain_accounts/controller/v1/tx.pb.c | 25 + .../interchain_accounts/controller/v1/tx.pb.h | 200 ++ .../genesis/v1/genesis.pb.c | 22 + .../genesis/v1/genesis.pb.h | 206 ++ .../interchain_accounts/host/v1/host.pb.c | 9 + .../interchain_accounts/host/v1/host.pb.h | 59 + .../interchain_accounts/host/v1/query.pb.c | 13 + .../interchain_accounts/host/v1/query.pb.h | 80 + .../interchain_accounts/host/v1/tx.pb.c | 13 + .../interchain_accounts/host/v1/tx.pb.h | 82 + .../interchain_accounts/v1/account.pb.c | 10 + .../interchain_accounts/v1/account.pb.h | 63 + .../interchain_accounts/v1/metadata.pb.c | 9 + .../interchain_accounts/v1/metadata.pb.h | 76 + .../interchain_accounts/v1/packet.pb.c | 12 + .../interchain_accounts/v1/packet.pb.h | 104 + .../ibc/applications/transfer/v1/authz.pb.c | 11 + .../ibc/applications/transfer/v1/authz.pb.h | 95 + .../ibc/applications/transfer/v1/genesis.pb.c | 9 + .../ibc/applications/transfer/v1/genesis.pb.h | 72 + .../ibc/applications/transfer/v1/query.pb.c | 34 + .../ibc/applications/transfer/v1/query.pb.h | 317 ++ .../applications/transfer/v1/transfer.pb.c | 11 + .../applications/transfer/v1/transfer.pb.h | 90 + .../ibc/applications/transfer/v1/tx.pb.c | 15 + .../ibc/applications/transfer/v1/tx.pb.h | 168 + .../ibc/applications/transfer/v2/packet.pb.c | 9 + .../ibc/applications/transfer/v2/packet.pb.h | 72 + .../protobuf/ibc/core/channel/v1/channel.pb.c | 23 + .../protobuf/ibc/core/channel/v1/channel.pb.h | 402 +++ .../protobuf/ibc/core/channel/v1/genesis.pb.c | 11 + .../protobuf/ibc/core/channel/v1/genesis.pb.h | 106 + .../protobuf/ibc/core/channel/v1/query.pb.c | 64 + .../protobuf/ibc/core/channel/v1/query.pb.h | 906 ++++++ app/src/protobuf/ibc/core/channel/v1/tx.pb.c | 47 + app/src/protobuf/ibc/core/channel/v1/tx.pb.h | 659 ++++ .../protobuf/ibc/core/client/v1/client.pb.c | 17 + .../protobuf/ibc/core/client/v1/client.pb.h | 176 ++ .../protobuf/ibc/core/client/v1/genesis.pb.c | 13 + .../protobuf/ibc/core/client/v1/genesis.pb.h | 133 + .../protobuf/ibc/core/client/v1/query.pb.c | 43 + .../protobuf/ibc/core/client/v1/query.pb.h | 487 +++ app/src/protobuf/ibc/core/client/v1/tx.pb.c | 35 + app/src/protobuf/ibc/core/client/v1/tx.pb.h | 417 +++ .../ibc/core/commitment/v1/commitment.pb.c | 15 + .../ibc/core/commitment/v1/commitment.pb.h | 128 + .../ibc/core/connection/v1/connection.pb.c | 21 + .../ibc/core/connection/v1/connection.pb.h | 287 ++ .../ibc/core/connection/v1/genesis.pb.c | 9 + .../ibc/core/connection/v1/genesis.pb.h | 66 + .../ibc/core/connection/v1/query.pb.c | 35 + .../ibc/core/connection/v1/query.pb.h | 377 +++ .../protobuf/ibc/core/connection/v1/tx.pb.c | 28 + .../protobuf/ibc/core/connection/v1/tx.pb.h | 389 +++ .../protobuf/ibc/core/types/v1/genesis.pb.c | 9 + .../protobuf/ibc/core/types/v1/genesis.pb.h | 81 + .../lightclients/localhost/v2/localhost.pb.c | 9 + .../lightclients/localhost/v2/localhost.pb.h | 56 + .../solomachine/v2/solomachine.pb.c | 42 + .../solomachine/v2/solomachine.pb.h | 523 ++++ .../solomachine/v3/solomachine.pb.c | 24 + .../solomachine/v3/solomachine.pb.h | 282 ++ .../tendermint/v1/tendermint.pb.c | 17 + .../tendermint/v1/tendermint.pb.h | 281 ++ .../penumbra/cnidarium/v1/cnidarium.pb.c | 34 + .../penumbra/cnidarium/v1/cnidarium.pb.h | 356 +++ .../protobuf/penumbra/core/app/v1/app.pb.c | 21 + .../protobuf/penumbra/core/app/v1/app.pb.h | 373 +++ .../penumbra/core/asset/v1/asset.pb.c | 41 + .../penumbra/core/asset/v1/asset.pb.h | 470 +++ .../core/component/auction/v1/auction.pb.c | 70 + .../core/component/auction/v1/auction.pb.h | 864 ++++++ .../community_pool/v1/community_pool.pb.c | 19 + .../community_pool/v1/community_pool.pb.h | 142 + .../compact_block/v1/compact_block.pb.c | 32 + .../compact_block/v1/compact_block.pb.h | 351 +++ .../penumbra/core/component/dex/v1/dex.pb.c | 186 ++ .../penumbra/core/component/dex/v1/dex.pb.h | 2700 +++++++++++++++++ .../distributions/v1/distributions.pb.c | 13 + .../distributions/v1/distributions.pb.h | 75 + .../penumbra/core/component/fee/v1/fee.pb.c | 28 + .../penumbra/core/component/fee/v1/fee.pb.h | 369 +++ .../core/component/funding/v1/funding.pb.c | 14 + .../core/component/funding/v1/funding.pb.h | 105 + .../component/governance/v1/governance.pb.c | 191 ++ .../component/governance/v1/governance.pb.h | 2114 +++++++++++++ .../penumbra/core/component/ibc/v1/ibc.pb.c | 29 + .../penumbra/core/component/ibc/v1/ibc.pb.h | 332 ++ .../penumbra/core/component/sct/v1/sct.pb.c | 56 + .../penumbra/core/component/sct/v1/sct.pb.h | 532 ++++ .../shielded_pool/v1/shielded_pool.pb.c | 96 + .../shielded_pool/v1/shielded_pool.pb.h | 1099 +++++++ .../core/component/stake/v1/stake.pb.c | 119 + .../core/component/stake/v1/stake.pb.h | 1449 +++++++++ .../protobuf/penumbra/core/keys/v1/keys.pb.c | 33 + .../protobuf/penumbra/core/keys/v1/keys.pb.h | 336 ++ .../protobuf/penumbra/core/num/v1/num.pb.c | 9 + .../protobuf/penumbra/core/num/v1/num.pb.h | 57 + .../core/transaction/v1/transaction.pb.c | 64 + .../core/transaction/v1/transaction.pb.h | 1555 ++++++++++ .../penumbra/core/txhash/v1/txhash.pb.c | 11 + .../penumbra/core/txhash/v1/txhash.pb.h | 76 + .../crypto/decaf377_fmd/v1/decaf377_fmd.pb.c | 9 + .../crypto/decaf377_fmd/v1/decaf377_fmd.pb.h | 52 + .../decaf377_frost/v1/decaf377_frost.pb.c | 22 + .../decaf377_frost/v1/decaf377_frost.pb.h | 206 ++ .../decaf377_rdsa/v1/decaf377_rdsa.pb.c | 13 + .../decaf377_rdsa/v1/decaf377_rdsa.pb.h | 92 + .../protobuf/penumbra/crypto/tct/v1/tct.pb.c | 15 + .../protobuf/penumbra/crypto/tct/v1/tct.pb.h | 130 + .../custody/threshold/v1/threshold.pb.c | 38 + .../custody/threshold/v1/threshold.pb.h | 471 +++ .../protobuf/penumbra/custody/v1/custody.pb.c | 33 + .../protobuf/penumbra/custody/v1/custody.pb.h | 345 +++ .../tools/summoning/v1/summoning.pb.c | 32 + .../tools/summoning/v1/summoning.pb.h | 359 +++ .../tendermint_proxy/v1/tendermint_proxy.pb.c | 43 + .../tendermint_proxy/v1/tendermint_proxy.pb.h | 483 +++ app/src/protobuf/penumbra/view/v1/view.pb.c | 179 ++ app/src/protobuf/penumbra/view/v1/view.pb.h | 2465 +++++++++++++++ app/src/protobuf/tendermint/abci/types.pb.c | 99 + app/src/protobuf/tendermint/abci/types.pb.h | 1525 ++++++++++ app/src/protobuf/tendermint/crypto/keys.pb.c | 9 + app/src/protobuf/tendermint/crypto/keys.pb.h | 65 + app/src/protobuf/tendermint/crypto/proof.pb.c | 17 + app/src/protobuf/tendermint/crypto/proof.pb.h | 166 + .../protobuf/tendermint/libs/bits/types.pb.c | 9 + .../protobuf/tendermint/libs/bits/types.pb.h | 55 + app/src/protobuf/tendermint/p2p/types.pb.c | 15 + app/src/protobuf/tendermint/p2p/types.pb.h | 152 + app/src/protobuf/tendermint/types/block.pb.c | 9 + app/src/protobuf/tendermint/types/block.pb.h | 81 + .../protobuf/tendermint/types/evidence.pb.c | 15 + .../protobuf/tendermint/types/evidence.pb.h | 166 + app/src/protobuf/tendermint/types/params.pb.c | 19 + app/src/protobuf/tendermint/types/params.pb.h | 203 ++ app/src/protobuf/tendermint/types/types.pb.c | 33 + app/src/protobuf/tendermint/types/types.pb.h | 524 ++++ .../protobuf/tendermint/types/validator.pb.c | 13 + .../protobuf/tendermint/types/validator.pb.h | 113 + .../protobuf/tendermint/version/types.pb.c | 11 + .../protobuf/tendermint/version/types.pb.h | 84 + app/src/spend_plan.c | 59 + app/src/spend_plan.h | 42 + app/stax_icon.gif | Bin 0 -> 167 bytes cmake/Hunter/config.cmake | 3 + cmake/HunterGate.cmake | 543 ++++ cmake/cmake-modules | 1 + deps/blake2 | 1 + deps/ledger-secure-sdk | 1 + deps/ledger-zxlib | 1 + deps/nanopb | 1 + docs/APDUSPEC.md | 205 ++ docs/zondax_dark.png | Bin 0 -> 21692 bytes docs/zondax_light.png | Bin 0 -> 26737 bytes fuzz/parser_parse.cpp | 64 + fuzz/run-fuzz-crashes.py | 41 + fuzz/run-fuzzers.py | 39 + ledger_app.toml | 7 + proto/.DS_Store | Bin 0 -> 6148 bytes proto/buf.gen.yaml | 13 + proto/buf.lock | 21 + proto/buf.yaml | 20 + proto/penumbra/.DS_Store | Bin 0 -> 6148 bytes proto/penumbra/penumbra/.DS_Store | Bin 0 -> 6148 bytes .../penumbra/cnidarium/v1/cnidarium.proto | 116 + proto/penumbra/penumbra/core/.DS_Store | Bin 0 -> 6148 bytes proto/penumbra/penumbra/core/app/v1/app.proto | 105 + .../penumbra/core/asset/v1/asset.proto | 169 ++ .../core/component/auction/v1/auction.proto | 227 ++ .../community_pool/v1/community_pool.proto | 35 + .../compact_block/v1/compact_block.proto | 89 + .../penumbra/core/component/dex/v1/dex.proto | 808 +++++ .../distributions/v1/distributions.proto | 13 + .../penumbra/core/component/fee/v1/fee.proto | 120 + .../core/component/funding/v1/funding.proto | 25 + .../component/governance/v1/governance.proto | 591 ++++ .../penumbra/core/component/ibc/v1/ibc.proto | 100 + .../penumbra/core/component/sct/v1/sct.proto | 138 + .../shielded_pool/v1/shielded_pool.proto | 277 ++ .../core/component/stake/v1/stake.proto | 411 +++ .../penumbra/penumbra/core/keys/v1/keys.proto | 75 + proto/penumbra/penumbra/core/num/v1/num.proto | 12 + .../penumbra/core/transaction/.DS_Store | Bin 0 -> 6148 bytes .../core/transaction/v1/transaction.proto | 383 +++ .../penumbra/core/txhash/v1/txhash.proto | 15 + .../crypto/decaf377_fmd/v1/decaf377_fmd.proto | 7 + .../decaf377_frost/v1/decaf377_frost.proto | 49 + .../decaf377_rdsa/v1/decaf377_rdsa.proto | 14 + .../penumbra/penumbra/crypto/tct/v1/tct.proto | 24 + .../custody/threshold/v1/threshold.proto | 122 + .../penumbra/custody/v1/custody.proto | 131 + .../tools/summoning/v1/summoning.proto | 102 + .../v1/tendermint_proxy.proto | 153 + proto/penumbra/penumbra/view/v1/view.proto | 774 +++++ proto/rust-vendored/amino/amino.proto | 84 + .../capability/v1/capability.proto | 32 + .../rust-vendored/capability/v1/genesis.proto | 28 + .../cosmos/app/runtime/v1alpha1/module.proto | 65 + .../cosmos/app/v1alpha1/config.proto | 55 + .../cosmos/app/v1alpha1/module.proto | 91 + .../cosmos/app/v1alpha1/query.proto | 22 + .../cosmos/auth/module/v1/module.proto | 31 + .../cosmos/auth/v1beta1/auth.proto | 66 + .../cosmos/auth/v1beta1/genesis.proto | 18 + .../cosmos/auth/v1beta1/query.proto | 236 ++ .../cosmos/auth/v1beta1/tx.proto | 43 + .../cosmos/authz/module/v1/module.proto | 12 + .../cosmos/authz/v1beta1/authz.proto | 48 + .../cosmos/authz/v1beta1/event.proto | 27 + .../cosmos/authz/v1beta1/genesis.proto | 14 + .../cosmos/authz/v1beta1/query.proto | 82 + .../cosmos/authz/v1beta1/tx.proto | 81 + .../cosmos/autocli/v1/options.proto | 124 + .../cosmos/autocli/v1/query.proto | 28 + .../cosmos/bank/module/v1/module.proto | 20 + .../cosmos/bank/v1beta1/authz.proto | 31 + .../cosmos/bank/v1beta1/bank.proto | 125 + .../cosmos/bank/v1beta1/genesis.proto | 54 + .../cosmos/bank/v1beta1/query.proto | 355 +++ .../cosmos/bank/v1beta1/tx.proto | 123 + .../cosmos/base/abci/v1beta1/abci.proto | 177 ++ .../cosmos/base/node/v1beta1/query.proto | 43 + .../base/query/v1beta1/pagination.proto | 56 + .../base/reflection/v1beta1/reflection.proto | 44 + .../base/reflection/v2alpha1/reflection.proto | 218 ++ .../base/tendermint/v1beta1/query.proto | 208 ++ .../base/tendermint/v1beta1/types.proto | 52 + .../cosmos/base/v1beta1/coin.proto | 41 + .../cosmos/circuit/module/v1/module.proto | 15 + .../cosmos/circuit/v1/query.proto | 61 + .../rust-vendored/cosmos/circuit/v1/tx.proto | 83 + .../cosmos/circuit/v1/types.proto | 49 + .../cosmos/consensus/module/v1/module.proto | 15 + .../cosmos/consensus/v1/query.proto | 27 + .../cosmos/consensus/v1/tx.proto | 43 + .../cosmos/crisis/module/v1/module.proto | 18 + .../cosmos/crisis/v1beta1/genesis.proto | 15 + .../cosmos/crisis/v1beta1/tx.proto | 65 + .../cosmos/crypto/ed25519/keys.proto | 39 + .../cosmos/crypto/hd/v1/hd.proto | 27 + .../cosmos/crypto/keyring/v1/record.proto | 48 + .../cosmos/crypto/multisig/keys.proto | 30 + .../crypto/multisig/v1beta1/multisig.proto | 25 + .../cosmos/crypto/secp256k1/keys.proto | 38 + .../cosmos/crypto/secp256r1/keys.proto | 23 + .../distribution/module/v1/module.proto | 17 + .../distribution/v1beta1/distribution.proto | 194 ++ .../cosmos/distribution/v1beta1/genesis.proto | 155 + .../cosmos/distribution/v1beta1/query.proto | 255 ++ .../cosmos/distribution/v1beta1/tx.proto | 215 ++ .../cosmos/evidence/module/v1/module.proto | 12 + .../cosmos/evidence/v1beta1/evidence.proto | 31 + .../cosmos/evidence/v1beta1/genesis.proto | 12 + .../cosmos/evidence/v1beta1/query.proto | 56 + .../cosmos/evidence/v1beta1/tx.proto | 42 + .../cosmos/feegrant/module/v1/module.proto | 12 + .../cosmos/feegrant/v1beta1/feegrant.proto | 96 + .../cosmos/feegrant/v1beta1/genesis.proto | 14 + .../cosmos/feegrant/v1beta1/query.proto | 84 + .../cosmos/feegrant/v1beta1/tx.proto | 57 + .../cosmos/genutil/module/v1/module.proto | 12 + .../cosmos/genutil/v1beta1/genesis.proto | 18 + .../cosmos/gov/module/v1/module.proto | 19 + .../rust-vendored/cosmos/gov/v1/genesis.proto | 40 + proto/rust-vendored/cosmos/gov/v1/gov.proto | 257 ++ proto/rust-vendored/cosmos/gov/v1/query.proto | 206 ++ proto/rust-vendored/cosmos/gov/v1/tx.proto | 205 ++ .../cosmos/gov/v1beta1/genesis.proto | 30 + .../cosmos/gov/v1beta1/gov.proto | 251 ++ .../cosmos/gov/v1beta1/query.proto | 194 ++ .../rust-vendored/cosmos/gov/v1beta1/tx.proto | 134 + .../cosmos/group/module/v1/module.proto | 24 + .../cosmos/group/v1/events.proto | 81 + .../cosmos/group/v1/genesis.proto | 39 + .../rust-vendored/cosmos/group/v1/query.proto | 320 ++ proto/rust-vendored/cosmos/group/v1/tx.proto | 394 +++ .../rust-vendored/cosmos/group/v1/types.proto | 337 ++ .../cosmos/ics23/v1/proofs.proto | 234 ++ .../cosmos/mint/module/v1/module.proto | 17 + .../cosmos/mint/v1beta1/genesis.proto | 17 + .../cosmos/mint/v1beta1/mint.proto | 62 + .../cosmos/mint/v1beta1/query.proto | 65 + .../cosmos/mint/v1beta1/tx.proto | 43 + .../cosmos/msg/textual/v1/textual.proto | 18 + proto/rust-vendored/cosmos/msg/v1/msg.proto | 30 + .../cosmos/nft/module/v1/module.proto | 12 + .../cosmos/nft/v1beta1/event.proto | 43 + .../cosmos/nft/v1beta1/genesis.proto | 24 + .../cosmos/nft/v1beta1/nft.proto | 48 + .../cosmos/nft/v1beta1/query.proto | 152 + .../rust-vendored/cosmos/nft/v1beta1/tx.proto | 34 + .../cosmos/orm/module/v1alpha1/module.proto | 14 + .../cosmos/orm/query/v1alpha1/query.proto | 131 + proto/rust-vendored/cosmos/orm/v1/orm.proto | 107 + .../cosmos/orm/v1alpha1/schema.proto | 58 + .../cosmos/params/module/v1/module.proto | 12 + .../cosmos/params/v1beta1/params.proto | 28 + .../cosmos/params/v1beta1/query.proto | 63 + .../rust-vendored/cosmos/query/v1/query.proto | 35 + .../cosmos/reflection/v1/reflection.proto | 27 + .../cosmos/slashing/module/v1/module.proto | 15 + .../cosmos/slashing/v1beta1/genesis.proto | 48 + .../cosmos/slashing/v1beta1/query.proto | 66 + .../cosmos/slashing/v1beta1/slashing.proto | 68 + .../cosmos/slashing/v1beta1/tx.proto | 67 + .../cosmos/staking/module/v1/module.proto | 20 + .../cosmos/staking/v1beta1/authz.proto | 51 + .../cosmos/staking/v1beta1/genesis.proto | 53 + .../cosmos/staking/v1beta1/query.proto | 387 +++ .../cosmos/staking/v1beta1/staking.proto | 394 +++ .../cosmos/staking/v1beta1/tx.proto | 206 ++ .../cosmos/store/internal/kv/v1beta1/kv.proto | 19 + .../cosmos/store/snapshots/v1/snapshot.proto | 67 + .../cosmos/store/streaming/abci/grpc.proto | 60 + .../cosmos/store/v1beta1/commit_info.proto | 32 + .../cosmos/store/v1beta1/listening.proto | 34 + .../cosmos/tx/config/v1/config.proto | 20 + .../cosmos/tx/signing/v1beta1/signing.proto | 108 + .../cosmos/tx/v1beta1/service.proto | 293 ++ .../rust-vendored/cosmos/tx/v1beta1/tx.proto | 256 ++ .../cosmos/upgrade/module/v1/module.proto | 15 + .../cosmos/upgrade/v1beta1/query.proto | 122 + .../cosmos/upgrade/v1beta1/tx.proto | 62 + .../cosmos/upgrade/v1beta1/upgrade.proto | 94 + .../cosmos/vesting/module/v1/module.proto | 12 + .../cosmos/vesting/v1beta1/tx.proto | 102 + .../cosmos/vesting/v1beta1/vesting.proto | 94 + proto/rust-vendored/cosmos_proto/cosmos.proto | 97 + proto/rust-vendored/gogoproto/gogo.proto | 145 + .../google/api/annotations.proto | 31 + proto/rust-vendored/google/api/http.proto | 375 +++ proto/rust-vendored/google/protobuf/any.proto | 162 + .../google/protobuf/descriptor.proto | 1293 ++++++++ .../google/protobuf/duration.proto | 115 + .../google/protobuf/timestamp.proto | 144 + .../ibc/applications/fee/v1/ack.proto | 15 + .../ibc/applications/fee/v1/fee.proto | 61 + .../ibc/applications/fee/v1/genesis.proto | 60 + .../ibc/applications/fee/v1/metadata.proto | 14 + .../ibc/applications/fee/v1/query.proto | 218 ++ .../ibc/applications/fee/v1/tx.proto | 122 + .../controller/v1/controller.proto | 12 + .../controller/v1/query.proto | 42 + .../controller/v1/tx.proto | 80 + .../genesis/v1/genesis.proto | 47 + .../interchain_accounts/host/v1/host.proto | 14 + .../interchain_accounts/host/v1/query.proto | 25 + .../interchain_accounts/host/v1/tx.proto | 35 + .../interchain_accounts/v1/account.proto | 19 + .../interchain_accounts/v1/metadata.proto | 23 + .../interchain_accounts/v1/packet.proto | 31 + .../ibc/applications/transfer/v1/authz.proto | 31 + .../applications/transfer/v1/genesis.proto | 20 + .../ibc/applications/transfer/v1/query.proto | 121 + .../applications/transfer/v1/transfer.proto | 28 + .../ibc/applications/transfer/v1/tx.proto | 79 + .../ibc/applications/transfer/v2/packet.proto | 21 + .../ibc/core/channel/v1/channel.proto | 171 ++ .../ibc/core/channel/v1/genesis.proto | 29 + .../ibc/core/channel/v1/query.proto | 402 +++ .../ibc/core/channel/v1/tx.proto | 255 ++ .../ibc/core/client/v1/client.proto | 63 + .../ibc/core/client/v1/genesis.proto | 44 + .../ibc/core/client/v1/query.proto | 207 ++ .../rust-vendored/ibc/core/client/v1/tx.proto | 175 ++ .../ibc/core/commitment/v1/commitment.proto | 41 + .../ibc/core/connection/v1/connection.proto | 114 + .../ibc/core/connection/v1/genesis.proto | 17 + .../ibc/core/connection/v1/query.proto | 152 + .../ibc/core/connection/v1/tx.proto | 146 + .../ibc/core/types/v1/genesis.proto | 20 + .../lightclients/localhost/v2/localhost.proto | 16 + .../solomachine/v2/solomachine.proto | 189 ++ .../solomachine/v3/solomachine.proto | 99 + .../tendermint/v1/tendermint.proto | 101 + .../rust-vendored/tendermint/abci/types.proto | 444 +++ .../tendermint/crypto/keys.proto | 17 + .../tendermint/crypto/proof.proto | 41 + .../tendermint/libs/bits/types.proto | 9 + .../rust-vendored/tendermint/p2p/types.proto | 34 + .../tendermint/types/block.proto | 15 + .../tendermint/types/evidence.proto | 38 + .../tendermint/types/params.proto | 77 + .../tendermint/types/types.proto | 157 + .../tendermint/types/validator.proto | 25 + .../tendermint/version/types.proto | 24 + tests/parser_impl.cpp | 69 + tests/parser_test.txt | 46 + tests/testcases.json | 74 + tests/ui_tests.txt | 139 + tests/utils/common.cpp | 62 + tests/utils/common.h | 21 + tests_zemu/.editorconfig | 12 + tests_zemu/.eslintrc.js | 24 + tests_zemu/.gitignore | 71 + tests_zemu/.npmignore | 1 + tests_zemu/.prettierignore | 2 + tests_zemu/.prettierrc | 9 + tests_zemu/globalsetup.js | 16 + tests_zemu/jest.config.js | 5 + tests_zemu/jest.js | 0 tests_zemu/package.json | 48 + tests_zemu/snapshots/fl-mainmenu/00000.png | Bin 0 -> 12808 bytes tests_zemu/snapshots/fl-mainmenu/00001.png | Bin 0 -> 6025 bytes tests_zemu/snapshots/fl-mainmenu/00002.png | Bin 0 -> 5918 bytes tests_zemu/snapshots/fl-mainmenu/00003.png | Bin 0 -> 6025 bytes tests_zemu/snapshots/fl-mainmenu/00004.png | Bin 0 -> 8979 bytes tests_zemu/snapshots/fl-mainmenu/00005.png | Bin 0 -> 9966 bytes tests_zemu/snapshots/fl-mainmenu/00006.png | Bin 0 -> 12808 bytes .../snapshots/fl-show_address/00000.png | Bin 0 -> 10050 bytes .../snapshots/fl-show_address/00001.png | Bin 0 -> 31748 bytes .../snapshots/fl-show_address/00002.png | Bin 0 -> 8094 bytes .../snapshots/fl-show_address/00003.png | Bin 0 -> 12808 bytes .../fl-show_address_randomized/00000.png | Bin 0 -> 10050 bytes .../fl-show_address_randomized/00001.png | Bin 0 -> 31220 bytes .../fl-show_address_randomized/00002.png | Bin 0 -> 8404 bytes .../fl-show_address_randomized/00003.png | Bin 0 -> 12808 bytes tests_zemu/snapshots/s-mainmenu/00000.png | Bin 0 -> 440 bytes tests_zemu/snapshots/s-mainmenu/00001.png | Bin 0 -> 513 bytes tests_zemu/snapshots/s-mainmenu/00002.png | Bin 0 -> 500 bytes tests_zemu/snapshots/s-mainmenu/00003.png | Bin 0 -> 513 bytes tests_zemu/snapshots/s-mainmenu/00004.png | Bin 0 -> 424 bytes tests_zemu/snapshots/s-mainmenu/00005.png | Bin 0 -> 536 bytes tests_zemu/snapshots/s-mainmenu/00006.png | Bin 0 -> 488 bytes tests_zemu/snapshots/s-mainmenu/00007.png | Bin 0 -> 271 bytes tests_zemu/snapshots/s-mainmenu/00008.png | Bin 0 -> 488 bytes tests_zemu/snapshots/s-mainmenu/00009.png | Bin 0 -> 536 bytes tests_zemu/snapshots/s-mainmenu/00010.png | Bin 0 -> 424 bytes tests_zemu/snapshots/s-mainmenu/00011.png | Bin 0 -> 513 bytes tests_zemu/snapshots/s-mainmenu/00012.png | Bin 0 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00000.png | Bin 0 -> 504 bytes tests_zemu/snapshots/sp-mainmenu/00001.png | Bin 0 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00002.png | Bin 0 -> 426 bytes tests_zemu/snapshots/sp-mainmenu/00003.png | Bin 0 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 0 -> 346 bytes tests_zemu/snapshots/sp-mainmenu/00005.png | Bin 0 -> 462 bytes tests_zemu/snapshots/sp-mainmenu/00006.png | Bin 0 -> 411 bytes tests_zemu/snapshots/sp-mainmenu/00007.png | Bin 0 -> 333 bytes tests_zemu/snapshots/sp-mainmenu/00008.png | Bin 0 -> 411 bytes tests_zemu/snapshots/sp-mainmenu/00009.png | Bin 0 -> 462 bytes tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 0 -> 346 bytes tests_zemu/snapshots/sp-mainmenu/00011.png | Bin 0 -> 440 bytes tests_zemu/snapshots/sp-mainmenu/00012.png | Bin 0 -> 504 bytes .../snapshots/sp-show_address/00000.png | Bin 0 -> 473 bytes .../snapshots/sp-show_address/00001.png | Bin 0 -> 893 bytes .../snapshots/sp-show_address/00002.png | Bin 0 -> 938 bytes .../snapshots/sp-show_address/00003.png | Bin 0 -> 733 bytes .../snapshots/sp-show_address/00004.png | Bin 0 -> 378 bytes .../snapshots/sp-show_address/00005.png | Bin 0 -> 355 bytes .../snapshots/sp-show_address/00006.png | Bin 0 -> 504 bytes .../sp-show_address_randomized/00000.png | Bin 0 -> 473 bytes .../sp-show_address_randomized/00001.png | Bin 0 -> 929 bytes .../sp-show_address_randomized/00002.png | Bin 0 -> 947 bytes .../sp-show_address_randomized/00003.png | Bin 0 -> 717 bytes .../sp-show_address_randomized/00004.png | Bin 0 -> 385 bytes .../sp-show_address_randomized/00005.png | Bin 0 -> 355 bytes .../sp-show_address_randomized/00006.png | Bin 0 -> 504 bytes tests_zemu/snapshots/st-mainmenu/00000.png | Bin 0 -> 11071 bytes tests_zemu/snapshots/st-mainmenu/00001.png | Bin 0 -> 5755 bytes tests_zemu/snapshots/st-mainmenu/00002.png | Bin 0 -> 5593 bytes tests_zemu/snapshots/st-mainmenu/00003.png | Bin 0 -> 5755 bytes tests_zemu/snapshots/st-mainmenu/00004.png | Bin 0 -> 10811 bytes tests_zemu/snapshots/st-mainmenu/00005.png | Bin 0 -> 6166 bytes tests_zemu/snapshots/st-mainmenu/00006.png | Bin 0 -> 11071 bytes .../snapshots/st-show_address/00000.png | Bin 0 -> 9384 bytes .../snapshots/st-show_address/00001.png | Bin 0 -> 28064 bytes .../snapshots/st-show_address/00002.png | Bin 0 -> 7357 bytes .../snapshots/st-show_address/00003.png | Bin 0 -> 11071 bytes .../st-show_address_randomized/00000.png | Bin 0 -> 9384 bytes .../st-show_address_randomized/00001.png | Bin 0 -> 27548 bytes .../st-show_address_randomized/00002.png | Bin 0 -> 7634 bytes .../st-show_address_randomized/00003.png | Bin 0 -> 11071 bytes tests_zemu/snapshots/x-mainmenu/00000.png | Bin 0 -> 504 bytes tests_zemu/snapshots/x-mainmenu/00001.png | Bin 0 -> 440 bytes tests_zemu/snapshots/x-mainmenu/00002.png | Bin 0 -> 426 bytes tests_zemu/snapshots/x-mainmenu/00003.png | Bin 0 -> 440 bytes tests_zemu/snapshots/x-mainmenu/00004.png | Bin 0 -> 346 bytes tests_zemu/snapshots/x-mainmenu/00005.png | Bin 0 -> 462 bytes tests_zemu/snapshots/x-mainmenu/00006.png | Bin 0 -> 411 bytes tests_zemu/snapshots/x-mainmenu/00007.png | Bin 0 -> 333 bytes tests_zemu/snapshots/x-mainmenu/00008.png | Bin 0 -> 411 bytes tests_zemu/snapshots/x-mainmenu/00009.png | Bin 0 -> 462 bytes tests_zemu/snapshots/x-mainmenu/00010.png | Bin 0 -> 346 bytes tests_zemu/snapshots/x-mainmenu/00011.png | Bin 0 -> 440 bytes tests_zemu/snapshots/x-mainmenu/00012.png | Bin 0 -> 504 bytes tests_zemu/snapshots/x-show_address/00000.png | Bin 0 -> 473 bytes tests_zemu/snapshots/x-show_address/00001.png | Bin 0 -> 893 bytes tests_zemu/snapshots/x-show_address/00002.png | Bin 0 -> 938 bytes tests_zemu/snapshots/x-show_address/00003.png | Bin 0 -> 733 bytes tests_zemu/snapshots/x-show_address/00004.png | Bin 0 -> 378 bytes tests_zemu/snapshots/x-show_address/00005.png | Bin 0 -> 355 bytes tests_zemu/snapshots/x-show_address/00006.png | Bin 0 -> 504 bytes .../x-show_address_randomized/00000.png | Bin 0 -> 473 bytes .../x-show_address_randomized/00001.png | Bin 0 -> 929 bytes .../x-show_address_randomized/00002.png | Bin 0 -> 947 bytes .../x-show_address_randomized/00003.png | Bin 0 -> 717 bytes .../x-show_address_randomized/00004.png | Bin 0 -> 385 bytes .../x-show_address_randomized/00005.png | Bin 0 -> 355 bytes .../x-show_address_randomized/00006.png | Bin 0 -> 504 bytes tests_zemu/tests/common.ts | 33 + tests_zemu/tests/pullImageKillOld.ts | 4 + tests_zemu/tests/standard.test.ts | 214 ++ tests_zemu/try.mjs | 29 + tests_zemu/tsconfig.json | 15 + 918 files changed, 101755 insertions(+), 1 deletion(-) create mode 100644 .clang-format create mode 100644 .clang-tidy create mode 100644 .editorconfig create mode 100644 .github/workflows/check_version.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/guidelines_enforcer.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/main.yml create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 app/.gitignore create mode 100644 app/LICENSE create mode 100755 app/Makefile create mode 100644 app/Makefile.version create mode 100644 app/flex_icon.gif create mode 100644 app/glyphs/icon_app.gif create mode 100644 app/glyphs/icon_stax_32.gif create mode 100644 app/glyphs/icon_stax_64.gif create mode 100644 app/nanos_icon.gif create mode 100644 app/nanox_icon.gif create mode 100644 app/output/.gitkeep create mode 100644 app/pkg/.gitkeep create mode 100644 app/rust/.cargo/.package-cache-mutate create mode 100644 app/rust/.cargo/config.toml create mode 100644 app/rust/Cargo.lock create mode 100644 app/rust/Cargo.toml create mode 100644 app/rust/include/rslib.h create mode 100644 app/rust/src/address.rs create mode 100644 app/rust/src/address/address_index.rs create mode 100644 app/rust/src/address/address_view.rs create mode 100644 app/rust/src/bolos.rs create mode 100644 app/rust/src/constants.rs create mode 100644 app/rust/src/effect_hash.rs create mode 100644 app/rust/src/ffi.rs create mode 100644 app/rust/src/ffi/bech32.rs create mode 100644 app/rust/src/ffi/keys.rs create mode 100644 app/rust/src/keys.rs create mode 100644 app/rust/src/keys/clue_key.rs create mode 100644 app/rust/src/keys/detection_key.rs create mode 100644 app/rust/src/keys/dk.rs create mode 100644 app/rust/src/keys/fvk.rs create mode 100644 app/rust/src/keys/ivk.rs create mode 100644 app/rust/src/keys/ka.rs create mode 100644 app/rust/src/keys/nk.rs create mode 100644 app/rust/src/keys/ovk.rs create mode 100644 app/rust/src/keys/payload_key.rs create mode 100644 app/rust/src/keys/signing_key.rs create mode 100644 app/rust/src/keys/spend_key.rs create mode 100644 app/rust/src/keys/transmission_key.rs create mode 100644 app/rust/src/lib.rs create mode 100644 app/rust/src/network.rs create mode 100644 app/rust/src/parser.rs create mode 100644 app/rust/src/parser/address.rs create mode 100644 app/rust/src/parser/amount.rs create mode 100644 app/rust/src/parser/asset_id.rs create mode 100644 app/rust/src/parser/bytes.rs create mode 100644 app/rust/src/parser/clue_plan.rs create mode 100644 app/rust/src/parser/curve_fields.rs create mode 100644 app/rust/src/parser/error.rs create mode 100644 app/rust/src/parser/fee.rs create mode 100644 app/rust/src/parser/note.rs create mode 100644 app/rust/src/parser/object_list.rs create mode 100644 app/rust/src/parser/plans.rs create mode 100644 app/rust/src/parser/plans/action.rs create mode 100644 app/rust/src/parser/plans/detection.rs create mode 100644 app/rust/src/parser/plans/memo.rs create mode 100644 app/rust/src/parser/plans/memo_plain_text.rs create mode 100644 app/rust/src/parser/plans/spend.rs create mode 100644 app/rust/src/parser/plans/symmetric.rs create mode 100644 app/rust/src/parser/position.rs create mode 100644 app/rust/src/parser/precision.rs create mode 100644 app/rust/src/parser/tx_parameters.rs create mode 100644 app/rust/src/parser/value.rs create mode 100644 app/rust/src/utils.rs create mode 100644 app/rust/src/utils/apdu_unwrap.rs create mode 100644 app/rust/src/utils/big_int.rs create mode 100644 app/rust/src/utils/prf.rs create mode 100644 app/rust/src/wallet_id.rs create mode 100644 app/script_s2.ld create mode 100644 app/script_x.ld create mode 100644 app/src/addr.c create mode 100644 app/src/addr.h create mode 100644 app/src/apdu_handler.c create mode 100644 app/src/c_api/rust.c create mode 100644 app/src/coin.h create mode 100644 app/src/common/actions.c create mode 100644 app/src/common/actions.h create mode 100644 app/src/common/main.c create mode 100644 app/src/common/parser.h create mode 100644 app/src/common/parser_common.h create mode 100644 app/src/common/tx.c create mode 100644 app/src/common/tx.h create mode 100644 app/src/constants.h create mode 100644 app/src/crypto.c create mode 100644 app/src/crypto.h create mode 100644 app/src/crypto_helper.c create mode 100644 app/src/crypto_helper.h create mode 100644 app/src/keys_def.h create mode 100644 app/src/nanopb_tiny/pb.h create mode 100644 app/src/nanopb_tiny/pb_common.c create mode 100644 app/src/nanopb_tiny/pb_common.h create mode 100644 app/src/nanopb_tiny/pb_decode.c create mode 100644 app/src/nanopb_tiny/pb_decode.h create mode 100644 app/src/parser.c create mode 100644 app/src/parser_impl.c create mode 100644 app/src/parser_impl.h create mode 100644 app/src/parser_interface.c create mode 100644 app/src/parser_interface.h create mode 100644 app/src/parser_pb_utils.c create mode 100644 app/src/parser_pb_utils.h create mode 100644 app/src/parser_txdef.h create mode 100644 app/src/protobuf/amino/amino.pb.c create mode 100644 app/src/protobuf/amino/amino.pb.h create mode 100644 app/src/protobuf/capability/v1/capability.pb.c create mode 100644 app/src/protobuf/capability/v1/capability.pb.h create mode 100644 app/src/protobuf/capability/v1/genesis.pb.c create mode 100644 app/src/protobuf/capability/v1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.c create mode 100644 app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.h create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/config.pb.c create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/config.pb.h create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/module.pb.c create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/module.pb.h create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/query.pb.c create mode 100644 app/src/protobuf/cosmos/app/v1alpha1/query.pb.h create mode 100644 app/src/protobuf/cosmos/auth/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/auth/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/auth.pb.c create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/auth.pb.h create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/auth/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/authz/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/authz/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/authz.pb.c create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/authz.pb.h create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/event.pb.c create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/event.pb.h create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/authz/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/autocli/v1/options.pb.c create mode 100644 app/src/protobuf/cosmos/autocli/v1/options.pb.h create mode 100644 app/src/protobuf/cosmos/autocli/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/autocli/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/bank/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/bank/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/authz.pb.c create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/authz.pb.h create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/bank.pb.c create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/bank.pb.h create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/bank/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.c create mode 100644 app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.h create mode 100644 app/src/protobuf/cosmos/base/node/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/base/node/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.c create mode 100644 app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.h create mode 100644 app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.c create mode 100644 app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.h create mode 100644 app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.c create mode 100644 app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.h create mode 100644 app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.c create mode 100644 app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.h create mode 100644 app/src/protobuf/cosmos/base/v1beta1/coin.pb.c create mode 100644 app/src/protobuf/cosmos/base/v1beta1/coin.pb.h create mode 100644 app/src/protobuf/cosmos/circuit/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/circuit/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/circuit/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/circuit/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/circuit/v1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/circuit/v1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/circuit/v1/types.pb.c create mode 100644 app/src/protobuf/cosmos/circuit/v1/types.pb.h create mode 100644 app/src/protobuf/cosmos/consensus/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/consensus/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/consensus/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/consensus/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/consensus/v1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/consensus/v1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/crisis/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/crisis/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/ed25519/keys.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/ed25519/keys.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/multisig/keys.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/multisig/keys.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.h create mode 100644 app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.c create mode 100644 app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.h create mode 100644 app/src/protobuf/cosmos/distribution/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/distribution/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.c create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.h create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/evidence/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/evidence/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.c create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.h create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/feegrant/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/feegrant/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.c create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.h create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/genutil/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/genutil/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/gov/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/gov/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1/gov.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1/gov.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/gov.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/gov.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/gov/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/group/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/group/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/group/v1/events.pb.c create mode 100644 app/src/protobuf/cosmos/group/v1/events.pb.h create mode 100644 app/src/protobuf/cosmos/group/v1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/group/v1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/group/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/group/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/group/v1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/group/v1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/group/v1/types.pb.c create mode 100644 app/src/protobuf/cosmos/group/v1/types.pb.h create mode 100644 app/src/protobuf/cosmos/ics23/v1/proofs.pb.c create mode 100644 app/src/protobuf/cosmos/ics23/v1/proofs.pb.h create mode 100644 app/src/protobuf/cosmos/mint/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/mint/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/mint.pb.c create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/mint.pb.h create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/mint/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/msg/textual/v1/textual.pb.c create mode 100644 app/src/protobuf/cosmos/msg/textual/v1/textual.pb.h create mode 100644 app/src/protobuf/cosmos/msg/v1/msg.pb.c create mode 100644 app/src/protobuf/cosmos/msg/v1/msg.pb.h create mode 100644 app/src/protobuf/cosmos/nft/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/nft/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/event.pb.c create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/event.pb.h create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/nft.pb.c create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/nft.pb.h create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/nft/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.c create mode 100644 app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.h create mode 100644 app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.c create mode 100644 app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.h create mode 100644 app/src/protobuf/cosmos/orm/v1/orm.pb.c create mode 100644 app/src/protobuf/cosmos/orm/v1/orm.pb.h create mode 100644 app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.c create mode 100644 app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.h create mode 100644 app/src/protobuf/cosmos/params/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/params/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/params/v1beta1/params.pb.c create mode 100644 app/src/protobuf/cosmos/params/v1beta1/params.pb.h create mode 100644 app/src/protobuf/cosmos/params/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/params/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/query/v1/query.pb.c create mode 100644 app/src/protobuf/cosmos/query/v1/query.pb.h create mode 100644 app/src/protobuf/cosmos/reflection/v1/reflection.pb.c create mode 100644 app/src/protobuf/cosmos/reflection/v1/reflection.pb.h create mode 100644 app/src/protobuf/cosmos/slashing/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/slashing/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.c create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.h create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/staking/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/staking/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/authz.pb.c create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/authz.pb.h create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.c create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.h create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/staking.pb.c create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/staking.pb.h create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/staking/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.c create mode 100644 app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.h create mode 100644 app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.c create mode 100644 app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.h create mode 100644 app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.c create mode 100644 app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.h create mode 100644 app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.c create mode 100644 app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.h create mode 100644 app/src/protobuf/cosmos/store/v1beta1/listening.pb.c create mode 100644 app/src/protobuf/cosmos/store/v1beta1/listening.pb.h create mode 100644 app/src/protobuf/cosmos/tx/config/v1/config.pb.c create mode 100644 app/src/protobuf/cosmos/tx/config/v1/config.pb.h create mode 100644 app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.c create mode 100644 app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.h create mode 100644 app/src/protobuf/cosmos/tx/v1beta1/service.pb.c create mode 100644 app/src/protobuf/cosmos/tx/v1beta1/service.pb.h create mode 100644 app/src/protobuf/cosmos/tx/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/tx/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/upgrade/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/upgrade/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.c create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.h create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.c create mode 100644 app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.h create mode 100644 app/src/protobuf/cosmos/vesting/module/v1/module.pb.c create mode 100644 app/src/protobuf/cosmos/vesting/module/v1/module.pb.h create mode 100644 app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.c create mode 100644 app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.h create mode 100644 app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.c create mode 100644 app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.h create mode 100644 app/src/protobuf/cosmos_proto/cosmos.pb.c create mode 100644 app/src/protobuf/cosmos_proto/cosmos.pb.h create mode 100644 app/src/protobuf/gogoproto/gogo.pb.c create mode 100644 app/src/protobuf/gogoproto/gogo.pb.h create mode 100644 app/src/protobuf/google/api/annotations.pb.c create mode 100644 app/src/protobuf/google/api/annotations.pb.h create mode 100644 app/src/protobuf/google/api/http.pb.c create mode 100644 app/src/protobuf/google/api/http.pb.h create mode 100644 app/src/protobuf/google/protobuf/any.pb.c create mode 100644 app/src/protobuf/google/protobuf/any.pb.h create mode 100644 app/src/protobuf/google/protobuf/descriptor.pb.c create mode 100644 app/src/protobuf/google/protobuf/descriptor.pb.h create mode 100644 app/src/protobuf/google/protobuf/duration.pb.c create mode 100644 app/src/protobuf/google/protobuf/duration.pb.h create mode 100644 app/src/protobuf/google/protobuf/timestamp.pb.c create mode 100644 app/src/protobuf/google/protobuf/timestamp.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/ack.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/ack.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/fee.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/fee.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/metadata.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/metadata.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/applications/fee/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/applications/fee/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.h create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.c create mode 100644 app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/authz.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/authz.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/applications/transfer/v2/packet.pb.c create mode 100644 app/src/protobuf/ibc/applications/transfer/v2/packet.pb.h create mode 100644 app/src/protobuf/ibc/core/channel/v1/channel.pb.c create mode 100644 app/src/protobuf/ibc/core/channel/v1/channel.pb.h create mode 100644 app/src/protobuf/ibc/core/channel/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/core/channel/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/core/channel/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/core/channel/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/core/channel/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/core/channel/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/core/client/v1/client.pb.c create mode 100644 app/src/protobuf/ibc/core/client/v1/client.pb.h create mode 100644 app/src/protobuf/ibc/core/client/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/core/client/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/core/client/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/core/client/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/core/client/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/core/client/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/core/commitment/v1/commitment.pb.c create mode 100644 app/src/protobuf/ibc/core/commitment/v1/commitment.pb.h create mode 100644 app/src/protobuf/ibc/core/connection/v1/connection.pb.c create mode 100644 app/src/protobuf/ibc/core/connection/v1/connection.pb.h create mode 100644 app/src/protobuf/ibc/core/connection/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/core/connection/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/core/connection/v1/query.pb.c create mode 100644 app/src/protobuf/ibc/core/connection/v1/query.pb.h create mode 100644 app/src/protobuf/ibc/core/connection/v1/tx.pb.c create mode 100644 app/src/protobuf/ibc/core/connection/v1/tx.pb.h create mode 100644 app/src/protobuf/ibc/core/types/v1/genesis.pb.c create mode 100644 app/src/protobuf/ibc/core/types/v1/genesis.pb.h create mode 100644 app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.c create mode 100644 app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.h create mode 100644 app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.c create mode 100644 app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.h create mode 100644 app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.c create mode 100644 app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.h create mode 100644 app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.c create mode 100644 app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.h create mode 100644 app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.c create mode 100644 app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.h create mode 100644 app/src/protobuf/penumbra/core/app/v1/app.pb.c create mode 100644 app/src/protobuf/penumbra/core/app/v1/app.pb.h create mode 100644 app/src/protobuf/penumbra/core/asset/v1/asset.pb.c create mode 100644 app/src/protobuf/penumbra/core/asset/v1/asset.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h create mode 100644 app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.c create mode 100644 app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.h create mode 100644 app/src/protobuf/penumbra/core/keys/v1/keys.pb.c create mode 100644 app/src/protobuf/penumbra/core/keys/v1/keys.pb.h create mode 100644 app/src/protobuf/penumbra/core/num/v1/num.pb.c create mode 100644 app/src/protobuf/penumbra/core/num/v1/num.pb.h create mode 100644 app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.c create mode 100644 app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.h create mode 100644 app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.c create mode 100644 app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.h create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.c create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.c create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.c create mode 100644 app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h create mode 100644 app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.c create mode 100644 app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.h create mode 100644 app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.c create mode 100644 app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.h create mode 100644 app/src/protobuf/penumbra/custody/v1/custody.pb.c create mode 100644 app/src/protobuf/penumbra/custody/v1/custody.pb.h create mode 100644 app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.c create mode 100644 app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.h create mode 100644 app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.c create mode 100644 app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.h create mode 100644 app/src/protobuf/penumbra/view/v1/view.pb.c create mode 100644 app/src/protobuf/penumbra/view/v1/view.pb.h create mode 100644 app/src/protobuf/tendermint/abci/types.pb.c create mode 100644 app/src/protobuf/tendermint/abci/types.pb.h create mode 100644 app/src/protobuf/tendermint/crypto/keys.pb.c create mode 100644 app/src/protobuf/tendermint/crypto/keys.pb.h create mode 100644 app/src/protobuf/tendermint/crypto/proof.pb.c create mode 100644 app/src/protobuf/tendermint/crypto/proof.pb.h create mode 100644 app/src/protobuf/tendermint/libs/bits/types.pb.c create mode 100644 app/src/protobuf/tendermint/libs/bits/types.pb.h create mode 100644 app/src/protobuf/tendermint/p2p/types.pb.c create mode 100644 app/src/protobuf/tendermint/p2p/types.pb.h create mode 100644 app/src/protobuf/tendermint/types/block.pb.c create mode 100644 app/src/protobuf/tendermint/types/block.pb.h create mode 100644 app/src/protobuf/tendermint/types/evidence.pb.c create mode 100644 app/src/protobuf/tendermint/types/evidence.pb.h create mode 100644 app/src/protobuf/tendermint/types/params.pb.c create mode 100644 app/src/protobuf/tendermint/types/params.pb.h create mode 100644 app/src/protobuf/tendermint/types/types.pb.c create mode 100644 app/src/protobuf/tendermint/types/types.pb.h create mode 100644 app/src/protobuf/tendermint/types/validator.pb.c create mode 100644 app/src/protobuf/tendermint/types/validator.pb.h create mode 100644 app/src/protobuf/tendermint/version/types.pb.c create mode 100644 app/src/protobuf/tendermint/version/types.pb.h create mode 100644 app/src/spend_plan.c create mode 100644 app/src/spend_plan.h create mode 100644 app/stax_icon.gif create mode 100644 cmake/Hunter/config.cmake create mode 100644 cmake/HunterGate.cmake create mode 160000 cmake/cmake-modules create mode 160000 deps/blake2 create mode 160000 deps/ledger-secure-sdk create mode 160000 deps/ledger-zxlib create mode 160000 deps/nanopb create mode 100644 docs/APDUSPEC.md create mode 100644 docs/zondax_dark.png create mode 100644 docs/zondax_light.png create mode 100644 fuzz/parser_parse.cpp create mode 100755 fuzz/run-fuzz-crashes.py create mode 100755 fuzz/run-fuzzers.py create mode 100644 ledger_app.toml create mode 100644 proto/.DS_Store create mode 100644 proto/buf.gen.yaml create mode 100644 proto/buf.lock create mode 100644 proto/buf.yaml create mode 100644 proto/penumbra/.DS_Store create mode 100644 proto/penumbra/penumbra/.DS_Store create mode 100644 proto/penumbra/penumbra/cnidarium/v1/cnidarium.proto create mode 100644 proto/penumbra/penumbra/core/.DS_Store create mode 100644 proto/penumbra/penumbra/core/app/v1/app.proto create mode 100644 proto/penumbra/penumbra/core/asset/v1/asset.proto create mode 100755 proto/penumbra/penumbra/core/component/auction/v1/auction.proto create mode 100644 proto/penumbra/penumbra/core/component/community_pool/v1/community_pool.proto create mode 100644 proto/penumbra/penumbra/core/component/compact_block/v1/compact_block.proto create mode 100644 proto/penumbra/penumbra/core/component/dex/v1/dex.proto create mode 100644 proto/penumbra/penumbra/core/component/distributions/v1/distributions.proto create mode 100644 proto/penumbra/penumbra/core/component/fee/v1/fee.proto create mode 100644 proto/penumbra/penumbra/core/component/funding/v1/funding.proto create mode 100644 proto/penumbra/penumbra/core/component/governance/v1/governance.proto create mode 100644 proto/penumbra/penumbra/core/component/ibc/v1/ibc.proto create mode 100644 proto/penumbra/penumbra/core/component/sct/v1/sct.proto create mode 100644 proto/penumbra/penumbra/core/component/shielded_pool/v1/shielded_pool.proto create mode 100644 proto/penumbra/penumbra/core/component/stake/v1/stake.proto create mode 100644 proto/penumbra/penumbra/core/keys/v1/keys.proto create mode 100644 proto/penumbra/penumbra/core/num/v1/num.proto create mode 100644 proto/penumbra/penumbra/core/transaction/.DS_Store create mode 100644 proto/penumbra/penumbra/core/transaction/v1/transaction.proto create mode 100644 proto/penumbra/penumbra/core/txhash/v1/txhash.proto create mode 100644 proto/penumbra/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto create mode 100644 proto/penumbra/penumbra/crypto/decaf377_frost/v1/decaf377_frost.proto create mode 100644 proto/penumbra/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto create mode 100644 proto/penumbra/penumbra/crypto/tct/v1/tct.proto create mode 100644 proto/penumbra/penumbra/custody/threshold/v1/threshold.proto create mode 100644 proto/penumbra/penumbra/custody/v1/custody.proto create mode 100644 proto/penumbra/penumbra/tools/summoning/v1/summoning.proto create mode 100644 proto/penumbra/penumbra/util/tendermint_proxy/v1/tendermint_proxy.proto create mode 100644 proto/penumbra/penumbra/view/v1/view.proto create mode 100644 proto/rust-vendored/amino/amino.proto create mode 100644 proto/rust-vendored/capability/v1/capability.proto create mode 100644 proto/rust-vendored/capability/v1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/app/runtime/v1alpha1/module.proto create mode 100644 proto/rust-vendored/cosmos/app/v1alpha1/config.proto create mode 100644 proto/rust-vendored/cosmos/app/v1alpha1/module.proto create mode 100644 proto/rust-vendored/cosmos/app/v1alpha1/query.proto create mode 100644 proto/rust-vendored/cosmos/auth/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/auth/v1beta1/auth.proto create mode 100644 proto/rust-vendored/cosmos/auth/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/auth/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/auth/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/authz/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/authz/v1beta1/authz.proto create mode 100644 proto/rust-vendored/cosmos/authz/v1beta1/event.proto create mode 100644 proto/rust-vendored/cosmos/authz/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/authz/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/authz/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/autocli/v1/options.proto create mode 100644 proto/rust-vendored/cosmos/autocli/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/bank/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/bank/v1beta1/authz.proto create mode 100644 proto/rust-vendored/cosmos/bank/v1beta1/bank.proto create mode 100644 proto/rust-vendored/cosmos/bank/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/bank/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/bank/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/base/abci/v1beta1/abci.proto create mode 100644 proto/rust-vendored/cosmos/base/node/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/base/query/v1beta1/pagination.proto create mode 100644 proto/rust-vendored/cosmos/base/reflection/v1beta1/reflection.proto create mode 100644 proto/rust-vendored/cosmos/base/reflection/v2alpha1/reflection.proto create mode 100644 proto/rust-vendored/cosmos/base/tendermint/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/base/tendermint/v1beta1/types.proto create mode 100644 proto/rust-vendored/cosmos/base/v1beta1/coin.proto create mode 100644 proto/rust-vendored/cosmos/circuit/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/circuit/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/circuit/v1/tx.proto create mode 100644 proto/rust-vendored/cosmos/circuit/v1/types.proto create mode 100644 proto/rust-vendored/cosmos/consensus/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/consensus/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/consensus/v1/tx.proto create mode 100644 proto/rust-vendored/cosmos/crisis/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/crisis/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/crisis/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/crypto/ed25519/keys.proto create mode 100644 proto/rust-vendored/cosmos/crypto/hd/v1/hd.proto create mode 100644 proto/rust-vendored/cosmos/crypto/keyring/v1/record.proto create mode 100644 proto/rust-vendored/cosmos/crypto/multisig/keys.proto create mode 100644 proto/rust-vendored/cosmos/crypto/multisig/v1beta1/multisig.proto create mode 100644 proto/rust-vendored/cosmos/crypto/secp256k1/keys.proto create mode 100644 proto/rust-vendored/cosmos/crypto/secp256r1/keys.proto create mode 100644 proto/rust-vendored/cosmos/distribution/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/distribution/v1beta1/distribution.proto create mode 100644 proto/rust-vendored/cosmos/distribution/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/distribution/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/distribution/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/evidence/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/evidence/v1beta1/evidence.proto create mode 100644 proto/rust-vendored/cosmos/evidence/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/evidence/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/evidence/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/feegrant/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/feegrant/v1beta1/feegrant.proto create mode 100644 proto/rust-vendored/cosmos/feegrant/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/feegrant/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/feegrant/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/genutil/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/genutil/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/gov/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1/gov.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1/tx.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1beta1/gov.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/gov/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/group/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/group/v1/events.proto create mode 100644 proto/rust-vendored/cosmos/group/v1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/group/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/group/v1/tx.proto create mode 100644 proto/rust-vendored/cosmos/group/v1/types.proto create mode 100644 proto/rust-vendored/cosmos/ics23/v1/proofs.proto create mode 100644 proto/rust-vendored/cosmos/mint/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/mint/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/mint/v1beta1/mint.proto create mode 100644 proto/rust-vendored/cosmos/mint/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/mint/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/msg/textual/v1/textual.proto create mode 100644 proto/rust-vendored/cosmos/msg/v1/msg.proto create mode 100644 proto/rust-vendored/cosmos/nft/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/nft/v1beta1/event.proto create mode 100644 proto/rust-vendored/cosmos/nft/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/nft/v1beta1/nft.proto create mode 100644 proto/rust-vendored/cosmos/nft/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/nft/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/orm/module/v1alpha1/module.proto create mode 100644 proto/rust-vendored/cosmos/orm/query/v1alpha1/query.proto create mode 100644 proto/rust-vendored/cosmos/orm/v1/orm.proto create mode 100644 proto/rust-vendored/cosmos/orm/v1alpha1/schema.proto create mode 100644 proto/rust-vendored/cosmos/params/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/params/v1beta1/params.proto create mode 100644 proto/rust-vendored/cosmos/params/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/query/v1/query.proto create mode 100644 proto/rust-vendored/cosmos/reflection/v1/reflection.proto create mode 100644 proto/rust-vendored/cosmos/slashing/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/slashing/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/slashing/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/slashing/v1beta1/slashing.proto create mode 100644 proto/rust-vendored/cosmos/slashing/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/staking/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/staking/v1beta1/authz.proto create mode 100644 proto/rust-vendored/cosmos/staking/v1beta1/genesis.proto create mode 100644 proto/rust-vendored/cosmos/staking/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/staking/v1beta1/staking.proto create mode 100644 proto/rust-vendored/cosmos/staking/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/store/internal/kv/v1beta1/kv.proto create mode 100644 proto/rust-vendored/cosmos/store/snapshots/v1/snapshot.proto create mode 100644 proto/rust-vendored/cosmos/store/streaming/abci/grpc.proto create mode 100644 proto/rust-vendored/cosmos/store/v1beta1/commit_info.proto create mode 100644 proto/rust-vendored/cosmos/store/v1beta1/listening.proto create mode 100644 proto/rust-vendored/cosmos/tx/config/v1/config.proto create mode 100644 proto/rust-vendored/cosmos/tx/signing/v1beta1/signing.proto create mode 100644 proto/rust-vendored/cosmos/tx/v1beta1/service.proto create mode 100644 proto/rust-vendored/cosmos/tx/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/upgrade/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/upgrade/v1beta1/query.proto create mode 100644 proto/rust-vendored/cosmos/upgrade/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/upgrade/v1beta1/upgrade.proto create mode 100644 proto/rust-vendored/cosmos/vesting/module/v1/module.proto create mode 100644 proto/rust-vendored/cosmos/vesting/v1beta1/tx.proto create mode 100644 proto/rust-vendored/cosmos/vesting/v1beta1/vesting.proto create mode 100644 proto/rust-vendored/cosmos_proto/cosmos.proto create mode 100644 proto/rust-vendored/gogoproto/gogo.proto create mode 100644 proto/rust-vendored/google/api/annotations.proto create mode 100644 proto/rust-vendored/google/api/http.proto create mode 100644 proto/rust-vendored/google/protobuf/any.proto create mode 100644 proto/rust-vendored/google/protobuf/descriptor.proto create mode 100644 proto/rust-vendored/google/protobuf/duration.proto create mode 100644 proto/rust-vendored/google/protobuf/timestamp.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/ack.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/fee.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/metadata.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/query.proto create mode 100644 proto/rust-vendored/ibc/applications/fee/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/controller.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/query.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/genesis/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/host.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/query.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/v1/account.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/v1/metadata.proto create mode 100644 proto/rust-vendored/ibc/applications/interchain_accounts/v1/packet.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v1/authz.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v1/query.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v1/transfer.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/applications/transfer/v2/packet.proto create mode 100644 proto/rust-vendored/ibc/core/channel/v1/channel.proto create mode 100644 proto/rust-vendored/ibc/core/channel/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/core/channel/v1/query.proto create mode 100644 proto/rust-vendored/ibc/core/channel/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/core/client/v1/client.proto create mode 100644 proto/rust-vendored/ibc/core/client/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/core/client/v1/query.proto create mode 100644 proto/rust-vendored/ibc/core/client/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/core/commitment/v1/commitment.proto create mode 100644 proto/rust-vendored/ibc/core/connection/v1/connection.proto create mode 100644 proto/rust-vendored/ibc/core/connection/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/core/connection/v1/query.proto create mode 100644 proto/rust-vendored/ibc/core/connection/v1/tx.proto create mode 100644 proto/rust-vendored/ibc/core/types/v1/genesis.proto create mode 100644 proto/rust-vendored/ibc/lightclients/localhost/v2/localhost.proto create mode 100644 proto/rust-vendored/ibc/lightclients/solomachine/v2/solomachine.proto create mode 100644 proto/rust-vendored/ibc/lightclients/solomachine/v3/solomachine.proto create mode 100644 proto/rust-vendored/ibc/lightclients/tendermint/v1/tendermint.proto create mode 100644 proto/rust-vendored/tendermint/abci/types.proto create mode 100644 proto/rust-vendored/tendermint/crypto/keys.proto create mode 100644 proto/rust-vendored/tendermint/crypto/proof.proto create mode 100644 proto/rust-vendored/tendermint/libs/bits/types.proto create mode 100644 proto/rust-vendored/tendermint/p2p/types.proto create mode 100644 proto/rust-vendored/tendermint/types/block.proto create mode 100644 proto/rust-vendored/tendermint/types/evidence.proto create mode 100644 proto/rust-vendored/tendermint/types/params.proto create mode 100644 proto/rust-vendored/tendermint/types/types.proto create mode 100644 proto/rust-vendored/tendermint/types/validator.proto create mode 100644 proto/rust-vendored/tendermint/version/types.proto create mode 100644 tests/parser_impl.cpp create mode 100644 tests/parser_test.txt create mode 100644 tests/testcases.json create mode 100644 tests/ui_tests.txt create mode 100644 tests/utils/common.cpp create mode 100644 tests/utils/common.h create mode 100644 tests_zemu/.editorconfig create mode 100644 tests_zemu/.eslintrc.js create mode 100644 tests_zemu/.gitignore create mode 100644 tests_zemu/.npmignore create mode 100644 tests_zemu/.prettierignore create mode 100644 tests_zemu/.prettierrc create mode 100644 tests_zemu/globalsetup.js create mode 100644 tests_zemu/jest.config.js create mode 100644 tests_zemu/jest.js create mode 100644 tests_zemu/package.json create mode 100644 tests_zemu/snapshots/fl-mainmenu/00000.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00001.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00002.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00003.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00004.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00005.png create mode 100644 tests_zemu/snapshots/fl-mainmenu/00006.png create mode 100644 tests_zemu/snapshots/fl-show_address/00000.png create mode 100644 tests_zemu/snapshots/fl-show_address/00001.png create mode 100644 tests_zemu/snapshots/fl-show_address/00002.png create mode 100644 tests_zemu/snapshots/fl-show_address/00003.png create mode 100644 tests_zemu/snapshots/fl-show_address_randomized/00000.png create mode 100644 tests_zemu/snapshots/fl-show_address_randomized/00001.png create mode 100644 tests_zemu/snapshots/fl-show_address_randomized/00002.png create mode 100644 tests_zemu/snapshots/fl-show_address_randomized/00003.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00000.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00001.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00002.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00003.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00004.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00005.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00006.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00007.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00008.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00009.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00010.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00011.png create mode 100644 tests_zemu/snapshots/s-mainmenu/00012.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00000.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00001.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00002.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00003.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00004.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00005.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00006.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00007.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00008.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00009.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00010.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00011.png create mode 100644 tests_zemu/snapshots/sp-mainmenu/00012.png create mode 100644 tests_zemu/snapshots/sp-show_address/00000.png create mode 100644 tests_zemu/snapshots/sp-show_address/00001.png create mode 100644 tests_zemu/snapshots/sp-show_address/00002.png create mode 100644 tests_zemu/snapshots/sp-show_address/00003.png create mode 100644 tests_zemu/snapshots/sp-show_address/00004.png create mode 100644 tests_zemu/snapshots/sp-show_address/00005.png create mode 100644 tests_zemu/snapshots/sp-show_address/00006.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00000.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00001.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00002.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00003.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00004.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00005.png create mode 100644 tests_zemu/snapshots/sp-show_address_randomized/00006.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00000.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00001.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00002.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00003.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00004.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00005.png create mode 100644 tests_zemu/snapshots/st-mainmenu/00006.png create mode 100644 tests_zemu/snapshots/st-show_address/00000.png create mode 100644 tests_zemu/snapshots/st-show_address/00001.png create mode 100644 tests_zemu/snapshots/st-show_address/00002.png create mode 100644 tests_zemu/snapshots/st-show_address/00003.png create mode 100644 tests_zemu/snapshots/st-show_address_randomized/00000.png create mode 100644 tests_zemu/snapshots/st-show_address_randomized/00001.png create mode 100644 tests_zemu/snapshots/st-show_address_randomized/00002.png create mode 100644 tests_zemu/snapshots/st-show_address_randomized/00003.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00000.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00001.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00002.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00003.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00004.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00005.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00006.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00007.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00008.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00009.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00010.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00011.png create mode 100644 tests_zemu/snapshots/x-mainmenu/00012.png create mode 100644 tests_zemu/snapshots/x-show_address/00000.png create mode 100644 tests_zemu/snapshots/x-show_address/00001.png create mode 100644 tests_zemu/snapshots/x-show_address/00002.png create mode 100644 tests_zemu/snapshots/x-show_address/00003.png create mode 100644 tests_zemu/snapshots/x-show_address/00004.png create mode 100644 tests_zemu/snapshots/x-show_address/00005.png create mode 100644 tests_zemu/snapshots/x-show_address/00006.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00000.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00001.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00002.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00003.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00004.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00005.png create mode 100644 tests_zemu/snapshots/x-show_address_randomized/00006.png create mode 100644 tests_zemu/tests/common.ts create mode 100644 tests_zemu/tests/pullImageKillOld.ts create mode 100644 tests_zemu/tests/standard.test.ts create mode 100644 tests_zemu/try.mjs create mode 100644 tests_zemu/tsconfig.json diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..1f7d191 --- /dev/null +++ b/.clang-format @@ -0,0 +1,5 @@ +BasedOnStyle: Google +IndentWidth: 4 +ColumnLimit: 125 +DerivePointerAlignment: false +PointerAlignment: Right diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..2cefa09 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,22 @@ +Checks: "-*, + clang-diagnostic-*, + clang-analyzer-*, + cppcoreguidelines-init-variables, + google-runtime-int, + google-readability-avoid-underscore-in-googletest-name, + misc-*, + performance-*, + portability-*, + readability-*, + -misc-no-recursion, + -readability-function-cognitive-complexity" +WarningsAsErrors: "*" +CheckOptions: + - key: readability-identifier-length.MinimumVariableNameLength + value: 2 + - key: readability-identifier-length.MinimumParameterNameLength + value: 2 + - key: readability-identifier-length.MinimumLoopCounterNameLength + value: 1 + - key: readability-magic-numbers.IgnorePowersOf2IntegerValues + value: true diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..2d7db14 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +trim_trailing_whitespace = true +end_of_line = lf +insert_final_newline = true + +[*.{c,h,cpp,hpp}] +indent_style = space +indent_size = 4 + +[*.{yml,sh}] +indent_style = space +indent_size = 2 diff --git a/.github/workflows/check_version.yml b/.github/workflows/check_version.yml new file mode 100644 index 0000000..0d5a2fb --- /dev/null +++ b/.github/workflows/check_version.yml @@ -0,0 +1,55 @@ +name: Verify PRs to main + +on: + workflow_dispatch: + pull_request: + branches: + - main + - develop + - master # for safety reasons + - dev # for safety reasons + +jobs: + configure: + runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} + outputs: + uid_gid: ${{ steps.get-user.outputs.uid_gid }} + steps: + - id: get-user + run: echo "uid_gid=$(id -u):$(id -g)" >> $GITHUB_OUTPUT + + get_version: + needs: configure + runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + SDK_VARNAME: NANOSP_SDK + outputs: + version: ${{ steps.store-version.outputs.version }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - run: make version + - id: store-version + run: echo "version=$(cat ./app/app.version)" >> $GITHUB_OUTPUT + + check_app_version: + needs: get_version + runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} + steps: + - id: checkTag + uses: mukunku/tag-exists-action@v1.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag: ${{ needs.get_version.outputs.version }} + + - run: echo ${{ steps.checkTag.outputs.exists }} + + - name: Tag exists + if: ${{ steps.checkTag.outputs.exists == 'true' }} + run: exit 1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..982f4cf --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,40 @@ +name: "CodeQL" + +on: + workflow_dispatch: + push: + pull_request: + branches: + - main + - develop + - master # for safety reasons + - dev # for safety reasons + +jobs: + analyse: + name: Analyse + runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} + if: github.event.repository.private == false + strategy: + matrix: + sdk: ["$NANOS_SDK", "$NANOX_SDK", "$NANOSP_SDK", "$STAX_SDK", "$FLEX_SDK"] + container: + image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-legacy:latest + + steps: + - name: Clone + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: cpp + queries: security-and-quality + + - name: Build + run: | + make -j BOLOS_SDK=${{ matrix.sdk }} + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/guidelines_enforcer.yml b/.github/workflows/guidelines_enforcer.yml new file mode 100644 index 0000000..5449c00 --- /dev/null +++ b/.github/workflows/guidelines_enforcer.yml @@ -0,0 +1,25 @@ +name: Ensure compliance with Ledger guidelines + +# This workflow is mandatory in all applications +# It calls a reusable workflow guidelines_enforcer developed by Ledger's internal developer team. +# The successful completion of the reusable workflow is a mandatory step for an app to be available on the Ledger +# application store. +# +# More information on the guidelines can be found in the repository: +# LedgerHQ/ledger-app-workflows/ + +on: + workflow_dispatch: + push: + branches: + - main + - develop + - master # for safety reasons + - dev # for safety reasons + pull_request: + +jobs: + guidelines_enforcer: + if: github.event.repository.private == false + name: Call Ledger guidelines enforcer + uses: LedgerHQ/ledger-app-workflows/.github/workflows/reusable_guidelines_enforcer.yml@v1 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..166b5f3 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,43 @@ +name: Lint and format đŸ’… + +on: + workflow_dispatch: + # push: + # pull_request: + # branches: + # - main + # - develop + +jobs: + lint: + runs-on: ubuntu-latest + container: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-legacy:latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Add missing deps + run: | + DEBIAN_FRONTEND=noninteractive + apt-get update + apt-get install -y bear sudo + - name: Generate compilation database + run: bear -- make -j BOLOS_SDK="$NANOSP_SDK" + - name: Lint and format đŸ’… + uses: cpp-linter/cpp-linter-action@v2 + id: linter + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + file-annotations: true + files-changed-only: false + ignore: "app/build|cmake|deps|fuzz|tests" + step-summary: true + style: file # uses .clang-format + thread-comments: true + tidy-checks: "" # use only .clang-tidy checks + - name: Fail if errors + if: steps.linter.outputs.checks-failed > 0 + run: | + echo "Linter or formatter failed!" + exit 1 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..4e37a4d --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,302 @@ +name: Build +on: + workflow_dispatch: + push: + pull_request: + branches: + - main + - develop + - master # for safety reasons + - dev # for safety reasons + +jobs: + configure: + runs-on: ubuntu-latest + outputs: + uid_gid: ${{ steps.get-user.outputs.uid_gid }} + steps: + - id: get-user + run: echo "uid_gid=$(id -u):$(id -g)" >> $GITHUB_OUTPUT + + rust_tests: + runs-on: ubuntu-latest + container: + image: zondax/rust-ci:latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Cache/restore Cargo dependencies + uses: actions/cache@v3 + with: + path: ./app/rust/.cargo + key: ${{ runner.os }}-${{ hashFiles('./Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-${{ github.sha }} + - name: run rust tests + run: make rust_test + + clippy: + runs-on: ubuntu-latest + container: + image: zondax/rust-ci:latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Cache/restore Cargo dependencies + uses: actions/cache@v3 + with: + path: ./app/rust/.cargo + key: ${{ runner.os }}-${{ hashFiles('./Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-${{ github.sha }} + - name: clippy + run: | + cd ./app/rust + cargo clippy --all-targets --features "clippy" + + build_ledger: + needs: configure + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/nanos-secure-sdk + outputs: + size: ${{steps.build.outputs.size}} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Build Standard app + id: build + shell: bash -l {0} + run: | + make PRODUCTION_BUILD=0 + echo "size=$(python3 deps/ledger-zxlib/scripts/getSize.py s)" >> $GITHUB_OUTPUT + + build_ledger_production: + needs: configure + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/nanos-secure-sdk + outputs: + size: ${{steps.build.outputs.size}} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + - name: Build Production app + id: build + shell: bash -l {0} + run: | + make PRODUCTION_BUILD=1 + echo "size=$(python3 deps/ledger-zxlib/scripts/getSize.py s)" >> $GITHUB_OUTPUT + + size_nano_s: + needs: build_ledger + runs-on: ubuntu-latest + continue-on-error: true + env: + NANOS_LIMIT_SIZE: 136 + steps: + - run: | + echo "LNS app size: ${{needs.build_ledger.outputs.size}} KiB" + [ ${{needs.build_ledger.outputs.size}} -le $NANOS_LIMIT_SIZE ] + + test_zemu: + runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }} + steps: + - name: Test + run: | + id + echo $HOME + echo $DISPLAY + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y curl protobuf-compiler build-essential git wget unzip python3 python3-pip \ + libssl-dev libffi-dev libreadline-dev zlib1g-dev libbz2-dev libsqlite3-dev libncurses5-dev \ + libgdbm-dev libnss3-dev liblzma-dev libxml2-dev libxmlsec1-dev libffi-dev libyaml-dev + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev + - name: Install rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - name: Install node + uses: actions/setup-node@v4 + with: + node-version: 18 + - name: Install yarn + run: | + npm install -g yarn + - name: Build and run zemu tests + run: | + for i in {1..3}; do + make zemu_install && break || sleep 10 + done + make + make zemu_test + - name: Upload Snapshots (only failure) + if: ${{ failure() }} + uses: actions/upload-artifact@v3 + with: + name: snapshots-tmp + path: tests_zemu/snapshots-tmp/ + + build_package_nanos: + needs: [configure, build_ledger, test_zemu, rust_tests] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/nanos-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build NanoS + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + mv ./app/pkg/installer_s.sh ./app/pkg/installer_nanos.sh + - name: Set tag + id: nanos + run: echo "tag_name=$(./app/pkg/installer_nanos.sh version)" >> $GITHUB_OUTPUT + - name: Create or Update Release (1) + id: create_release_0 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: ./app/pkg/installer_nanos.sh + tag_name: ${{ steps.nanos.outputs.tag_name }} + draft: false + prerelease: false + + build_package_nanosp: + needs: [configure, build_ledger, test_zemu, rust_tests] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/nanosplus-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build NanoSP + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + mv ./app/pkg/installer_s2.sh ./app/pkg/installer_nanos_plus.sh + - name: Set tag + id: nanosp + run: echo "tag_name=$(./app/pkg/installer_nanos_plus.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: ./app/pkg/installer_nanos_plus.sh + tag_name: ${{ steps.nanosp.outputs.tag_name }} + draft: false + prerelease: false + + build_package_stax: + needs: [configure, build_ledger, test_zemu, rust_tests] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/stax-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build Stax + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + - name: Set tag + id: stax + run: echo "tag_name=$(./app/pkg/installer_stax.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: | + ./app/pkg/installer_stax.sh + tag_name: ${{ steps.stax.outputs.tag_name }} + draft: false + prerelease: false + + build_package_flex: + needs: [configure, build_ledger, test_zemu, rust_tests] + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + container: + image: zondax/ledger-app-builder:latest + options: --user ${{ needs.configure.outputs.uid_gid }} + env: + BOLOS_SDK: /opt/flex-secure-sdk + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install deps + run: pip install ledgerblue + + - name: Build Flex + shell: bash -l {0} + run: | + PRODUCTION_BUILD=0 make + - name: Set tag + id: flex + run: echo "tag_name=$(./app/pkg/installer_flex.sh version)" >> $GITHUB_OUTPUT + - name: Update Release + id: update_release_2 + uses: softprops/action-gh-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + files: | + ./app/pkg/installer_flex.sh + tag_name: ${{ steps.flex.outputs.tag_name }} + draft: false + prerelease: false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9185e12 --- /dev/null +++ b/.gitignore @@ -0,0 +1,82 @@ +# Created by .ignore support plugin (hsz.mobi) +### C penumbra +# Prerequisites +*.d + +# Object files +*.o +*.ko +*.obj +*.elf + +# Linker output +*.ilk +*.map +*.exp + +# Precompiled Headers +*.gch +*.pch + +# Libraries +*.lib +*.a +*.la +*.lo + +# Shared objects (inc. Windows DLLs) +*.dll +*.so +*.so.* +*.dylib + +# Executables +*.exe +*.out +*.app +*.i*86 +*.x86_64 +*.hex + +# Debug files +*.dSYM/ +*.su +*.idb +*.pdb + +# Kernel Module Compile Results +*.mod* +*.cmd + +########################## + +tests_zemu/.yarn/* +tests_zemu/!.yarn/patches +tests_zemu/!.yarn/releases +tests_zemu/!.yarn/plugins +tests_zemu/!.yarn/sdks +tests_zemu/!.yarn/versions +tests_zemu/.pnp.* + +######################### + +.vscode +.idea + +node_modules +fuzz/corpora + +!build/.gitkeep +build/* +cmake-build-debug +app/build/* + +tests_zemu/snapshots-tmp +tests_zemu/yarn.lock +tests_tools/target +fuzz-*.log +/scan-build +app/rust/.cargo/registry +app/rust/.cargo/.package-cache +app/rust/.cargo/git +app/rust/target diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..85bf21b --- /dev/null +++ b/.gitmodules @@ -0,0 +1,15 @@ +[submodule "deps/ledger-zxlib"] + path = deps/ledger-zxlib + url = https://github.com/Zondax/ledger-zxlib.git +[submodule "cmake/cmake-modules"] + path = cmake/cmake-modules + url = https://github.com/bilke/cmake-modules +[submodule "deps/blake2"] + path = deps/blake2 + url = https://github.com/Zondax/BLAKE2.git +[submodule "deps/ledger-secure-sdk"] + path = deps/ledger-secure-sdk + url = https://github.com/LedgerHQ/ledger-secure-sdk +[submodule "deps/nanopb"] + path = deps/nanopb + url = git@github.com:nanopb/nanopb.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..b348fa3 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,248 @@ +#******************************************************************************* +#* (c) 2018 -2024 Zondax AG +#* +#* Licensed under the Apache License, Version 2.0 (the "License"); +#* you may not use this file except in compliance with the License. +#* You may obtain a copy of the License at +#* +#* http://www.apache.org/licenses/LICENSE-2.0 +#* +#* Unless required by applicable law or agreed to in writing, software +#* distributed under the License is distributed on an "AS IS" BASIS, +#* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#* See the License for the specific language governing permissions and +#* limitations under the License. +#******************************************************************************** +cmake_minimum_required(VERSION 3.28) +include("cmake/HunterGate.cmake") +HunterGate( + URL "https://github.com/cpp-pm/hunter/archive/v0.25.5.tar.gz" + SHA1 "a20151e4c0740ee7d0f9994476856d813cdead29" + LOCAL +) + +if(CMAKE_GENERATOR MATCHES "Ninja") + message(FATAL_ERROR "This project does not support the Ninja generator. " + "Please use Unix Makefiles or another supported generator. " + "This error is typical in CLion. In this case, switch to generator Unix Makefiles.") +endif() + +######################################################## + +project(ledger-penumbra VERSION 0.0.0) + +set(CMAKE_CXX_STANDARD 17) +cmake_policy(SET CMP0025 NEW) +cmake_policy(SET CMP0144 NEW) + +set(HUNTER_STATUS_DEBUG ON) +set(HUNTER_TLS_VERIFY OFF) + +enable_testing() + +option(ENABLE_FUZZING "Build with fuzzing instrumentation and build fuzz targets" OFF) +option(ENABLE_COVERAGE "Build with source code coverage instrumentation" OFF) +option(ENABLE_SANITIZERS "Build with ASAN and UBSAN" OFF) + +string(APPEND CMAKE_C_FLAGS " -fno-omit-frame-pointer -g") +string(APPEND CMAKE_CXX_FLAGS " -fno-omit-frame-pointer -g") +string(APPEND CMAKE_LINKER_FLAGS " -fno-omit-frame-pointer -g") + +hunter_add_package(fmt) +find_package(fmt CONFIG REQUIRED) + +hunter_add_package(jsoncpp) +find_package(jsoncpp CONFIG REQUIRED) + +hunter_add_package(GTest) +find_package(GTest CONFIG REQUIRED) + +if(ENABLE_FUZZING) + add_definitions(-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION=1) + SET(ENABLE_SANITIZERS ON CACHE BOOL "Sanitizer automatically enabled" FORCE) + SET(CMAKE_BUILD_TYPE Debug) + + if (DEFINED ENV{FUZZ_LOGGING}) + add_definitions(-DFUZZING_LOGGING) + message(FATAL_ERROR "Fuzz logging enabled") + endif() + + set(CMAKE_CXX_CLANG_TIDY clang-tidy -checks=-*,bugprone-*,cert-*,clang-analyzer-*,-cert-err58-cpp,misc-*) + + if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + # require at least clang 3.2 + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10.0) + message(FATAL_ERROR "Clang version must be at least 10.0!") + endif() + else() + message(FATAL_ERROR + "Unsupported compiler! Fuzzing requires Clang 10.\n" + "1. Install clang-10 \n" + "2. Use -DCMAKE_C_COMPILER=clang-10 -DCMAKE_CXX_COMPILER=clang++-10") + endif() + + string(APPEND CMAKE_C_FLAGS " -fsanitize=fuzzer-no-link") + string(APPEND CMAKE_CXX_FLAGS " -fsanitize=fuzzer-no-link") + string(APPEND CMAKE_LINKER_FLAGS " -fsanitize=fuzzer-no-link") +endif() + +if(ENABLE_COVERAGE) + string(APPEND CMAKE_C_FLAGS " -fprofile-instr-generate -fcoverage-mapping") + string(APPEND CMAKE_CXX_FLAGS " -fprofile-instr-generate -fcoverage-mapping") + string(APPEND CMAKE_LINKER_FLAGS " -fprofile-instr-generate -fcoverage-mapping") +endif() + +if(ENABLE_SANITIZERS) + string(APPEND CMAKE_C_FLAGS " -fsanitize=address,undefined -fsanitize-recover=address,undefined") + string(APPEND CMAKE_CXX_FLAGS " -fsanitize=address,undefined -fsanitize-recover=address,undefined") + string(APPEND CMAKE_LINKER_FLAGS " -fsanitize=address,undefined -fsanitize-recover=address,undefined") +endif() + +set (RETRIEVE_MAJOR_CMD + "cat ${CMAKE_CURRENT_SOURCE_DIR}/app/Makefile.version | grep APPVERSION_M | cut -b 14- | tr -d '\n'" +) +set (RETRIEVE_MINOR_CMD + "cat ${CMAKE_CURRENT_SOURCE_DIR}/app/Makefile.version | grep APPVERSION_N | cut -b 14- | tr -d '\n'" +) +execute_process( + COMMAND bash "-c" ${RETRIEVE_MAJOR_CMD} + RESULT_VARIABLE MAJOR_RESULT + OUTPUT_VARIABLE MAJOR_VERSION +) +execute_process( + COMMAND bash "-c" ${RETRIEVE_MINOR_CMD} + RESULT_VARIABLE MINOR_RESULT + OUTPUT_VARIABLE MINOR_VERSION +) + +message(STATUS "LEDGER_MAJOR_VERSION [${MAJOR_RESULT}]: ${MAJOR_VERSION}" ) +message(STATUS "LEDGER_MINOR_VERSION [${MINOR_RESULT}]: ${MINOR_VERSION}" ) + +add_definitions( + -DLEDGER_MAJOR_VERSION=${MAJOR_VERSION} + -DLEDGER_MINOR_VERSION=${MINOR_VERSION} +) + +############################################################## +# Static Libraries +file(GLOB_RECURSE LIB_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/app_mode.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/base58.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/bech32.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/bignum.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/hexutils.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/zxmacros.c + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/src/zxformat.c + #### + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_impl.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/protobuf/*.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/crypto_helper.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/nanopb_tiny/pb_common.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/nanopb_tiny/pb_decode.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_interface.c + ) + +add_library(app_lib STATIC ${LIB_SRC}) + +target_include_directories(app_lib PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/deps/ledger-zxlib/include + ${CMAKE_CURRENT_SOURCE_DIR}/app/src + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/lib + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/common + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/nanopb_tiny + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/protobuf + ${CMAKE_CURRENT_SOURCE_DIR}/app/rust/include + ) + +############################################################## +## Rust library for CPP tests +set(RUST_LIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/app/rust") + +# Determine the Rust target triple based on the host system +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") + if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64") + set(RUST_TARGET_TRIPLE "aarch64-unknown-linux-gnu") + elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64") + set(RUST_TARGET_TRIPLE "x86_64-unknown-linux-gnu") + else() + message(FATAL_ERROR "Unsupported processor: ${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() +elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") + if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64") + set(RUST_TARGET_TRIPLE "aarch64-apple-darwin") + elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64") + set(RUST_TARGET_TRIPLE "x86_64-apple-darwin") + else() + message(FATAL_ERROR "Unsupported processor: ${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() +else() + message(FATAL_ERROR "Unsupported host system: ${CMAKE_HOST_SYSTEM_NAME}") +endif() + +# Use debug mode for debugging tests +set(RUST_TARGET_DIR "${RUST_LIB_DIR}/target/${RUST_TARGET_TRIPLE}/debug") + +# Custom target for the Rust library +add_custom_target(RustLibClean + COMMAND cargo clean + WORKING_DIRECTORY ${RUST_LIB_DIR} +) +add_custom_target(RustLibBuild + COMMAND cargo build --target ${RUST_TARGET_TRIPLE} + WORKING_DIRECTORY ${RUST_LIB_DIR} + DEPENDS RustLibClean +) + +# Assuming the Rust library outputs a file named librslib.a +set(RUST_LIB "${RUST_TARGET_DIR}/librslib.a") + +# Ensure the Rust library is built before the C++ project +add_library(rslib STATIC IMPORTED) +set_property(TARGET rslib PROPERTY IMPORTED_LOCATION ${RUST_LIB}) +add_dependencies(rslib RustLibBuild) + +# Ensure your C++ targets depend on the Rust library being built first +# For example, for your app_lib static library: +add_dependencies(app_lib rslib) + + +############################################################## +# Fuzz Targets +if(ENABLE_FUZZING) + set(FUZZ_TARGETS + parser_parse + ) + + foreach(target ${FUZZ_TARGETS}) + add_executable(fuzz-${target} ${CMAKE_CURRENT_SOURCE_DIR}/fuzz/${target}.cpp) + target_link_libraries(fuzz-${target} PRIVATE app_lib) + target_link_options(fuzz-${target} PRIVATE "-fsanitize=fuzzer") + endforeach() +else() +############################################################## +# Tests +file(GLOB_RECURSE TESTS_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/tests/*.cpp) + +add_executable(unittests ${TESTS_SRC}) +target_include_directories(unittests PRIVATE + ${gtest_SOURCE_DIR}/include + ${gmock_SOURCE_DIR}/include + ${CONAN_INCLUDE_DIRS_FMT} + ${CONAN_INCLUDE_DIRS_JSONCPP} + ${CMAKE_CURRENT_SOURCE_DIR}/app/src + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/lib + ) + + target_link_libraries(unittests PRIVATE + rslib + app_lib + GTest::gtest_main + fmt::fmt + JsonCpp::JsonCpp) + + add_compile_definitions(TESTVECTORS_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/") + add_test(NAME unittests COMMAND unittests) + set_tests_properties(unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests) +endif() diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bfd6018 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2023 Zondax AG + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..88977f3 --- /dev/null +++ b/Makefile @@ -0,0 +1,66 @@ +#******************************************************************************* +#* (c) 2018 -2023 Zondax AG +#* +#* Licensed under the Apache License, Version 2.0 (the "License"); +#* you may not use this file except in compliance with the License. +#* You may obtain a copy of the License at +#* +#* http://www.apache.org/licenses/LICENSE-2.0 +#* +#* Unless required by applicable law or agreed to in writing, software +#* distributed under the License is distributed on an "AS IS" BASIS, +#* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +#* See the License for the specific language governing permissions and +#* limitations under the License. +#******************************************************************************** + +# We use BOLOS_SDK to determine the development environment that is being used +# BOLOS_SDK IS DEFINED We use the plain Makefile for Ledger +# BOLOS_SDK NOT DEFINED We use a containerized build approach + +# TESTS_JS_PACKAGE = "@zondax/ledger-penumbra" +# TESTS_JS_DIR = $(CURDIR)/../ledger-penumbra-js + +ifeq ($(BOLOS_SDK),) +# In this case, there is not predefined SDK and we run dockerized +# When not using the SDK, we override and build the XL complete app + +PRODUCTION_BUILD ?= 1 +include $(CURDIR)/deps/ledger-zxlib/dockerized_build.mk + +else +default: + $(MAKE) -C app +%: + $(info "Calling app Makefile for target $@") + COIN=$(COIN) PRODUCTION_BUILD=$(PRODUCTION_BUILD) $(MAKE) -C app $@ +endif + +test_all: + make + make zemu_install + make zemu_test + +prod: + make PRODUCTION_BUILD=1 + +.PHONY: proto + +# Set the paths +PROTO_PATH := ./proto/penumbra +VENDORED_PROTO_PATH := ./proto/rust-vendored +OUTPUT_PATH := ./app/src/protobuf + +proto: + @mkdir -p $(OUTPUT_PATH) + @find $(PROTO_PATH) $(VENDORED_PROTO_PATH) -name "*.proto" -type f | \ + xargs -I {} ./deps/nanopb/generator/protoc {} \ + --proto_path=$(PROTO_PATH) \ + --proto_path=$(VENDORED_PROTO_PATH) \ + --nanopb_out=$(OUTPUT_PATH) + @echo "C protobuf files generated in $(OUTPUT_PATH)" + make format + +test_ledger_try: + make zemu_install + cd tests_zemu && yarn try \ No newline at end of file diff --git a/README.md b/README.md index 1658e11..af77112 100644 --- a/README.md +++ b/README.md @@ -1 +1,210 @@ -# ledger-penumbra-2 +# Ledger Penumbra app + +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) +[![GithubActions](https://github.com/Zondax/ledger-penumbra/actions/workflows/main.yml/badge.svg)](https://github.com/Zondax/ledger-penumbra/blob/main/.github/workflows/main.yaml) + +--- + +![zondax_light](docs/zondax_light.png#gh-light-mode-only) +![zondax_dark](docs/zondax_dark.png#gh-dark-mode-only) + +_Please visit our website at [zondax.ch](https://www.zondax.ch)_ + +--- + +This project contains a PoC for the penumbra app for Ledger Nano S Nano S+ and X. + +- Ledger Nano S/S+/X Penumbra app +- Specs / Documentation +- C++ unit tests +- Zemu tests + +## ATTENTION + +Please: + +- **Do not use in production** +- **Do not use a Ledger device with funds for development purposes.** +- **Have a separate and marked device that is used ONLY for development and testing** + +## Download and install a prerelease + +_Once the app is approved by Ledger, it will be available in their app store (Ledger Live). +You can get builds generated by Github Actions from the release tab. THESE ARE UNVETTED DEVELOPMENT RELEASES_ + +Download a release from here (https://github.com/Zondax/ledger-penumbra/releases). You only need `installer.sh` + +If the file is not executable, run + +```sh +chmod +x ./installer.sh +``` + +then run: + +```sh +./installer.sh load +``` + +# Development + +## Preconditions + +- Be sure you checkout submodules too: + + ``` + git submodule update --init --recursive + ``` + +- Install Docker CE + + - Instructions can be found here: https://docs.docker.com/install/ + +- We only officially support Ubuntu. Install the following packages: + + ``` + sudo apt update && apt-get -y install build-essential git wget cmake \ + libssl-dev libgmp-dev autoconf libtool + ``` + +- Install `node > v13.0`. We typically recommend using `n` + +- You will need python 3 and then run + + - `make deps` + +- This project requires Ledger firmware 2.0 + - The current repository keeps track of Ledger's SDK but it is possible to override it by changing the git submodule. + +_Warning_: Some IDEs may not use the same python interpreter or virtual enviroment as the one you used when running `pip`. +If you see conan is not found, check that you installed the package in the same interpreter as the one that launches `cmake`. + +## How to build ? + +> We like clion or vscode but let's have some reproducible command line steps + +- Building the app itself + + If you installed the what is described above, just run: + + ```bash + make + ``` + +## Running tests + +- Running rust tests (x64) + + If you installed the what is described above, just run: + + ```bash + make rust_test + ``` + +- Running C/C++ tests (x64) + + If you installed the what is described above, just run: + + ```bash + make cpp_test + ``` + +- Running device emulation+integration tests!! + + ```bash + Use Zemu! Explained below! + ``` + +## How to test with Zemu? + +> What is Zemu?? Great you asked!! +> As part of this project, we are making public a beta version of our internal testing+emulation framework for Ledger apps. +> +> Npm Package here: https://www.npmjs.com/package/@zondax/zemu +> +> Repo here: https://github.com/Zondax/zemu + +Let's go! First install everything: + +> At this moment, if you change the app you will need to run `make` before running the test again. + +```bash +make zemu_install +``` + +Then you can run JS tests: + +```bash +make zemu_test +``` + +To run a single specific test: + +> At the moment, the recommendation is to run from the IDE. Remember to run `make` if you change the app. + +## Using a real device + +### How to prepare your DEVELOPMENT! device: + +> You can use an emulated device for development. This is only required if you are using a physical device +> +> **Please do not use a Ledger device with funds for development purposes.** +> +> > **Have a separate and marked device that is used ONLY for development and testing** + +There are a few additional steps that increase reproducibility and simplify development: + +**1 - Ensure your device works in your OS** + +- In Linux hosts it might be necessary to adjust udev rules, etc. + + Refer to Ledger documentation: https://support.ledger.com/hc/en-us/articles/115005165269-Fix-connection-issues + +**2 - Set a test mnemonic** + +Many of our integration tests expect the device to be configured with a known test mnemonic. + +- Plug your device while pressing the right button + +- Your device will show "Recovery" in the screen + +- Double click + +- Run `make dev_init`. This will take about 2 minutes. The device will be initialized to: + + ``` + PIN: 5555 + Mnemonic: equip will roof matter pink blind book anxiety banner elbow sun young + ``` + +**3 - Add a development certificate** + +- Plug your device while pressing the right button + +- Your device will show "Recovery" in the screen + +- Click both buttons at the same time + +- Enter your pin if necessary + +- Run `make dev_ca`. The device will receive a development certificate to avoid constant manual confirmations. + +### Loading into your development device + +The Makefile will build the firmware in a docker container and leave the binary in the correct directory. + +- Build + + ``` + make # Builds the app + ``` + +- Upload to a device + The following command will upload the application to the ledger. _Warning: The application will be deleted before uploading._ + ``` + make load # Builds and loads the app to the device + ``` + +## APDU Specifications + +- [APDU Protocol](docs/APDUSPEC.md) diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..13a58d2 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1,51 @@ +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# OS related files +.DS_Store + +# Others +cmake-build-debug/ +\.idea/workspace\.xml +\.idea/ + +glyphs/glyphs\.h +glyphs/glyphs\.c +obj/ +bin/ +debug/ +bin/app.sha256 +bin/app.apdu + +output/app* +pkg/installer_*.sh diff --git a/app/LICENSE b/app/LICENSE new file mode 100644 index 0000000..bfd6018 --- /dev/null +++ b/app/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2018-2023 Zondax AG + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/app/Makefile b/app/Makefile new file mode 100755 index 0000000..e4c5c21 --- /dev/null +++ b/app/Makefile @@ -0,0 +1,167 @@ +#******************************************************************************* +# Ledger App +# (c) 2018 - 2024 Zondax AG +# (c) 2017 Ledger +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#******************************************************************************* + +ifeq ($(BOLOS_SDK),) +$(error BOLOS_SDK is not set) +endif + +MY_DIR := $(dir $(lastword $(MAKEFILE_LIST))) + +include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.installer_script + +include $(BOLOS_SDK)/Makefile.defines + +# Set the default value for PRODUCTION_BUILD to 0 if not already defined +PRODUCTION_BUILD ?= 1 + +$(info ************ PENUMBRA_NAME = [$(TARGET_NAME)]) + +# Display whether this is a production build or for internal use +ifeq ($(PRODUCTION_BUILD), 1) + $(info ************ PRODUCTION_BUILD = [PRODUCTION BUILD]) +else + $(info ************ PRODUCTION_BUILD = [INTERNAL USE]) +endif + +# Display whether swap functionality is enabled or not +ifdef HAVE_SWAP + $(info ************ HAVE_SWAP = [ENABLED]) + DEFINES += HAVE_SWAP=$(HAVE_SWAP) +else + $(info ************ HAVE_SWAP = [DISABLED]) +endif + +# Add the PRODUCTION_BUILD definition to the compiler flags +DEFINES += PRODUCTION_BUILD=$(PRODUCTION_BUILD) + +include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.app_testing + +ifndef COIN +COIN=PEN +endif + +include $(CURDIR)/Makefile.version + +$(info COIN = [$(COIN)]) + +ifeq ($(COIN), PEN) +# Main app configuration +DEFINES += APP_STANDARD +APPNAME = "Penumbra" +APPPATH = "44'/6532'" + +else +define error_message + +COIN value not supported: [$(COIN)] + +endef +$(error "$(error_message)") +endif + +$(info PATHS LIST = $(APPPATH)) + +APP_LOAD_PARAMS = --curve secp256k1 $(COMMON_LOAD_PARAMS) --path $(APPPATH) +INCLUDES_PATH += $(CURDIR)/src/protobuf +INCLUDES_PATH += $(CURDIR)/../deps/nanopb + +ifeq ($(TARGET_NAME),TARGET_NANOS) + APP_STACK_MIN_SIZE := 1600 +else + APP_STACK_MIN_SIZE := 1752 +endif + +include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices + +$(info TARGET_NAME = [$(TARGET_NAME)]) +$(info ICONNAME = [$(ICONNAME)]) + +ifndef ICONNAME +$(error ICONNAME is not set) +endif + +ifeq ($(TARGET_NAME),TARGET_NANOS) +RUST_TARGET:=thumbv6m-none-eabi +endif + +ifeq ($(TARGET_NAME),TARGET_NANOX) +RUST_TARGET:=thumbv6m-none-eabi +endif + +ifeq ($(TARGET_NAME),TARGET_NANOS2) +#RUST_TARGET:=thumbv8m.main-none-eabi +RUST_TARGET:=thumbv6m-none-eabi +endif + +ifeq ($(TARGET_NAME),TARGET_STAX) +RUST_TARGET:=thumbv6m-none-eabi +endif + +ifeq ($(TARGET_NAME),TARGET_FLEX) +RUST_TARGET:=thumbv6m-none-eabi +endif + +$(info ************ RUST_TARGET = [$(RUST_TARGET)]) + +include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.platform +APP_SOURCE_PATH += $(CURDIR)/rust/include +CFLAGS += -Wvla +LDFLAGS += -z muldefs +LDLIBS += -lm -lgcc -lc +LDLIBS += -L$(MY_DIR)rust/target/$(RUST_TARGET)/release -lrslib +CFLAGS += -I$(CURDIR)/../deps/nanopb/ + + +ifeq ($(DEBUG), 1) +CFLAGS += -O3 -Os -Wno-unknown-pragmas -Wno-unused-parameter -g +else +CFLAGS += -O3 -Os -Wno-unknown-pragmas -Wno-unused-parameter +endif + + + +APP_CUSTOM_LINK_DEPENDENCIES = rust + +.PHONY: rust +rust: + cd rust && RUSTC_BOOTSTRAP=1 CARGO_HOME="$(CURDIR)/rust/.cargo" cargo build --target $(RUST_TARGET) --release + +# Before linking, we need to be sure rust lib is there +bin/app.elf: rust + +.PHONY: rust_clean +rust_clean: + cd rust && CARGO_HOME="$(CURDIR)/rust/.cargo" cargo clean + +clean: rust_clean + +include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.side_loading + +# Import generic rules from the SDK +include $(BOLOS_SDK)/Makefile.rules + +#add dependency on custom makefile filename +dep/%.d: %.c Makefile + +.PHONY: listvariants +listvariants: + @echo VARIANTS COIN PEN + +.PHONY: version +version: + @echo "v$(APPVERSION)" > app.version diff --git a/app/Makefile.version b/app/Makefile.version new file mode 100644 index 0000000..3881cb0 --- /dev/null +++ b/app/Makefile.version @@ -0,0 +1,6 @@ +# This is the major version +APPVERSION_M=0 +# This is the minor version +APPVERSION_N=0 +# This is the patch version +APPVERSION_P=1 diff --git a/app/flex_icon.gif b/app/flex_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..e979a4c4cde231c552306435ecb94fe8fc87a019 GIT binary patch literal 147 zcmZ?wbhEHb)L_tH_`t{j1poj4SNzEWVln7|2#^c|Q&vy^%F}Q87th&pt9$dkJ-_*t z4tR7uHB5Svxkha|o8GCkk9V$Jt9>NR&vKw;Q0gp{TA^-pY literal 0 HcmV?d00001 diff --git a/app/glyphs/icon_app.gif b/app/glyphs/icon_app.gif new file mode 100644 index 0000000000000000000000000000000000000000..2eb9ba82015f28b93c3597cc74ae18046eb6371f GIT binary patch literal 107 zcmZ?wbhEHb6krfw_`m=H|NsA2{K*1lD*os8%uP&B^-WCAOwQ&@Pt46tv^CH(F$F;e z9grH3J_aV0p8l1m*E0C>G+ed3e0N%ymhOx%ii_3TGFBG8X^fS9wf9`_b5;gx0DGGw AEC2ui literal 0 HcmV?d00001 diff --git a/app/glyphs/icon_stax_32.gif b/app/glyphs/icon_stax_32.gif new file mode 100644 index 0000000000000000000000000000000000000000..db6e52dbceb9b9afcf0b1ee641a0e417a64ba6f1 GIT binary patch literal 167 zcmZ?wbhEHbRA5kG_`m=H|NsA2{K*1lD*os8%uP&B^-WCAOwQ&@Pt46tv^CH(F$F;e z9grH3J_e?Qp8l1m-|{b>v*p(5hI<*!|7_>6O={Pi87H~yVO7yYt-~U{+dpedXM8yQ zq0VLQVYVxZ{d-lon{?Qu15+n+R#~}*y`3`ivt;>0-7TEIgD!40G*jEF_ejU|S>O5B M-~a4e$iQF?0Nrpw?f?J) literal 0 HcmV?d00001 diff --git a/app/glyphs/icon_stax_64.gif b/app/glyphs/icon_stax_64.gif new file mode 100644 index 0000000000000000000000000000000000000000..177e8a5aa340ef6c2207db7a9fb58d969999837b GIT binary patch literal 313 zcmV-90mlAENk%w1VL$*t0Pp|+00030|NkNR1ONa4001HX3rTHZXJt)cXK7<=4rgI) zZDBnyE;KbXH8eEQY=-e{Y=A#Z)u#&rb%e4 z+RgTo-%+uAeW;hYm$v>LDc-i3TpRSiRSugn7TwsDCXF0o z%{$#UOZR+5I>#&G+ed3e0N%ymhOx%ii_3TGFBG8X^fS9wf9`_b5;gx0DGGw AEC2ui literal 0 HcmV?d00001 diff --git a/app/nanox_icon.gif b/app/nanox_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..c77a8afd61886b1cac173059a2a1ef8830ef704e GIT binary patch literal 104 zcmZ?wbhEHbB&gM%`%*{=-HPACL z1wjTKkP?tS1}4Rx{*~DecxQF#Uvd7t<)T+esrdKadp}DSEOW|>?ox9$W@WGj04}v5 AD*ylh literal 0 HcmV?d00001 diff --git a/app/output/.gitkeep b/app/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/pkg/.gitkeep b/app/pkg/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/rust/.cargo/.package-cache-mutate b/app/rust/.cargo/.package-cache-mutate new file mode 100644 index 0000000..e69de29 diff --git a/app/rust/.cargo/config.toml b/app/rust/.cargo/config.toml new file mode 100644 index 0000000..f2079bf --- /dev/null +++ b/app/rust/.cargo/config.toml @@ -0,0 +1,22 @@ +[unstable] +build-std = ["core"] +build-std-features = ["panic_immediate_abort"] +target-applies-to-host = true +host-config = true + +[host] +rustflags = ["-Ctarget-feature=-crt-static"] + +[target.'cfg(all(target_arch = "arm", target_os = "none"))'] +rustflags = [ + "--emit", + "asm", + "-C", + "relocation-model=ropi", + "-C", + "link-arg=-nostartfiles", + "-C", + "link-arg=-Tlink.ld", + "-C", + "inline-threshold=0", +] diff --git a/app/rust/Cargo.lock b/app/rust/Cargo.lock new file mode 100644 index 0000000..c75a3b3 --- /dev/null +++ b/app/rust/Cargo.lock @@ -0,0 +1,531 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "bech32" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec 0.5.2", + "constant_time_eq 0.1.5", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec 0.7.4", + "constant_time_eq 0.3.0", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "decaf377" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2097c5f69d06259112bea2024ddc41095c5001b503448f84ac169efc7cc8fd75" +dependencies = [ + "cfg-if", + "hex", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "decaf377-rdsa" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "437967a34e0699b50b986a72ce6c4e2e5930bde85ec8f3749701f7e50d6d32b0" +dependencies = [ + "blake2b_simd 0.5.11", + "decaf377", + "digest", + "hex", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "educe" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4bd92664bf78c4d3dba9b7cdafce6fa15b13ed3ed16175218196942e99168a8" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "f4jumble" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a83e8d7fd0c526af4aad893b7c9fe41e2699ed8a776a6c74aecdeafe05afc75" +dependencies = [ + "blake2b_simd 1.0.2", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array", +] + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "panic-halt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812" + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "poseidon-parameters" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6df50e93cde74d26eb66c9674fccde32172e915a420fe2a73fda39ab377f709" +dependencies = [ + "decaf377", +] + +[[package]] +name = "poseidon-permutation" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c4e1e8d622017ece288f1a1b06f0bfeaacaa4166fa155a91103317299452e2" +dependencies = [ + "decaf377", + "poseidon-parameters", +] + +[[package]] +name = "poseidon377" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae0544874afdaf74b69efc90795c66ea7a494faeb2981a0585d46c757ee2fa94" +dependencies = [ + "decaf377", + "poseidon-parameters", + "poseidon-permutation", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "rand_chacha", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rslib" +version = "0.1.0" +dependencies = [ + "aes", + "arrayref", + "arrayvec 0.7.4", + "bech32", + "blake2b_simd 1.0.2", + "chacha20poly1305", + "decaf377", + "decaf377-rdsa", + "educe", + "f4jumble", + "getrandom 0.1.16", + "hex", + "hex-literal", + "no-std-compat", + "nom", + "panic-halt", + "poseidon377", + "rand", + "zeroize", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "901fa70d88b9d6c98022e23b4136f9f3e54e4662c3bc1bd1d84a42a9a0f0c1e9" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/app/rust/Cargo.toml b/app/rust/Cargo.toml new file mode 100644 index 0000000..d4e292d --- /dev/null +++ b/app/rust/Cargo.toml @@ -0,0 +1,64 @@ +[package] +authors = ["Zondax AG "] +name = "rslib" +version = "0.1.0" +readme = "README.md" +resolver = "2" +edition = "2021" + +[lib] +name = "rslib" +crate-type = ["staticlib"] + +[dependencies] +rand = { version = "0.7.3", default-features = false } +nom = { version = "7.1.3", default-features = false } +arrayvec = { version = "0.7.4", default-features = false } +arrayref = { version = "0.3.7", default-features = false } +no-std-compat = "0.4.1" +educe = "0.5.9" +blake2b_simd = { version = "1.0.2", default-features = false } +# blake2b_simd = { path = "../blake2_simd/blake2b", default-features = false } +aes = { version = "0.8.4", default-features = false } +zeroize = { version = "1.7.0", default-features = false, features = ["derive"] } +decaf377 = { version = "0.10.1", default-features = false, features = [ + "u32_backend", +] } +decaf377-rdsa = { version = "0.11", default-features = false, features = [ + "u32_backend", +] } +poseidon377 = { version = "1.1.0", default-features = false } +f4jumble = { version = "0.1.0", default-features = false } +bech32 = { version = "0.11.0", default-features = false } +chacha20poly1305 = { version = "0.10.1", default-features = false } + +[dev-dependencies] +hex-literal = "0.4.1" +hex = "0.4.2" +no-std-compat = { version = "0.4.1", features = ["std"] } +blake2b_simd = { version = "1.0.2", default-features = false } +chacha20poly1305 = { version = "0.10.1" } +getrandom = { version = "0.1.14", default-features = false } +# blake2b_simd = { path = "../blake2_simd/blake2b", default-features = false } + +[target.thumbv6m-none-eabi.dev-dependencies] +panic-halt = "0.2.0" + +[profile.release] +lto = false +codegen-units = 1 +debug = true +opt-level = "z" + +[profile.dev] +panic = "abort" + +[features] +clippy = [] + +[patch.crates-io] +# decaf377 = { path = "../decaf377" } +# decaf377-rdsa = { path = "../decaf377-rdsa" } +# decaf377 = { path = "../decaf377" } +# decaf377-rdsa = { path = "../decaf377-rdsa" } +# blake2b_simd = { path = "../blake2_simd/blake2b" } diff --git a/app/rust/include/rslib.h b/app/rust/include/rslib.h new file mode 100644 index 0000000..aa9f175 --- /dev/null +++ b/app/rust/include/rslib.h @@ -0,0 +1,29 @@ +#pragma once + +#include + +#include "coin.h" + +void get_sr25519_sk(uint8_t *sk_ed25519_expanded); + +void sign_sr25519_phase1(const uint8_t *sk_ed25519_expanded, const uint8_t *pk, const uint8_t *context_ptr, + uint32_t context_len, const uint8_t *msg_ptr, uint32_t msg_len, uint8_t *sig_ptr); +void sign_sr25519_phase2(const uint8_t *sk_ed25519_expanded, const uint8_t *pk, const uint8_t *context_ptr, + uint32_t context_len, const uint8_t *msg_ptr, uint32_t msg_len, uint8_t *sig_ptr); + +void sign_decaf377(const uint8_t *msg, uint32_t msg_len, uint8_t *sig, uint32_t sig_len); + +// To compute the raw-address associated to account and either it should be +// randomized or not(randomizer = NULL) +parser_error_t rs_compute_address(keys_t *keys, uint32_t account, uint8_t *randomizer); + +// use to compute the full-viewing key +parser_error_t rs_compute_keys(keys_t *keys); + +// use to compute the full-viewing key +parser_error_t rs_compute_effect_hash(); + +parser_error_t rs_compute_transaction_plan(transaction_plan_t *plan, uint8_t *output, size_t output_len); + +int32_t rs_bech32_encode(const uint8_t *hrp_ptr, size_t hrp_len, const uint8_t *data_ptr, size_t data_len, + uint8_t *output_ptr, size_t output_len); diff --git a/app/rust/src/address.rs b/app/rust/src/address.rs new file mode 100644 index 0000000..0bf6475 --- /dev/null +++ b/app/rust/src/address.rs @@ -0,0 +1,202 @@ +use decaf377::Fq; + +use crate::keys::dk::Diversifier; +use crate::keys::{ka, ClueKey}; +use crate::{keys::dk::DiversifierKey, ParserError}; + +pub mod address_index; +pub mod address_view; + +use crate::constants::ADDRESS_LEN; + +#[derive(Clone, Copy, PartialEq)] +// pub struct Address([u8; Address::LEN]); +/// A valid payment address. +pub struct Address { + d: Diversifier, + /// cached copy of the diversified base + g_d: decaf377::Element, + /// extra invariant: the bytes in pk_d should be the canonical encoding of an + /// s value (whether or not it is a valid decaf377 encoding) + /// this ensures we can use a PaymentAddress to form a note commitment, + /// which involves hashing s as a field element. + pk_d: ka::Public, + tsk: Fq, + ck_d: ClueKey, +} + +// Steps for deriving an address from spendykeyBytes: +// 1. generate a Diversifier for address index i (Di). +// 2. generate a diversifier basepoint(Bd). +// 3. generate a detection key(Dtk). +// 4. compute a transmission key(Pkd). +// 5. compute the clue key(Ckd). +// 6. concatenate (Di, Pkd, Ckd) to form a raw binary encoding of the payment address(80-bytes). +// 7. apply the F4Jumble function to the raw binary encoding. +// 8. Encode the jumbled string with Bech32m, using the prefix "penumbra" for mainnet addresses or +// "penumbra*tnXYZ*" for testnet addresses, where "XYZ" is the testnet number. +impl Address { + pub const LEN: usize = ADDRESS_LEN; + // Max Length=length(HRP)+1+(8Ă—Data_Size(in bits)/5)+6 + // Max Length=8+1+128+6=143 + pub const MAX_ENC_LEN: usize = 150; + + /// Number of bits in the address short form divided by the number of bits per Bech32m character + pub const ADDRESS_NUM_CHARS_SHORT_FORM: usize = 24; + + /// Use to fill buffer with an raw address(before F4Jumble and bech32 encoding) + /// for index `idx` and `spend_key` + /// Returns Ok on success + pub fn new(_spend_key: &[u8; Self::LEN], _idx: u16) -> Result { + todo!() + } + + /// Constructs a payment address from its components. + /// + /// Returns `None` if the bytes in pk_d are a non-canonical representation + /// of an [`Fq`] `s` value. + pub fn from_components( + d: Diversifier, + pk_d: ka::Public, + ck_d: ClueKey, + ) -> Result { + // XXX ugly -- better way to get our hands on the s value? + // add to decaf377::Encoding? there's compress_to_field already... + // if let Ok(tsk) = Fq::deserialize_compressed(&pk_d.0[..]) { + Fq::from_bytes_checked(&pk_d.0) + .map(|tsk| Self { + d, + g_d: d.diversified_generator(), + pk_d, + ck_d, + tsk, + }) + .map_err(|_| ParserError::InvalidAddress) + } + + /// Returns a reference to the diversified base. + /// + /// This method computes the diversified base if it has not been computed yet. This value is + /// cached after it has been computed once. + pub fn diversified_generator(&self) -> &decaf377::Element { + &self.g_d + } + + pub fn diversifier(&self) -> &Diversifier { + &self.d + } + + pub fn transmission_key(&self) -> &ka::Public { + &self.pk_d + } + + pub fn clue_key(&self) -> &ClueKey { + &self.ck_d + } + + pub fn raw_bytes(&self) -> Result<[u8; Self::LEN], ParserError> { + let mut bytes = [0; Self::LEN]; + bytes[0..16].copy_from_slice(self.diversifier().as_ref()); + bytes[16..48].copy_from_slice(&self.transmission_key().0); + bytes[48..80].copy_from_slice(&self.clue_key().0); + f4jumble::f4jumble_mut(&mut bytes).map_err(|_| ParserError::InvalidLength)?; + Ok(bytes) + } + + +} + +impl TryFrom<&[u8]> for Address { + type Error = ParserError; + + fn try_from(jumbled_bytes: &[u8]) -> Result { + if jumbled_bytes.len() != ADDRESS_LEN { + return Err(ParserError::InvalidLength); + } + let mut unjumbled_bytes = [0u8; 80]; + unjumbled_bytes.copy_from_slice(jumbled_bytes); + + f4jumble::f4jumble_inv_mut(&mut unjumbled_bytes).map_err(|_| ParserError::InvalidAddress)?; + + let diversifier_bytes = &unjumbled_bytes[0..16]; + + let pk_d_bytes = &unjumbled_bytes[16..48]; + + let clue_key_bytes = &unjumbled_bytes[48..80]; + + let diversifier = Diversifier(diversifier_bytes.try_into().expect("can form diversifier bytes")); + + Address::from_components( + diversifier, + ka::Public(pk_d_bytes.try_into().expect("can form pk_d bytes")), + ClueKey(clue_key_bytes.try_into().expect("can form clue_key bytes")), + ) + .map_err(|_| ParserError::InvalidAddress) + } +} + +#[derive(Default, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug)] +pub struct AddressIndex { + pub account: u32, + pub randomizer: [u8; Self::RAND_LEN], +} + +impl AddressIndex { + pub const RAND_LEN: usize = 12; + + pub fn to_bytes(self) -> [u8; 16] { + let mut bytes = [0; DiversifierKey::LEN]; + bytes[0..4].copy_from_slice(&self.account.to_le_bytes()); + bytes[4..16].copy_from_slice(&self.randomizer); + bytes + } + + pub fn is_ephemeral(&self) -> bool { + self.randomizer != [0; 12] + } + + pub fn new(account: u32) -> Self { + AddressIndex::from(account) + } +} + +impl From for AddressIndex { + fn from(x: u32) -> Self { + Self { + account: x, + randomizer: [0; 12], + } + } +} + +impl From for u128 { + fn from(x: AddressIndex) -> Self { + u128::from_le_bytes(x.to_bytes()) + } +} + +impl TryFrom for u64 { + type Error = ParserError; + fn try_from(address_index: AddressIndex) -> Result { + let mut bytes = [0; 8]; + bytes[0..4].copy_from_slice(&address_index.account.to_le_bytes()); + bytes[5..8].copy_from_slice(address_index.randomizer.as_slice()); + + Ok(u64::from_le_bytes(bytes)) + } +} + +impl TryFrom<&[u8]> for AddressIndex { + type Error = ParserError; + + fn try_from(slice: &[u8]) -> Result { + if slice.len() != DiversifierKey::LEN { + return Err(ParserError::InvalidLength); + } + + Ok(AddressIndex { + account: u32::from_le_bytes(slice[0..4].try_into().expect("can form 4 byte array")), + randomizer: slice[4..16].try_into().expect("can form 12 byte array"), + }) + } +} diff --git a/app/rust/src/address/address_index.rs b/app/rust/src/address/address_index.rs new file mode 100644 index 0000000..e69de29 diff --git a/app/rust/src/address/address_view.rs b/app/rust/src/address/address_view.rs new file mode 100644 index 0000000..3b8f5d6 --- /dev/null +++ b/app/rust/src/address/address_view.rs @@ -0,0 +1,29 @@ +use crate::wallet_id::WalletId; + +use super::{Address, AddressIndex}; + +/// A view of a Penumbra address, either an opaque payment address or an address +/// with known structure. +/// +/// This type allows working with addresses and address indexes without knowing +/// the corresponding FVK. +#[derive(Clone, Copy, PartialEq)] +pub enum AddressView { + Opaque { + address: Address, + }, + Visible { + address: Address, + index: AddressIndex, + wallet_id: WalletId, + }, +} + +impl AddressView { + pub fn address(&self) -> Address { + match self { + AddressView::Opaque { address } => *address, + AddressView::Visible { address, .. } => *address, + } + } +} diff --git a/app/rust/src/bolos.rs b/app/rust/src/bolos.rs new file mode 100644 index 0000000..f614222 --- /dev/null +++ b/app/rust/src/bolos.rs @@ -0,0 +1,75 @@ +/******************************************************************************* +* (c) 2018 - 2023 Zondax AG +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +//! Rust interfaces to Ledger SDK APIs. +#[cfg(test)] +use getrandom::getrandom; + +use rand::{CryptoRng, RngCore}; + +extern "C" { + fn cx_rng(buffer: *mut u8, len: u32); + fn zemu_log_stack(buffer: *const u8); + fn check_app_canary(); +} + +#[cfg(not(test))] +pub fn c_zemu_log_stack(s: &[u8]) { + unsafe { zemu_log_stack(s.as_ptr()) } +} + +#[cfg(test)] +pub fn c_zemu_log_stack(_s: &[u8]) {} + +pub fn c_check_app_canary() { + unsafe { check_app_canary() } +} + +pub struct Trng; + +impl RngCore for Trng { + fn next_u32(&mut self) -> u32 { + let mut out = [0; 4]; + self.fill_bytes(&mut out); + u32::from_le_bytes(out) + } + + fn next_u64(&mut self) -> u64 { + let mut out = [0; 8]; + self.fill_bytes(&mut out); + u64::from_le_bytes(out) + } + + #[cfg(not(test))] + fn fill_bytes(&mut self, dest: &mut [u8]) { + c_zemu_log_stack(b"fill_bytes\x00".as_ref()); + + unsafe { + cx_rng(dest.as_mut_ptr(), dest.len() as u32); + } + } + + #[cfg(test)] + fn fill_bytes(&mut self, dest: &mut [u8]) { + let _ = getrandom(dest); + } + + fn try_fill_bytes(&mut self, dest: &mut [u8]) -> Result<(), rand::Error> { + self.fill_bytes(dest); + Ok(()) + } +} + +impl CryptoRng for Trng {} diff --git a/app/rust/src/constants.rs b/app/rust/src/constants.rs new file mode 100644 index 0000000..f520ae2 --- /dev/null +++ b/app/rust/src/constants.rs @@ -0,0 +1,37 @@ +pub const ADDR_INDEX_LEN: usize = 16; + +// Diversifier: 16 bytes +// Transmission Key: 32 bytes +// Clue Key: 32 bytes +// Total: 16 + 32 + 32 = 80 bytes +// this len is before F4Jumble is applied +// and bech32 encoding is appliend +pub const ADDRESS_LEN: usize = 80; + +pub const KEY_LEN: usize = 32; +pub const DIVERSIFIER_KEY_LEN: usize = 16; +pub const OUTGOING_VIEWING_KEY_LEN: usize = KEY_LEN; +pub const NULLIFIER_KEY_LEN: usize = KEY_LEN; // Assuming decaf377 curve parameters +pub const SPEND_AUTHORIZATION_KEY_LEN: usize = KEY_LEN; // Assuming encoded size +pub const SPEND_VERIFICATION_KEY_LEN: usize = KEY_LEN; // Assuming encoded size +pub const INCOMING_VIEWING_KEY_LEN: usize = KEY_LEN; // +/// The maximum detection precision, chosen so that the message bits fit in 3 bytes. +pub const MAX_PRECISION: u8 = 24; +pub const PAYLOAD_KEY_LEN_BYTES: usize = 32; + +pub const DETECTION_DATA_QTY: usize = 16; +pub const ACTION_DATA_QTY: usize = 16; +pub const MAX_CLUE_SUBKEYS: usize = 10; + +// Nonces: +pub const NONCE_LEN: usize = 12; +pub const NONCE_NOTE: &[u8; NONCE_LEN] = &[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +pub const NONCE_MEMO_KEYS: &[u8; NONCE_LEN] = &[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +pub const NONCE_SWAP: &[u8; NONCE_LEN] = &[2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; +pub const NONCE_MEMO: &[u8; NONCE_LEN] = &[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + +pub const MEMO_CIPHERTEXT_LEN_BYTES: usize = 528; +// This is the `MEMO_CIPHERTEXT_LEN_BYTES` - MAC size (16 bytes). +pub const MEMO_LEN_BYTES: usize = 512; +// This is the largest text length we can support +pub const MAX_TEXT_LEN: usize = MEMO_LEN_BYTES - ADDRESS_LEN; diff --git a/app/rust/src/effect_hash.rs b/app/rust/src/effect_hash.rs new file mode 100644 index 0000000..32af935 --- /dev/null +++ b/app/rust/src/effect_hash.rs @@ -0,0 +1,76 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +/// A hash of a transaction's _effecting data_, describing its effects on the +/// chain state. +/// +/// This includes, e.g., the commitments to new output notes created by the +/// transaction, or nullifiers spent by the transaction, but does not include +/// _authorizing data_ such as signatures or zk proofs. +#[derive(Clone, Copy, Eq, PartialEq)] +pub struct EffectHash(pub [u8; 64]); + +/// A helper function to create a BLAKE2b `State` instance given a variable-length personalization string. +pub fn create_personalized_state(personalization: &str) -> blake2b_simd::State { + let mut state = blake2b_simd::State::new(); + + // The `TypeUrl` provided as a personalization string is variable length, + // so we first include the length in bytes as a fixed-length prefix. + let length = personalization.len() as u64; + state.update(&length.to_le_bytes()); + state.update(personalization.as_bytes()); + + state +} + +impl EffectHash { + pub fn from_array(array: [u8; 64]) -> Self { + EffectHash(array) + } +} + +impl EffectHash { + pub fn as_bytes(&self) -> &[u8; 64] { + &self.0 + } +} + +impl AsRef<[u8]> for EffectHash { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + +impl Default for EffectHash { + fn default() -> Self { + Self([0u8; 64]) + } +} + +impl EffectHash { + pub fn as_array(&self) -> &[u8; 64] { + &self.0 + } +} + +#[cfg(test)] +impl std::fmt::Debug for EffectHash { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_tuple("EffectHash") + .field(&hex::encode(self.0)) + .finish() + } +} diff --git a/app/rust/src/ffi.rs b/app/rust/src/ffi.rs new file mode 100644 index 0000000..eb8b270 --- /dev/null +++ b/app/rust/src/ffi.rs @@ -0,0 +1,2 @@ +mod bech32; +mod keys; diff --git a/app/rust/src/ffi/bech32.rs b/app/rust/src/ffi/bech32.rs new file mode 100644 index 0000000..f3adae6 --- /dev/null +++ b/app/rust/src/ffi/bech32.rs @@ -0,0 +1,51 @@ +use bech32::{Bech32m, ByteIterExt, Fe32IterExt, Hrp}; + +#[no_mangle] +pub unsafe extern "C" fn rs_bech32_encode( + hrp_ptr: *const u8, + hrp_len: usize, + data_ptr: *const u8, + data_len: usize, + output_ptr: *mut u8, + output_len: usize, +) -> i32 { + crate::zlog("rs_bech32_encode\x00"); + + let hrp_slice = std::slice::from_raw_parts(hrp_ptr, hrp_len); + let data_slice = std::slice::from_raw_parts(data_ptr, data_len); + let output_slice = std::slice::from_raw_parts_mut(output_ptr, output_len); + + // Parse HRP + let hrp_str = match std::str::from_utf8(hrp_slice) { + Ok(s) => s, + Err(_) => return -1, + }; + + match bech32_encode(hrp_str, data_slice, output_slice) { + Ok(written) => written as i32, + Err(e) => e, + } +} + +pub fn bech32_encode(hrp: &str, data: &[u8], output: &mut [u8]) -> Result { + let hrp = Hrp::parse(hrp).map_err(|_| -2)?; // Invalid HRP + + let chars = data + .iter() + .copied() + .bytes_to_fes() + .with_checksum::(&hrp) + .chars(); + + // Copy characters to the output buffer + let mut written = 0; + for c in chars { + if written >= output.len() { + return Err(-3); + } + output[written] = c as u8; + written += 1; + } + + Ok(written) +} diff --git a/app/rust/src/ffi/keys.rs b/app/rust/src/ffi/keys.rs new file mode 100644 index 0000000..0882151 --- /dev/null +++ b/app/rust/src/ffi/keys.rs @@ -0,0 +1,134 @@ +use crate::address::{Address, AddressIndex}; +use crate::constants::KEY_LEN; +use crate::keys::spend_key::SpendKeyBytes; +use crate::ParserError; + +#[repr(C)] +pub struct Keys { + skb: [u8; SpendKeyBytes::LEN], + // fvk is the concatenation of: + // - verificationKeyBytes (32 bytes) + // - nullifierKeyBytes (32 bytes) + fvk: [u8; KEY_LEN * 2], + // Holds 80-byte raw data + address: [u8; Address::LEN], +} + +#[no_mangle] +/// Use to compute an address and write it back into output +/// argument. +pub unsafe extern "C" fn rs_compute_keys(keys: &mut Keys) -> u32 { + crate::zlog("rs_compute_keys\x00"); + + if let Err(code) = compute_keys(keys) { + return code as _; + } + + ParserError::Ok as u32 +} + +#[no_mangle] +/// Use to compute an address and write it back into output +/// argument. +pub unsafe extern "C" fn rs_compute_address( + keys: &mut Keys, + account: u32, + randomizer: *const u8, +) -> u32 { + crate::zlog("rs_compute_address\x00"); + let mut addr_idx = AddressIndex::new(account); + + if !randomizer.is_null() { + let randomizer = core::slice::from_raw_parts(randomizer, AddressIndex::RAND_LEN); + addr_idx.randomizer.copy_from_slice(randomizer); + } + + if let Err(code) = compute_address(keys, addr_idx) { + return code as u32; + } + + ParserError::Ok as u32 +} + +fn compute_address(keys: &mut Keys, addr_idx: AddressIndex) -> Result<(), ParserError> { + let spk = SpendKeyBytes::from(keys.skb); + let fvk = spk.fvk()?; + let ivk = fvk.ivk(); + + let address = ivk.payment_address(addr_idx).map(|(addr, _)| addr)?; + + // return the f4jumble encoded raw address + let raw = address.raw_bytes()?; + + keys.address.copy_from_slice(&raw); + + Ok(()) +} + +fn compute_keys(keys: &mut Keys) -> Result<(), ParserError> { + let spend_key = SpendKeyBytes::from(keys.skb); + let fvk = spend_key.fvk()?; + fvk.to_bytes_into(&mut keys.fvk)?; + + Ok(()) +} + +#[cfg(test)] +mod test { + use super::*; + use crate::keys::spend_key::SpendKeyBytes; + + const SPEND_KEY: &str = "ff726c71bcec76abc6a88cba71df655b28de6580edbd33c7415fdfded2e422e7"; + const ACCOUNT_IDX: u32 = 1; + const EXPECTED_ADDR: &str = "70c4d192ddf3c4cdf97fddc4c4aa07d112b5a7bf6d0810da37ae777990913737babcaa57fd4031d19260d88f1ec0c357a375c289f9943e7efa242ae963abcce749543a22039d687d8a027cb05b33438c"; + const EXPECTED_DIV: &str = "fe8f546c0172716f9efd52eba9074148"; + const EXPECTED_DIVERSIFIER_KEY: &str = "9d2107be5bfa0c07a7f870e216f185d9"; + const EXPECTED_DIV_FOR_INDEX: &str = "fe8f546c0172716f9efd52eba9074148"; + // detection key + const EXPECTED_DTK_D: &str = "47eed67e862907275f4062cbdd80c97a5720b04696ef49a311444c1c8bce0304"; + const EXPECTED_CLUE_KEY: &str = + "a0a9b1b8a39a0fe0eaacc74d1e84399f74c94f805d6ee83f38609f63aa85bf01 "; + + const EXPECTED_PUBLIC: &str = + "d8e051b4671997771d22e5b9203fc337055e0736660c922372692b7b8dd7ac07"; + + const EXPECTED_FVK: &str = "b8380bd5aa798359cb70a1496e8b41d1b557e0669da158215c00ccf6d3fd6f12b89201d8f297f9898b357e0175699218b2121cbf0f444fe63a476805bbe8fb0d"; + + #[test] + fn verify_addr() { + let addr_idx = AddressIndex::new(ACCOUNT_IDX); + let key_bytes = hex::decode(SPEND_KEY).unwrap(); + let expected_addr = hex::decode(EXPECTED_ADDR).unwrap(); + + let mut keys = Keys { + skb: [0; SpendKeyBytes::LEN], + fvk: [0; KEY_LEN * 2], + address: [0; Address::LEN], + }; + + keys.skb.copy_from_slice(&key_bytes); + + compute_address(&mut keys, addr_idx).unwrap(); + + assert_eq!(keys.address, expected_addr.as_slice()); + } + + #[test] + fn verify_fvk() { + let key_bytes = hex::decode(SPEND_KEY).unwrap(); + + let mut keys = Keys { + skb: [0; SpendKeyBytes::LEN], + fvk: [0; KEY_LEN * 2], + address: [0; Address::LEN], + }; + + keys.skb.copy_from_slice(&key_bytes); + + compute_keys(&mut keys).unwrap(); + + let s = hex::encode(keys.fvk); + + assert_eq!(s, EXPECTED_FVK); + } +} diff --git a/app/rust/src/keys.rs b/app/rust/src/keys.rs new file mode 100644 index 0000000..9def3ee --- /dev/null +++ b/app/rust/src/keys.rs @@ -0,0 +1,18 @@ +pub mod clue_key; +pub mod detection_key; +pub mod dk; +pub mod fvk; +pub mod ivk; +pub mod ka; +pub mod nk; +pub mod ovk; +mod payload_key; +pub mod signing_key; +pub mod spend_key; +pub mod transmission_key; + +pub use clue_key::ClueKey; +pub use fvk::FullViewingKey; +pub use ivk::Ivk; +pub use ka::Public; +pub use ovk::Ovk; diff --git a/app/rust/src/keys/clue_key.rs b/app/rust/src/keys/clue_key.rs new file mode 100644 index 0000000..b558ab2 --- /dev/null +++ b/app/rust/src/keys/clue_key.rs @@ -0,0 +1,189 @@ +use crate::constants::MAX_CLUE_SUBKEYS; +use crate::ParserError; +use decaf377::Fr; +/// Bytes representing a clue key corresponding to some +/// [`DetectionKey`](crate::DetectionKey). +/// +/// This type is a refinement type for plain bytes, and is suitable for use in +/// situations where clue key might or might not actually be used. This saves +/// computation; at the point that a clue key will be used to create a [`Clue`], +/// it can be expanded to an [`ExpandedClueKey`]. +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +pub struct ClueKey(pub [u8; 32]); + +#[derive(Debug)] +pub struct ExpandedClueKey { + root_pub: decaf377::Element, + root_pub_enc: decaf377::Encoding, + subkeys: [decaf377::Element; MAX_CLUE_SUBKEYS], + subkey_index: u8, +} + +#[derive(Debug)] +pub struct Clue(pub(crate) [u8; 68]); + +impl Default for Clue { + fn default() -> Self { + Clue([0u8; 68]) + } +} + +impl ClueKey { + /// Validate and expand this clue key encoding. + /// + /// # Errors + /// + /// Fails if the bytes don't encode a valid clue key. + pub fn expand(&self) -> Result { + ExpandedClueKey::new(self) + } + + /// Expand this clue key encoding. + /// + /// This method always results in a valid clue key, though the clue key may not have + /// a known detection key. + pub fn expand_infallible(&self) -> ExpandedClueKey { + let mut counter = 0u32; + loop { + counter += 1; + let ck_fq_incremented = + decaf377::Fq::from_le_bytes_mod_order(&self.0) + decaf377::Fq::from(counter); + let ck: ClueKey = ClueKey(ck_fq_incremented.to_bytes()); + + if let Ok(eck) = ck.expand() { + return eck; + } + } + } +} + +impl TryFrom<&[u8]> for ClueKey { + type Error = ParserError; + + fn try_from(bytes: &[u8]) -> Result { + if bytes.len() == 32 { + let mut arr = [0u8; 32]; + arr.copy_from_slice(&bytes[0..32]); + Ok(ClueKey(arr)) + } else { + Err(Self::Error::InvalidClueKey) + } + } +} + +impl ExpandedClueKey { + pub fn new(clue_key: &ClueKey) -> Result { + let root_pub_enc = decaf377::Encoding(clue_key.0); + let root_pub = root_pub_enc + .vartime_decompress() + .map_err(|_| ParserError::InvalidAddress)?; + let subkeys = [decaf377::Element::GENERATOR; 10]; + let subkey_index = 0; + + Ok(ExpandedClueKey { + root_pub, + root_pub_enc, + subkeys, + subkey_index, + }) + } + + // Checks that the expanded clue key has at least `precision` subkeys + fn ensure_at_least(&mut self, precision: usize) -> Result<(), ParserError> { + // The cached expansion is large enough to accommodate the specified precision. + if precision <= self.subkey_index as usize { + return Ok(()); + } + + for i in self.subkey_index as usize..precision { + let hash = blake2b_simd::Params::default() + .personal(b"decaf377-fmd.hkd") + .to_state() + .update(&self.root_pub_enc.0) + .update(&[i as u8]) + .finalize(); + let x = Fr::from_le_bytes_mod_order(hash.as_bytes()); + let x_element = x * decaf377::Element::GENERATOR; + let subkey = self.root_pub + x_element; + + self.subkeys[i] = subkey; + } + + self.subkey_index = precision as u8; + + Ok(()) + } + + pub fn create_clue_deterministic( + &mut self, + precision: u8, + rseed: [u8; 32], + ) -> Result { + if precision > MAX_CLUE_SUBKEYS as u8 { + return Err(ParserError::InvalidPrecision); + } + let precision_bits = precision as usize; + self.ensure_at_least(precision_bits)?; + + let r = self.compute_hash(b"decaf377-fmd.rdv", &rseed); + let z = self.compute_hash(b"decaf377-fmd.zdv", &rseed); + + let p = r * decaf377::Element::GENERATOR; + let p_encoding = p.vartime_compress(); + let q = z * decaf377::Element::GENERATOR; + let q_encoding = q.vartime_compress(); + + let mut ctxts = [0u8; 3]; + let xs = self.subkeys; + + for i in 0..precision_bits { + let r_xi = (r * xs[i]).vartime_compress(); + + let key_i = blake2b_simd::Params::default() + .personal(b"decaf377-fmd.bit") + .to_state() + .update(&p_encoding.0) + .update(&r_xi.0) + .update(&q_encoding.0) + .finalize() + .as_bytes()[0] + & 1; + + let ctxt_i = key_i ^ 1u8; + if ctxt_i != 0 { + ctxts[i / 8] |= 1 << (i % 8); + } + } + + let hash = blake2b_simd::Params::default() + .personal(b"decaf377-fmd.sca") + .to_state() + .update(&p_encoding.0) + .update(&[precision_bits as u8]) + .update(&ctxts) + .finalize(); + + let m = Fr::from_le_bytes_mod_order(hash.as_bytes()); + + let y = (z - m) * r.inverse().expect("random element is nonzero"); + + let mut buf = [0u8; 68]; + buf[0..32].copy_from_slice(&p_encoding.0[..]); + buf[32..64].copy_from_slice(&y.to_bytes()[..]); + buf[64] = precision_bits as u8; + buf[65..68].copy_from_slice(&ctxts[..]); + + Ok(Clue(buf)) + } + + fn compute_hash(&self, personal: &[u8], additional_data: &[u8]) -> Fr { + let hash = blake2b_simd::Params::default() + .personal(personal) + .to_state() + .update(&self.root_pub_enc.0) + .update(additional_data) + .finalize(); + + Fr::from_le_bytes_mod_order(hash.as_bytes()) + } +} diff --git a/app/rust/src/keys/detection_key.rs b/app/rust/src/keys/detection_key.rs new file mode 100644 index 0000000..b2688c2 --- /dev/null +++ b/app/rust/src/keys/detection_key.rs @@ -0,0 +1,109 @@ +use decaf377::{Element, Fr}; + +use crate::{utils::prf, ParserError}; + +use super::{spend_key::SpendKeyBytes, ClueKey}; + +pub struct DetectionKey { + /// The detection key. + pub(crate) dtk: Fr, +} + +impl DetectionKey { + pub const LABEL: &'static [u8; 16] = b"PenumbraExpndFMD"; + pub const MAX_PRECISION: usize = 24; + + pub fn derive_from(spend_key: &SpendKeyBytes) -> Result { + // dtk_d = from_le_bytes(prf_expand(b"PenumbraExpndFMD", to_le_bytes(ivk), d)) + let ivk = spend_key.ivk()?; + let dk = spend_key.diversifier_key()?; + + let fr = prf::expand_fr::expand_ff(Self::LABEL, &ivk.ivk.to_bytes(), &dk.to_bytes())?; + + Ok(Self::from_field(fr)) + } + + pub fn from_field(dtk: Fr) -> Self { + Self { dtk } + } + + /// Serialize this detection key to bytes. + pub fn to_bytes(&self) -> [u8; 32] { + self.dtk.to_bytes() + } + + /// Deserialize a detection key from bytes. + pub fn from_bytes(bytes: &[u8; 32]) -> Result { + let dtk = Fr::from_bytes_checked(bytes).map_err(|_| ParserError::InvalidDetectionKey)?; + Ok(Self::from_field(dtk)) + } + + /// Obtain the clue key corresponding to this detection key. + pub fn clue_key(&self) -> ClueKey { + // there is not a decaf377::basepoint() function, + // so use the inner implementation instead + let base = Element::GENERATOR; + let mul = (self.dtk * base).vartime_compress(); + ClueKey(mul.0) + } + + // Use this detection key to examine the given `clue`, returning `true` if the + // clue was possibly sent to this detection key's clue key. + // + // This test has false positives, but no false negatives. + // + // This function executes in constant time with respect to the detection + // key material, but short-circuits to return early on a false detection. + // #[allow(non_snake_case)] + // pub fn examine(&self, clue: &Clue) -> bool { + // let P_encoding = decaf377::Encoding::try_from(&clue.0[0..32]).expect("slice is right len"); + // + // let P = if let Ok(P) = P_encoding.vartime_decompress() { + // P + // } else { + // // Invalid P encoding => not a match + // return false; + // }; + // + // let y = if let Ok(y) = Fr::deserialize_compressed(&clue.0[32..64]) { + // y + // } else { + // // Invalid y encoding => not a match + // return false; + // }; + // + // // Reject P = 0 or y = 0, as these never occur in well-formed clues; as + // // noted in the OpenPrivacy implementation, these could allow clues to + // // match any detection key. + // // https://docs.rs/fuzzytags/0.6.0/src/fuzzytags/lib.rs.html#348-351 + // if P.is_identity() || y.is_zero() { + // return false; + // } + // + // let precision_bits = clue.0[64]; + // let ciphertexts = BitSlice::::from_slice(&clue.0[65..68]); + // + // let m = hash::to_scalar(&P_encoding.0, precision_bits, &clue.0[65..68]); + // let Q_bytes = ((y * P) + (m * decaf377::basepoint())).vartime_compress(); + // + // for i in 0..(precision_bits as usize) { + // let Px_i = (P * self.xs[i]).vartime_compress(); + // let key_i = hash::to_bit(&P_encoding.0, &Px_i.0, &Q_bytes.0); + // let msg_i = (ciphertexts[i] as u8) ^ key_i; + // // Short-circuit if we get a zero; this branch is dependent on the + // // ephemeral key bit `key_i`, not the long-term key `xs[i]`, so we + // // don't risk leaking any long-term secrets through timing channels. + // // + // // On the other hand, this gives a massive speedup, since we have a + // // 1/2 chance of rejecting after 1 iteration, 1/4 chance of + // // rejecting after 2 iterations, ..., so (in expectation) we do <= 2 + // // iterations instead of n iterations. + // if msg_i == 0 { + // return false; + // } + // } + // + // // Otherwise, all message bits were 1 and we return true. + // true + // } +} diff --git a/app/rust/src/keys/dk.rs b/app/rust/src/keys/dk.rs new file mode 100644 index 0000000..74a9ba5 --- /dev/null +++ b/app/rust/src/keys/dk.rs @@ -0,0 +1,128 @@ +use crate::ParserError; + +use crate::address::AddressIndex; +use crate::utils::prf; + +use aes::cipher::{generic_array::GenericArray, BlockDecrypt, BlockEncrypt, KeyInit}; +use aes::Aes128; +use decaf377::{Element, Fq}; + +use super::spend_key::SpendKeyBytes; + +#[derive(Copy, Clone, PartialEq, Eq)] +pub struct Diversifier(pub(crate) [u8; Diversifier::LEN]); + +impl Diversifier { + pub const LEN: usize = 16; + pub const LABEL: &'static [u8; 16] = b"Penumbra_Divrsfy"; + + /// Generate the diversified basepoint associated to this diversifier. + pub fn diversified_generator(&self) -> Element { + crate::zlog("Diversifier::diversified_generator\x00"); + // let hash = blake2b_simd::Params::new() + // .personal(Self::LABEL) + // .hash(&self.0); + // Element::encode_to_curve(&Fq::from_le_bytes_mod_order(hash.as_bytes())) + let hash = prf::expand(Self::LABEL, &[], &self.0).expect("can expand"); + Element::encode_to_curve(&Fq::from_le_bytes_mod_order(&hash)) + } +} + +impl AsRef<[u8; Diversifier::LEN]> for Diversifier { + fn as_ref(&self) -> &[u8; Diversifier::LEN] { + &self.0 + } +} + +impl TryFrom<&[u8]> for Diversifier { + type Error = ParserError; + + fn try_from(slice: &[u8]) -> Result { + if slice.len() != Diversifier::LEN { + return Err(ParserError::InvalidLength); + } + + let mut bytes = [0u8; Diversifier::LEN]; + bytes.copy_from_slice(&slice[0..16]); + Ok(Diversifier(bytes)) + } +} + +/// Diversifier Key +#[repr(C)] +#[derive(Copy, Clone, PartialEq, Eq)] +pub struct DiversifierKey(pub(crate) [u8; DiversifierKey::LEN]); + +impl DiversifierKey { + pub const LEN: usize = 16; + pub const LABEL: &'static [u8; 16] = b"Penumbra_DerivDK"; + + /// Derive a diversifier key from a spend key. + /// see reference documentation at: + /// https://github.com/penumbra-zone/penumbra/blob/main/crates/core/keys/src/keys/fvk.rs#L85 + pub fn derive_from(spend_bytes: &SpendKeyBytes) -> Result { + let ak = spend_bytes.verification_key()?; + let nk = spend_bytes.nullifier_key()?; + + let dk_bytes = prf::expand(Self::LABEL, &nk.to_bytes(), ak.as_ref())?; + + let mut bytes = [0u8; Self::LEN]; + bytes.copy_from_slice(&dk_bytes[0..Self::LEN]); + + Ok(Self(bytes)) + } + + pub fn diversifier_for_index(&self, index: &AddressIndex) -> Diversifier { + let mut key_bytes = [0u8; 16]; + key_bytes.copy_from_slice(&self.0); + + let key = GenericArray::from(key_bytes); + + let mut plaintext_bytes = [0u8; 16]; + plaintext_bytes.copy_from_slice(&index.to_bytes()); + let mut block = GenericArray::from(plaintext_bytes); + + let cipher = Aes128::new(&key); + cipher.encrypt_block(&mut block); + + let mut ciphertext_bytes = [0u8; 16]; + ciphertext_bytes.copy_from_slice(block.as_slice()); + Diversifier(ciphertext_bytes) + } + + pub fn index_for_diversifier(&self, diversifier: &Diversifier) -> AddressIndex { + let mut key_bytes = [0u8; 16]; + key_bytes.copy_from_slice(&self.0); + let key = GenericArray::from(key_bytes); + + let mut block = GenericArray::from(diversifier.0); + + let cipher = Aes128::new(&key); + cipher.decrypt_block(&mut block); + + let mut index_bytes = [0; Diversifier::LEN]; + index_bytes.copy_from_slice(&block); + + AddressIndex { + account: u32::from_le_bytes( + index_bytes[0..4].try_into().expect("can form 4 byte array"), + ), + randomizer: index_bytes[4..16] + .try_into() + .expect("can form 12 byte array"), + } + } + + /// Convert the key to a le byte array representation + pub fn to_bytes(self) -> [u8; Self::LEN] { + self.0 + } +} + +impl TryFrom<&SpendKeyBytes> for DiversifierKey { + type Error = ParserError; + + fn try_from(value: &SpendKeyBytes) -> Result { + Self::derive_from(value) + } +} diff --git a/app/rust/src/keys/fvk.rs b/app/rust/src/keys/fvk.rs new file mode 100644 index 0000000..c60f19e --- /dev/null +++ b/app/rust/src/keys/fvk.rs @@ -0,0 +1,152 @@ +use crate::{ + address::{address_view::AddressView, Address, AddressIndex}, + utils::prf, + wallet_id::WalletId, + ParserError, +}; + +use super::{ + detection_key::DetectionKey, dk::DiversifierKey, ka, nk::NullifierKey, + spend_key::SpendKeyBytes, Ivk, Ovk, +}; +use decaf377::{Fq, Fr}; +use decaf377_rdsa::{SpendAuth, VerificationKey}; + +/// The root viewing capability for all data related to a given spend authority. +#[derive(Clone, PartialEq, Eq)] +pub struct FullViewingKey { + ak: VerificationKey, + nk: NullifierKey, + ovk: Ovk, + ivk: Ivk, +} + +impl FullViewingKey { + pub const ACCOUNT_ID_DOMAIN_SEP: &'static [u8] = b"Penumbra_HashFVK"; + + fn derive_from(spk: &SpendKeyBytes) -> Result { + crate::zlog("FullViewingKey::derive_from\x00"); + let ak = spk.verification_key()?; + let nk = spk.nullifier_key()?; + let ovk = Ovk::derive_from(spk)?; + let ivk = Ivk::derive_from(spk)?; + Ok(Self { ak, nk, ovk, ivk }) + } + + /// Derive a shielded payment address with the given [`AddressIndex`]. + pub fn payment_address( + &self, + index: AddressIndex, + ) -> Result<(Address, DetectionKey), ParserError> { + self.ivk().payment_address(index) + } + + /// Views the structure of the supplied address with this viewing key. + pub fn view_address(&self, address: Address) -> Result { + if self.ivk().views_address(&address) { + Ok(AddressView::Visible { + index: self.ivk().index_for_diversifier(address.diversifier()), + wallet_id: self.wallet_id()?, + address, + }) + } else { + Ok(AddressView::Opaque { address }) + } + } + + /// Returns the index of the given address, if the address is viewed by this + /// viewing key; otherwise, returns `None`. + pub fn address_index(&self, address: &Address) -> Option { + self.ivk().address_index(address) + } + + /// Construct a full viewing key from its components. + pub fn from_components( + ak: VerificationKey, + nk: NullifierKey, + ) -> Result { + let ovk = { + let hash_result = prf::expand(b"Penumbra_DeriOVK", &nk.0.to_bytes(), ak.as_ref())?; + let mut ovk = [0; 32]; + ovk.copy_from_slice(&hash_result); + ovk + }; + + let dk = { + let hash_result = prf::expand(b"Penumbra_DerivDK", &nk.0.to_bytes(), ak.as_ref())?; + let mut dk = [0; 16]; + dk.copy_from_slice(&hash_result[0..16]); + dk + }; + + let ivk = { + let ak_s = Fq::from_bytes_checked(ak.as_ref()).map_err(|_| ParserError::InvalidFq)?; + let domain_sep = Fq::from_le_bytes_mod_order(&Ivk::IVK_DOMAIN_SEP); + let ivk_mod_q = poseidon377::hash_2(&domain_sep, (nk.0, ak_s)); + ka::Secret::new_from_field(Fr::from_le_bytes_mod_order(&ivk_mod_q.to_bytes())) + }; + + let dk = DiversifierKey(dk); + let ovk = Ovk(ovk); + let ivk = Ivk { ivk, dk }; + + Ok(Self { ak, nk, ovk, ivk }) + } + + /// Returns the ivk viewing key for this full viewing key. + pub fn ivk(&self) -> &Ivk { + &self.ivk + } + + /// Returns the outgoing viewing key for this full viewing key. + pub fn outgoing(&self) -> &Ovk { + &self.ovk + } + + pub fn nullifier_key(&self) -> &NullifierKey { + &self.nk + } + + /// Returns the spend verification key contained in this full viewing key. + pub fn spend_verification_key(&self) -> &VerificationKey { + &self.ak + } + + /// Hashes the full viewing key into an [`WalletId`]. + pub fn wallet_id(&self) -> Result { + let domain_sep = Fq::from_le_bytes_mod_order(Self::ACCOUNT_ID_DOMAIN_SEP); + let hash_result = poseidon377::hash_2( + &domain_sep, + ( + self.nk.0, + Fq::from_le_bytes_mod_order(&self.ak.to_bytes()[..]), + ), + ); + let hash = hash_result.to_bytes()[..32] + .try_into() + .map_err(|_| ParserError::InvalidAddress)?; + Ok(WalletId(hash)) + } + + /// Concatenate VerificationKey and NullifierKey into passed buffer + /// Returns OK on success. + pub fn to_bytes_into(&self, out: &mut [u8]) -> Result<(), ParserError> { + // vk and nk are 32 bytes each + if out.len() < (crate::constants::KEY_LEN * 2) { + return Err(ParserError::InvalidLength); + } + + out[0..32].copy_from_slice(&self.ak.to_bytes()); + out[32..64].copy_from_slice(&self.nk.0.to_bytes()); + + Ok(()) + } +} + +impl TryFrom<&SpendKeyBytes> for FullViewingKey { + type Error = ParserError; + + fn try_from(spend_key: &SpendKeyBytes) -> Result { + FullViewingKey::derive_from(spend_key) + } +} diff --git a/app/rust/src/keys/ivk.rs b/app/rust/src/keys/ivk.rs new file mode 100644 index 0000000..3a3e8d1 --- /dev/null +++ b/app/rust/src/keys/ivk.rs @@ -0,0 +1,117 @@ +use decaf377::{Fq, Fr}; + +use crate::{ + address::{Address, AddressIndex}, + utils::prf, + ParserError, +}; + +use super::{ + detection_key::DetectionKey, + dk::{Diversifier, DiversifierKey}, + ka::Secret, + spend_key::SpendKeyBytes, +}; + +/// An incoming viewing key +#[derive(Clone, PartialEq, Eq)] +pub struct Ivk { + pub(super) ivk: Secret, + pub(super) dk: DiversifierKey, +} + +impl Ivk { + pub const IVK_DOMAIN_SEP: [u8; 19] = *b"penumbra.derive.ivk"; + + /// Derive an incoming viewing key from a spend key. + /// based on the reference implementation at: + /// https://github.com/penumbra-zone/penumbra/blob/main/crates/core/keys/src/keys/fvk.rs#L92 + pub fn derive_from(spend_key: &SpendKeyBytes) -> Result { + let dk = spend_key.diversifier_key()?; + let ak = spend_key.verification_key()?; + let nk = spend_key.nullifier_key()?; + + let ak_s = Fq::from_bytes_checked(ak.as_ref()).map_err(|_| ParserError::InvalidLength)?; + let domain_sep = Fq::from_le_bytes_mod_order(&Self::IVK_DOMAIN_SEP); + + // now compute the ivk_mod_q using poseidon377::hash function + // with the result compute the ivk secret component: + // current poseidon377 hash function uses std and allocation. + let ivk_mod_q = poseidon377::hash_2(&domain_sep, (nk.0, ak_s)); + + let ivk = Secret::new_from_field(Fr::from_le_bytes_mod_order(&ivk_mod_q.to_bytes())); + Ok(Self { ivk, dk }) + } + + pub fn payment_address( + &self, + index: AddressIndex, + ) -> Result<(Address, DetectionKey), ParserError> { + let d = self.dk.diversifier_for_index(&index); + + let g_d = d.diversified_generator(); + let pk_d = self.ivk.diversified_public(&g_d); + + // PenumbraExpndFMD + let expanded = prf::expand(DetectionKey::LABEL, &self.ivk.to_bytes(), d.as_ref())?; + + let dtk_d = DetectionKey::from_field(Fr::from_le_bytes_mod_order(&expanded)); + let ck_d = dtk_d.clue_key(); + + let address = Address::from_components(d, pk_d, ck_d)?; + Ok((address, dtk_d)) + } + + /// Check whether this address is viewable by this incoming viewing key. + pub fn views_address(&self, address: &Address) -> bool { + self.ivk.diversified_public(address.diversified_generator()) == *address.transmission_key() + } + + /// Returns the index used to create the given diversifier (if it was + /// created using this incoming viewing key) + pub fn index_for_diversifier(&self, diversifier: &Diversifier) -> AddressIndex { + self.dk.index_for_diversifier(diversifier) + } + + /// Returns the index of the given address, if the address is viewed by this + /// viewing key; otherwise, returns `None`. + // TODO: re-evaluate relative to FVK methods + pub(super) fn address_index(&self, address: &Address) -> Option { + if self.views_address(address) { + Some(self.index_for_diversifier(address.diversifier())) + } else { + None + } + } +} + +impl TryFrom<&SpendKeyBytes> for Ivk { + type Error = ParserError; + + fn try_from(value: &SpendKeyBytes) -> Result { + Self::derive_from(value) + } +} + +#[cfg(test)] +mod test { + use super::*; + + const SPEND_KEY: &str = "ff726c71bcec76abc6a88cba71df655b28de6580edbd33c7415fdfded2e422e7"; + const SECRECT_IVK: &str = "50568b11d5668f53629af6531072e8666b07733db04d8953277e0df4a5382a01"; + const DIVERSIFIER: &str = "9d2107be5bfa0c07a7f870e216f185d9"; + + #[test] + fn test_derive_ivk() { + let key_bytes = hex::decode(SPEND_KEY).unwrap(); + let key_bytes: [u8; 32] = key_bytes.as_slice().try_into().unwrap(); + let spk = SpendKeyBytes::from(key_bytes); + let fvk = spk.fvk().unwrap(); + let ivk = fvk.ivk(); + let secrect = hex::encode(ivk.ivk.to_bytes()); + let div_s = hex::encode(ivk.dk.0); + + assert_eq!(secrect, SECRECT_IVK); + assert_eq!(div_s, DIVERSIFIER); + } +} diff --git a/app/rust/src/keys/ka.rs b/app/rust/src/keys/ka.rs new file mode 100644 index 0000000..bad919d --- /dev/null +++ b/app/rust/src/keys/ka.rs @@ -0,0 +1,63 @@ +//! The Key agreement implementations taken from Penumbra code base. + +use zeroize::Zeroize; + +use crate::ParserError; + +#[derive(Clone, Copy, PartialEq, Eq)] +pub struct Public(pub [u8; 32]); + +#[derive(Clone, Zeroize, PartialEq, Eq)] +#[zeroize(drop)] +pub struct Secret(decaf377::Fr); + +impl Secret { + /// Generate a new secret key using the provided `decaf377` field element. + /// Meant to be used with the SigningKey abstraction. + pub fn new_from_field(sk: decaf377::Fr) -> Self { + Self(sk) + } + + /// Derive a diversified public key for this secret key, using the provided + /// `diversified_generator`. + /// + /// Since key agreement does not depend on the basepoint, only on the secret + /// key and the public key, a single secret key can correspond to many + /// different (unlinkable) public keys. + pub fn diversified_public(&self, diversified_generator: &decaf377::Element) -> Public { + Public((self.0 * diversified_generator).vartime_compress().into()) + } + + /// Convert this shared secret to bytes. + /// + /// Convenience wrapper around an [`Into`] impl. + pub fn to_bytes(&self) -> [u8; 32] { + self.0.to_bytes() + } +} + +impl TryFrom<&[u8]> for Public { + type Error = ParserError; + + fn try_from(slice: &[u8]) -> Result { + let bytes: [u8; 32] = slice.try_into().map_err(|_| ParserError::InvalidLength)?; + Ok(Public(bytes)) + } +} + +impl TryFrom<&[u8]> for Secret { + type Error = ParserError; + + fn try_from(slice: &[u8]) -> Result { + let bytes: [u8; 32] = slice.try_into().map_err(|_| ParserError::InvalidLength)?; + bytes.try_into() + } +} + +impl TryFrom<[u8; 32]> for Secret { + type Error = ParserError; + fn try_from(bytes: [u8; 32]) -> Result { + let x = decaf377::Fr::from_bytes_checked(&bytes).map_err(|_| ParserError::InvalidLength)?; + Ok(Secret(x)) + } +} diff --git a/app/rust/src/keys/nk.rs b/app/rust/src/keys/nk.rs new file mode 100644 index 0000000..20b816e --- /dev/null +++ b/app/rust/src/keys/nk.rs @@ -0,0 +1,37 @@ +use crate::{constants::KEY_LEN, ParserError}; + +use crate::expand_fq::expand_ff; +use decaf377::Fq; + +use super::spend_key::SpendKeyBytes; + +/// Nullifier Key +#[repr(C)] +#[derive(Copy, Clone, PartialEq, Eq)] +pub struct NullifierKey(pub(crate) Fq); + +impl NullifierKey { + pub const LEN: usize = KEY_LEN; + pub const LABEL: &'static [u8; 16] = b"Penumbra_ExpndSd"; + + pub fn derive_from(spend_bytes: &SpendKeyBytes) -> Result { + // in Docs: + // nk = from_le_bytes(prf_expand("Penumbra_ExpndSd", spend_key_bytes, 1)) mod q + let one = [1; 1]; + let nk = expand_ff(Self::LABEL, spend_bytes.key_bytes(), &one)?; + Ok(Self(nk)) + } + + /// Convert the key to a le byte array representation + pub fn to_bytes(self) -> [u8; Self::LEN] { + self.0.to_bytes() + } +} + +impl TryFrom<&SpendKeyBytes> for NullifierKey { + type Error = ParserError; + + fn try_from(value: &SpendKeyBytes) -> Result { + Self::derive_from(value) + } +} diff --git a/app/rust/src/keys/ovk.rs b/app/rust/src/keys/ovk.rs new file mode 100644 index 0000000..6dc4065 --- /dev/null +++ b/app/rust/src/keys/ovk.rs @@ -0,0 +1,65 @@ +use crate::{utils::prf::expand, ParserError}; + +use super::{nk::NullifierKey, spend_key::SpendKeyBytes}; + +/// Allows viewing outgoing notes, i.e., notes sent from the spending key this +/// key is derived from. +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct Ovk(pub(crate) [u8; Self::LEN]); + +impl Ovk { + pub const LEN: usize = 32; + pub const LABEL: &'static [u8; 16] = b"Penumbra_DeriOVK"; + + // Docs described it is derived as: + // ovk = prf_expand(b"Penumbra_DeriOVK", to_le_bytes(nk), decaf377_encode(ak))[0..32] + pub fn derive_from(spend_bytes: &SpendKeyBytes) -> Result { + let ask = spend_bytes.signing_key()?; + let nk = NullifierKey::derive_from(spend_bytes)?; + + let nk_bytes = nk.to_bytes(); + // now, the spend verification key (ak) is encoded using the function `decaf377_encode(ak)` + // to produce its canonical encoding. + let ak = ask.verification_key(); + + // https://github.com/penumbra-zone/penumbra/blob/main/crates/core/keys/src/keys/fvk.rs#L79 + let dk_bytes = expand(Self::LABEL, &nk_bytes, ak.as_ref())?; + + let mut bytes = [0u8; Self::LEN]; + bytes.copy_from_slice(&dk_bytes[0..Self::LEN]); + + Ok(Self(bytes)) + } + + pub fn to_bytes(&self) -> [u8; Self::LEN] { + self.0 + } +} + +impl TryFrom<&SpendKeyBytes> for Ovk { + type Error = ParserError; + + fn try_from(value: &SpendKeyBytes) -> Result { + Self::derive_from(value) + } +} + +#[cfg(test)] +mod test { + use super::*; + + const SPEND_KEY: &str = "ff726c71bcec76abc6a88cba71df655b28de6580edbd33c7415fdfded2e422e7"; + const EXPECTED_OVK: &str = "7e2a61790b91bd896bf9bd14a3723934011b166413128a4aad02675897397902"; + + #[test] + fn test_derive_ovk() { + let key_bytes = hex::decode(SPEND_KEY).unwrap(); + let key_bytes: [u8; 32] = key_bytes.as_slice().try_into().unwrap(); + let spk = SpendKeyBytes::from(key_bytes); + + let ovk = Ovk::derive_from(&spk).unwrap(); + let ovk = hex::encode(ovk.0); + + assert_eq!(ovk, EXPECTED_OVK); + } +} diff --git a/app/rust/src/keys/payload_key.rs b/app/rust/src/keys/payload_key.rs new file mode 100644 index 0000000..a219d52 --- /dev/null +++ b/app/rust/src/keys/payload_key.rs @@ -0,0 +1,62 @@ +use core::ptr::addr_of_mut; + +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use chacha20poly1305::Key; + +use crate::{constants::PAYLOAD_KEY_LEN_BYTES, utils::read_fixed_bytes, FromBytes, ParserError}; +/// Represents a symmetric `ChaCha20Poly1305` key. +/// +/// Used for encrypting and decrypting notes, swaps, memos, and memo keys. +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub struct PayloadKey<'a>(&'a [u8; PAYLOAD_KEY_LEN_BYTES]); + +impl<'a> FromBytes<'a> for PayloadKey<'a> { + fn from_bytes_into( + input: &'a [u8], + out: &mut core::mem::MaybeUninit, + ) -> Result<&'a [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (rem, bytes) = read_fixed_bytes::(input)?; + + unsafe { + addr_of_mut!((*out).0).write(bytes); + } + + Ok(rem) + } +} + +impl<'a> TryFrom<&'a [u8]> for PayloadKey<'a> { + type Error = ParserError; + + fn try_from(slice: &'a [u8]) -> Result { + let bytes: &[u8; PAYLOAD_KEY_LEN_BYTES] = slice + .try_into() + .map_err(|_| ParserError::UnexpectedBufferEnd)?; + + Ok(Self(bytes)) + } +} + +impl<'a> TryFrom> for Key { + type Error = ParserError; + + fn try_from(slice: PayloadKey) -> Result { + Ok(*Key::from_slice(slice.0.as_ref())) + } +} diff --git a/app/rust/src/keys/signing_key.rs b/app/rust/src/keys/signing_key.rs new file mode 100644 index 0000000..5d7a733 --- /dev/null +++ b/app/rust/src/keys/signing_key.rs @@ -0,0 +1,39 @@ +use crate::{constants::KEY_LEN, ParserError}; + +use crate::{expand_fr::expand_ff, keys::spend_key::SpendKeyBytes}; +use decaf377_rdsa::{SigningKey, SpendAuth, VerificationKey}; + +// Documentation says that the ask in used as a SigningKey in decaf377-rdsa, +// so we define this type as the ask + ak pair, wrapped up by the SigningKey type +// from decaf377-rdsa. +// TODO: What domain do we use here? lets default it to SpendAuth for now. +#[repr(C)] +#[derive(Copy, Clone)] +/// SigningKey +pub struct Sk(SigningKey); + +impl Sk { + pub const LEN: usize = KEY_LEN; + pub const LABEL: &'static [u8; 16] = b"Penumbra_ExpndSd"; + + pub fn derive_from(spend_bytes: &SpendKeyBytes) -> Result { + // compute Fr field + let ask = expand_ff(Self::LABEL, spend_bytes.key_bytes(), &[0; 1])?; + let signing_key = SigningKey::new_from_field(ask); + + Ok(Self(signing_key)) + } + + /// Returns the 32-byte encoding of the ask component + pub fn to_bytes(self) -> [u8; Self::LEN] { + self.0.to_bytes() + } + + pub fn verification_key(&self) -> VerificationKey { + self.0.into() + } + + pub fn signing_key(&self) -> &SigningKey { + &self.0 + } +} diff --git a/app/rust/src/keys/spend_key.rs b/app/rust/src/keys/spend_key.rs new file mode 100644 index 0000000..469392a --- /dev/null +++ b/app/rust/src/keys/spend_key.rs @@ -0,0 +1,100 @@ +use crate::utils::prf::expand_fr::expand_ff; +use crate::ParserError; + +use decaf377_rdsa::SigningKey; +use decaf377_rdsa::{SpendAuth, VerificationKey}; +use zeroize::{Zeroize, ZeroizeOnDrop}; + +use super::dk::DiversifierKey; +use super::signing_key::Sk; +use super::{nk, FullViewingKey, Ivk}; + +/// The Signing key +#[repr(C)] +#[derive(Clone)] +pub struct SpendKey { + seed: SpendKeyBytes, + ask: SigningKey, + fvk: FullViewingKey, +} + +impl SpendKey { + /// Takes ownership of the spend_key_bytes + pub fn derive_from(seed: SpendKeyBytes) -> Result { + let ask = SigningKey::new_from_field(expand_ff(b"Penumbra_ExpndSd", &seed.0, &[0; 1])?); + let fvk = seed.fvk()?; + Ok(Self { seed, ask, fvk }) + } +} + +/// The raw keep generated by the device. +/// raw data is comming from C, it is not kept +/// in memory and gets zeroized after use. +#[repr(C)] +#[derive(Debug, Clone, Zeroize, ZeroizeOnDrop)] +pub struct SpendKeyBytes([u8; SpendKeyBytes::LEN]); + +impl SpendKeyBytes { + pub const LEN: usize = 32; +} + +impl From<[u8; Self::LEN]> for SpendKeyBytes { + fn from(bytes: [u8; Self::LEN]) -> SpendKeyBytes { + SpendKeyBytes(bytes) + } +} + +impl TryFrom<&[u8]> for SpendKeyBytes { + type Error = ParserError; + + fn try_from(bytes: &[u8]) -> Result { + if bytes.len() == Self::LEN { + let mut bytes32 = [0u8; Self::LEN]; + bytes32.copy_from_slice(bytes); + Ok(Self::from(bytes32)) + } else { + Err(ParserError::InvalidLength) + } + } +} + +impl SpendKeyBytes { + /// Returns a full signing key composed of ask and ak + pub fn signing_key(&self) -> Result { + Sk::derive_from(self) + } + + /// Returns a verification key(ak) + /// using default domain `SpendAuth` + pub fn verification_key(&self) -> Result, ParserError> { + // error should not happen as len is right + let ask = SigningKey::new_from_field(expand_ff(b"Penumbra_ExpndSd", &self.0, &[0; 1])?); + let vk: VerificationKey = ask.into(); + Ok(vk) + } + + pub fn key_bytes(&self) -> &[u8; Self::LEN] { + &self.0 + } + + /// Returns the full viewing key + pub fn fvk(&self) -> Result { + self.try_into() + } + + pub fn diversifier_key(&self) -> Result { + DiversifierKey::derive_from(self) + } + + pub fn nullifier_key(&self) -> Result { + nk::NullifierKey::derive_from(self) + } + + pub fn ivk(&self) -> Result { + Ivk::derive_from(self) + } + + pub fn spend_key(self) -> Result { + SpendKey::derive_from(self) + } +} diff --git a/app/rust/src/keys/transmission_key.rs b/app/rust/src/keys/transmission_key.rs new file mode 100644 index 0000000..8a0af1f --- /dev/null +++ b/app/rust/src/keys/transmission_key.rs @@ -0,0 +1,17 @@ +use decaf377::Fq; + +use crate::ParserError; + +use super::Public; + +#[derive(Copy, Clone, PartialEq, Eq)] +pub struct TransmissionKey(pub(crate) Fq); + +impl TryFrom for TransmissionKey { + type Error = ParserError; + fn try_from(public: Public) -> Result { + Fq::from_bytes_checked(&public.0) + .map(TransmissionKey) + .map_err(|_| ParserError::InvalidTxKey) + } +} diff --git a/app/rust/src/lib.rs b/app/rust/src/lib.rs new file mode 100644 index 0000000..c5e81b4 --- /dev/null +++ b/app/rust/src/lib.rs @@ -0,0 +1,92 @@ +/******************************************************************************* +* (c) 2018 - 2024 Zondax AG +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +#![no_std] +#![no_builtins] +#![allow(dead_code)] +#![deny(unused_crate_dependencies)] + +extern crate no_std_compat as std; + +#[cfg(test)] +extern crate hex_literal; + +use poseidon377 as _; + +// pub(crate) mod addr; +pub(crate) mod address; +mod bolos; +pub mod constants; +pub mod effect_hash; +pub mod ffi; +pub(crate) mod keys; +pub mod network; +pub mod parser; +mod utils; +pub mod wallet_id; + +pub use effect_hash::EffectHash; +pub use parser::{FromBytes, ParserError, ViewError}; +pub(crate) use utils::prf::{expand_fq, expand_fr}; + +fn debug(_msg: &str) {} + +#[cfg(all(not(test), not(feature = "clippy"), not(feature = "fuzzing")))] +use core::panic::PanicInfo; + +#[cfg(all(not(test), not(feature = "clippy"), not(feature = "fuzzing")))] +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + loop {} +} + +extern "C" { + fn check_app_canary(); + fn pic(link_address: u32) -> u32; + fn app_mode_expert() -> u8; + fn zemu_log_stack(s: *const u8); +} + +pub(crate) fn canary() { + #[cfg(not(any(test, fuzzing)))] + unsafe { + check_app_canary(); + } +} + +#[cfg(not(any(test, fuzzing)))] +pub fn is_expert_mode() -> bool { + unsafe { app_mode_expert() > 0 } +} + +#[cfg(any(test, fuzzing))] +pub fn is_expert_mode() -> bool { + true +} + +pub fn zlog(_msg: &str) { + #[cfg(not(any(test, fuzzing)))] + unsafe { + zemu_log_stack(_msg.as_bytes().as_ptr()); + } +} + +#[macro_export] +macro_rules! check_canary { + () => { + use canary; + canary(); + }; +} diff --git a/app/rust/src/network.rs b/app/rust/src/network.rs new file mode 100644 index 0000000..ed2625b --- /dev/null +++ b/app/rust/src/network.rs @@ -0,0 +1,6 @@ +/// Network information either mainet of testnet with a chain id. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Network { + Mainnet, + Testnet(u32), +} diff --git a/app/rust/src/parser.rs b/app/rust/src/parser.rs new file mode 100644 index 0000000..4bc5f86 --- /dev/null +++ b/app/rust/src/parser.rs @@ -0,0 +1,120 @@ +/******************************************************************************* +* (c) 2021 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use core::mem::MaybeUninit; + +// transaction plan: +// https://rustdoc.penumbra.zone/main/penumbra_transaction/plan/struct.TransactionPlan.html +// actions: +// https://rustdoc.penumbra.zone/main/penumbra_transaction/plan/enum.ActionPlan.html +mod address; +mod amount; +mod asset_id; +mod clue_plan; +mod curve_fields; +mod error; +mod fee; +mod note; +mod object_list; +mod plans; +mod position; +mod precision; +mod tx_parameters; +mod value; +mod bytes; + +pub use address::Address; +pub use amount::Amount; +pub use asset_id::AssetId; +pub use clue_plan::CluePlan; +pub use curve_fields::{Fq, Fr}; +pub use error::ParserError; +pub use fee::Fee; +pub use note::Note; +pub use object_list::ObjectList; +pub use position::{Position, Tree}; +pub use precision::Precision; +pub use tx_parameters::TransactionParameters; +pub use value::Value; + +#[derive(Clone, Copy, PartialEq, Eq)] +#[cfg_attr(test, derive(Debug))] +pub enum ViewError { + Unknown, + NoData, + Reject, +} + +///This trait defines the interface useful in the UI context +/// so that all the different OperationTypes or other items can handle their own UI +pub trait DisplayableItem { + /// Returns the number of items to display + fn num_items(&self) -> Result; + + /// This is invoked when a given page is to be displayed + /// + /// `item_n` is the item of the operation to display; + /// guarantee: 0 <= item_n < self.num_items() + /// `title` is the title of the item + /// `message` is the contents of the item + /// `page` is what page we are supposed to display, this is used to split big messages + /// + /// returns the total number of pages on success + /// + /// It's a good idea to always put `#[inline(never)]` on top of this + /// function's implementation + //#[inline(never)] + fn render_item( + &self, + item_n: u8, + title: &mut [u8], + message: &mut [u8], + page: u8, + ) -> Result; +} + +///This trait defines an useful interface to parse +///objects from bytes. +///this gives different objects in a transaction +///a way to define their own deserilization implementation, allowing higher level objects to generalize the +///parsing of their inner types +pub trait FromBytes<'b>: Sized { + /// this method is avaliable for testing only, as the preferable + /// option is to save stack by passing the memory where the object should + /// store itself + #[cfg(test)] + fn from_bytes(input: &'b [u8]) -> Result<(&'b [u8], Self), nom::Err> { + let mut out = MaybeUninit::uninit(); + let rem = Self::from_bytes_into(input, &mut out)?; + unsafe { Ok((rem, out.assume_init())) } + } + + ///Main deserialization method + ///`input` the input data that contains the serialized form in bytes of this object. + ///`out` the memory where this object would be stored + /// + /// returns the remaining bytes on success + /// + /// `Safety` Dealing with uninitialize memory is undefine behavior + /// even in rust, so implementors should follow the rust documentation + /// for MaybeUninit and unsafe guidelines. + /// + /// It's a good idea to always put `#[inline(never)]` on top of this + /// function's implementation + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err>; +} diff --git a/app/rust/src/parser/address.rs b/app/rust/src/parser/address.rs new file mode 100644 index 0000000..a81038e --- /dev/null +++ b/app/rust/src/parser/address.rs @@ -0,0 +1,101 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +// proto: + +// // A Penumbra address. An address in Penumbra is a Bech32m-encoded +// // string, with the human-readable prefix (HRP) `penumbrav2t`. +// message Address { +// // The bytes of the address. Must be represented as a series of +// // `uint8` (i.e. values 0 through 255), with a length of 80 elements. +// bytes inner = 1; +// +// // Alternatively, a Bech32m-encoded string representation of the `inner` +// // bytes. +// // +// // NOTE: implementations are not required to support parsing this field. +// // Implementations should prefer to encode the bytes in all messages they +// // produce. Implementations must not accept messages with both `inner` and +// // `alt_bech32m` set. +// string alt_bech32m = 2; +// } + +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use nom::bytes::complete::take; + +use super::bytes::BytesC; +use crate::{utils::varint, FromBytes, ParserError}; + +// TODO! It is unclear if this address is a raw-address to which F4Jumble and bech32 encoding +// has been applied as well, if that is the case, its length is not necessarly ADDRESS_LEN +// it could be more due to bech32 hrp and checksum. + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Address<'a>(&'a [u8]); + +impl<'b> FromBytes<'b> for Address<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (input, _) = varint(input)?; // Parse field number and wire type + let (input, len) = varint(input)?; // Parse length + // + if len as usize == 0 { + return Err(ParserError::InvalidLength.into()); + } + + // TODO: not necessarly equal but less than + // if len as usize != ADDRESS_LEN { + // return Err(ParserError::InvalidLength.into()); + // } + + let (input, bytes) = take(len as usize)(input)?; + + unsafe { + addr_of_mut!((*out).0).write(bytes); + } + + Ok(input) + } +} + +#[repr(C)] +#[derive(Clone, PartialEq, Default)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct AddressC { + pub inner: BytesC, + pub alt_bech32m: BytesC, +} + +impl AddressC { + pub unsafe fn get_address_bytes<'a>(self) -> &'a [u8] { + let total_len = (self.inner.len + self.alt_bech32m.len) as usize; + std::slice::from_raw_parts(self.inner.ptr, total_len) + } + + pub unsafe fn get_inner_bytes<'a>(self) -> &'a [u8] { + std::slice::from_raw_parts(self.inner.ptr, self.inner.len as usize) + } + + pub unsafe fn get_alt_bech32m_bytes<'a>(self) -> &'a [u8] { + std::slice::from_raw_parts(self.alt_bech32m.ptr, self.alt_bech32m.len as usize) + } +} diff --git a/app/rust/src/parser/amount.rs b/app/rust/src/parser/amount.rs new file mode 100644 index 0000000..e4c41a1 --- /dev/null +++ b/app/rust/src/parser/amount.rs @@ -0,0 +1,71 @@ +use crate::{utils::varint, FromBytes, ParserError}; + +use core::ptr::addr_of_mut; +use std::mem::MaybeUninit; + +// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +// of the 128-bit value, respectively. Clients must assemble these bits in their +// implementation into a `uint128` or comparable data structure, in order to model +// the Amount accurately. +// message Amount { +// uint64 lo = 1; +// uint64 hi = 2; +// } + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Amount { + pub lo: u64, + pub hi: u64, +} + +impl Amount { + pub fn new(lo: u64, hi: u64) -> Self { + Self { lo, hi } + } +} + +impl<'b> FromBytes<'b> for Amount { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let out = out.as_mut_ptr(); + let (rem, lo) = varint(input)?; + let (rem, hi) = varint(rem)?; + + unsafe { + addr_of_mut!((*out).lo).write(lo); + addr_of_mut!((*out).hi).write(hi); + } + + Ok(rem) + } +} +#[cfg(test)] +mod tests { + use super::*; + use crate::std::vec::Vec; + use crate::utils::encode_varint; + + #[test] + fn test_amount_from_bytes() { + // Example encoded data for Amount, adjust as per your actual encoded data + let lo = 123456789; // Example low-order value + let hi = 987654321; // Example high-order value + + let encoded_lo = encode_varint(lo); + let encoded_hi = encode_varint(hi); + let mut encoded_data = Vec::new(); + encoded_data.extend(encoded_lo); + encoded_data.extend(encoded_hi); + + let (rem, amount) = Amount::from_bytes(&encoded_data).unwrap(); + + assert!(rem.is_empty()); + + assert_eq!(amount.lo, lo); + assert_eq!(amount.hi, hi); + } +} diff --git a/app/rust/src/parser/asset_id.rs b/app/rust/src/parser/asset_id.rs new file mode 100644 index 0000000..0ca7bb3 --- /dev/null +++ b/app/rust/src/parser/asset_id.rs @@ -0,0 +1,87 @@ +use arrayref::array_ref; +use core::ptr::addr_of_mut; +use nom::bytes::complete::take; +use std::mem::MaybeUninit; + +use crate::{utils::varint, FromBytes, ParserError}; + +// proto: +// message AssetId { +// // The bytes of the asset ID. +// bytes inner = 1; +// +// // Alternatively, a Bech32m-encoded string representation of the `inner` +// // bytes. +// // +// // NOTE: implementations are not required to support parsing this field. +// // Implementations should prefer to encode the `inner` bytes in all messages they +// // produce. Implementations must not accept messages with both `inner` and +// // `alt_bech32m` set. This field exists for convenience of RPC users. +// string alt_bech32m = 2; +// +// // Alternatively, a base denomination string which should be hashed to obtain the asset ID. +// // +// // NOTE: implementations are not required to support parsing this field. +// // Implementations should prefer to encode the bytes in all messages they +// // produce. Implementations must not accept messages with both `inner` and +// // `alt_base_denom` set. This field exists for convenience of RPC users. +// string alt_base_denom = 3; +// } + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct AssetId<'a>(pub &'a [u8; AssetId::ID_LEN]); + +impl<'a> AssetId<'a> { + const ID_LEN: usize = 32; +} + +impl<'b> FromBytes<'b> for AssetId<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (input, _) = varint(input)?; // Parse field number and wire type for `inner` + let (input, len) = varint(input)?; // Parse length of `inner` + + if len as usize != AssetId::ID_LEN { + return Err(ParserError::ValueOutOfRange.into()); + } + + let (input, inner_bytes) = take(AssetId::ID_LEN)(input)?; + let id_bytes = array_ref![inner_bytes, 0, 32]; + + unsafe { + addr_of_mut!((*out).0).write(id_bytes); + } + + Ok(input) + } +} + +#[cfg(test)] +mod tests { + use std::println; + + use crate::utils::encode_bytes; + + use super::*; + + #[test] + fn test_asset_id_from_bytes() { + // Convert the hex string to bytes + let hex_str = "62650ae5c5777d1660cc17fcd4f48f6a66b9a4c2afcd48f6ecaff55adef0beef"; + let asset_id_bytes = hex::decode(hex_str).expect("Invalid hex string"); + + let encoded_data = encode_bytes(&asset_id_bytes); + println!("asset_encoded: {:?}", encoded_data); + + let (rem, id) = AssetId::from_bytes(&encoded_data).unwrap(); + + assert!(rem.is_empty()); + + assert_eq!(&id.0[..], asset_id_bytes.as_slice()); + } +} diff --git a/app/rust/src/parser/bytes.rs b/app/rust/src/parser/bytes.rs new file mode 100644 index 0000000..1c13024 --- /dev/null +++ b/app/rust/src/parser/bytes.rs @@ -0,0 +1,63 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +#[cfg(any(feature = "derive-debug", test))] +use core::fmt; + +#[repr(C)] +#[derive(Clone, PartialEq)] +pub struct BytesC { + pub ptr: *const u8, + pub len: u16, +} + +#[cfg(any(feature = "derive-debug", test))] +impl fmt::Debug for BytesC { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + f.debug_struct("BytesC") + .field("ptr", &self.ptr) + .field("len", &self.len) + .finish() + } +} + +impl BytesC { + pub fn get_bytes(&self) -> Option<&[u8]> { + if self.ptr.is_null() || self.len == 0 { + None + } else { + unsafe { Some(std::slice::from_raw_parts(self.ptr, self.len as usize)) } + } + } +} + +impl Default for BytesC { + fn default() -> Self { + BytesC { + ptr: std::ptr::null(), + len: 0, + } + } +} + +impl BytesC { + pub fn from_slice(slice: &[u8]) -> Self { + BytesC { + ptr: slice.as_ptr(), + len: slice.len() as u16, + } + } +} diff --git a/app/rust/src/parser/clue_plan.rs b/app/rust/src/parser/clue_plan.rs new file mode 100644 index 0000000..c8783ee --- /dev/null +++ b/app/rust/src/parser/clue_plan.rs @@ -0,0 +1,67 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use core::ptr::addr_of_mut; + +use crate::{ + utils::{read_fixed_bytes, varint}, + FromBytes, +}; + +use crate::parser::{address::AddressC, bytes::BytesC}; + +use super::{Address, Precision}; + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, Clone)] +pub struct CluePlan<'a> { + pub address: Address<'a>, + pub rseed: &'a [u8; 32], + pub precision: Precision, +} + +impl<'a> FromBytes<'a> for CluePlan<'a> { + fn from_bytes_into( + input: &'a [u8], + out: &mut core::mem::MaybeUninit, + ) -> Result<&'a [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let addr = unsafe { &mut *addr_of_mut!((*out).address).cast() }; + let rem = Address::from_bytes_into(input, addr)?; + + let (rem, rseed) = read_fixed_bytes::<32>(rem)?; + + let (rem, precision) = varint(rem)?; + + let precision = Precision::try_from(precision)?; + + unsafe { + addr_of_mut!((*out).rseed).write(rseed); + addr_of_mut!((*out).precision).write(precision); + } + + Ok(rem) + } +} + +#[repr(C)] +#[derive(Clone, Default)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct CluePlanC { + pub address: AddressC, + pub rseed: BytesC, + pub precision_bits: u64, +} diff --git a/app/rust/src/parser/curve_fields.rs b/app/rust/src/parser/curve_fields.rs new file mode 100644 index 0000000..e544c67 --- /dev/null +++ b/app/rust/src/parser/curve_fields.rs @@ -0,0 +1,75 @@ +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use arrayref::array_ref; +use nom::bytes::complete::take; + +use crate::{utils::varint, FromBytes, ParserError}; + +// TODO: This types would be wrappers around Fq and Fr types provided by the penumbra team +// who aims to come up with a no_std/no_alloc compatible decaf377-rdsa library. +// similar definition: +// pub type Fr = Fp256>; where Fp is BigInt, N=4 +// so total is 256 bits -> 32-bytes +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Fr<'a>(pub &'a [u8; 32]); + +// TODO: confirm they are the same +pub type Fq<'a> = Fr<'a>; + +impl<'b> FromBytes<'b> for Fr<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (input, _) = varint(input)?; // Parse field number and wire type + let (input, len) = varint(input)?; // Parse length + + if len as usize != 32 { + return Err(ParserError::InvalidLength.into()); + } + + let (input, bytes) = take(len as usize)(input)?; + let bytes_ref = array_ref![bytes, 0, 32]; + + unsafe { + addr_of_mut!((*out).0).write(bytes_ref); + } + + Ok(input) + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_from_bytes_valid_input() { + let input = [ + 0x0A, 0x20, // Prepended bytes: field number + wire type, and length + 0x01, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, + ]; + let mut out = MaybeUninit::::uninit(); + + Fr::from_bytes_into(&input, &mut out).unwrap(); + } + + #[test] + fn test_from_bytes_invalid_length() { + let input = [ + 0x01, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, + ]; + let mut out = MaybeUninit::::uninit(); + + let result = Fr::from_bytes_into(&input, &mut out); + + assert!(result.is_err()); + } +} diff --git a/app/rust/src/parser/error.rs b/app/rust/src/parser/error.rs new file mode 100644 index 0000000..349beb8 --- /dev/null +++ b/app/rust/src/parser/error.rs @@ -0,0 +1,98 @@ +use arrayvec::CapacityError; +use nom::error::ErrorKind; + +#[repr(u32)] +#[derive(Copy, Clone, PartialEq, Eq, Debug)] +// #[cfg_attr(test, derive(Debug))] +pub enum ParserError { + Ok = 0, + // Generic errors + NoData, + DisplayIdxOutOfRange, + DisplayPageOutOfRange, + UnexpectedError, + // Required fields + // Coin specific + InvalidHashMode, + InvalidSignature, + InvalidPubkeyEncoding, + InvalidAddressVersion, + InvalidAddressLength, + InvalidTypeId, + InvalidCodec, + InvalidThreshold, + InvalidNetworkId, + InvalidChainId, + InvalidAsciiValue, + InvalidTimestamp, + InvalidStakingAmount, + UnexpectedType, + InvalidTransactionType, + OperationOverflows, + UnexpectedBufferEnd, + UnexpectedNumberItems, + UnexpectedField, + ValueOutOfRange, + InvalidAddress, + InvalidPath, + InvalidLength, + TooManyOutputs, + UnexpectedData, + InvalidClueKey, + InvalidTxKey, + InvalidFq, + InvalidDetectionKey, + InvalidFvk, + InvalidIvk, + InvalidKeyLen, + InvalidActionType, + InvalidPrecision, + PrecisionTooLarge, + ClueCreationFailed, +} + +impl From for ParserError { + fn from(err: ErrorKind) -> Self { + match err { + ErrorKind::Eof => ParserError::UnexpectedBufferEnd, + ErrorKind::Permutation => ParserError::UnexpectedType, + ErrorKind::TooLarge => ParserError::ValueOutOfRange, + ErrorKind::Tag => ParserError::InvalidTypeId, + _ => ParserError::UnexpectedError, + } + } +} + +impl nom::error::ParseError for ParserError { + fn from_error_kind(_input: I, kind: ErrorKind) -> Self { + Self::from(kind) + } + + // We don't have enough memory resources to use here an array with the last + // N errors to be used as a backtrace, so that, we just propagate here the latest + // reported error + fn append(_input: I, _kind: ErrorKind, other: Self) -> Self { + other + } +} +impl From for nom::Err { + fn from(error: ParserError) -> Self { + nom::Err::Error(error) + } +} + +impl From for ParserError { + fn from(_error: CapacityError) -> Self { + ParserError::UnexpectedBufferEnd + } +} + +impl From> for ParserError { + fn from(e: nom::Err) -> Self { + match e { + nom::Err::Error(e) => e, + nom::Err::Failure(e) => e, + nom::Err::Incomplete(_) => Self::UnexpectedBufferEnd, + } + } +} diff --git a/app/rust/src/parser/fee.rs b/app/rust/src/parser/fee.rs new file mode 100644 index 0000000..b6a7dc4 --- /dev/null +++ b/app/rust/src/parser/fee.rs @@ -0,0 +1,57 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use crate::{FromBytes, ParserError}; + +use super::{Amount, AssetId}; + +/// Specifies fees paid by a transaction. +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Fee<'a> { + // The amount of the token used to pay fees. + amount: Amount, + // If present, the asset ID of the token used to pay fees. + // If absent, specifies the staking token implicitly. + asset_id: Option>, +} + +impl<'a> Fee<'a> { + pub fn new(amount: Amount, asset_id: Option>) -> Self { + Self { amount, asset_id } + } +} + +impl<'b> FromBytes<'b> for Fee<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + // Amount + let out = out.as_mut_ptr(); + let amount = unsafe { &mut *addr_of_mut!((*out).amount).cast() }; + let rem = Amount::from_bytes_into(input, amount)?; + + // Asset ID + // remember it is an optional field + let asset = unsafe { &mut *addr_of_mut!((*out).asset_id).cast() }; + let rem = AssetId::from_bytes_into(rem, asset)?; + + Ok(rem) + } +} diff --git a/app/rust/src/parser/note.rs b/app/rust/src/parser/note.rs new file mode 100644 index 0000000..aa2d0db --- /dev/null +++ b/app/rust/src/parser/note.rs @@ -0,0 +1,56 @@ +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use arrayref::array_ref; +use nom::bytes::complete::take; + +use crate::{utils::varint, FromBytes, ParserError}; + +use super::{Address, Fq, Value}; + +// proto: +// message Note { +// asset.v1alpha1.Value value = 1; +// bytes rseed = 2; +// keys.v1alpha1.Address address = 3; +// } + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Note<'a> { + value: Value<'a>, + rseed: &'a [u8; 32], + address: Address<'a>, + transmission_key_s: Fq<'a>, +} + +impl<'b> FromBytes<'b> for Note<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let output = out.as_mut_ptr(); + + // Parse the `Value` + let value = unsafe { &mut *addr_of_mut!((*output).value).cast() }; + let input = Value::from_bytes_into(input, value)?; + + // Parse `rseed` as a 32-byte array + let (input, _) = varint(input)?; + let (input, rseed) = take(32usize)(input)?; + let rseed_ref = array_ref![rseed, 0, 32]; + + // Parse `Address` + let address = unsafe { &mut *addr_of_mut!((*output).address).cast() }; + let input = Address::from_bytes_into(input, address)?; + + // Parse `transmission_key_s` (Fq type) + let transmission_key_s = unsafe { &mut *addr_of_mut!((*output).transmission_key_s).cast() }; + let input = Fq::from_bytes_into(input, transmission_key_s)?; + + unsafe { + addr_of_mut!((*output).rseed).write(rseed_ref); + } + + Ok(input) + } +} diff --git a/app/rust/src/parser/object_list.rs b/app/rust/src/parser/object_list.rs new file mode 100644 index 0000000..636a0a9 --- /dev/null +++ b/app/rust/src/parser/object_list.rs @@ -0,0 +1,283 @@ +/******************************************************************************* +* (c) 2021 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use core::{marker::PhantomData, mem::MaybeUninit, ptr::addr_of_mut}; +use educe::Educe; +use nom::{bytes::complete::take, number::complete::be_u32}; + +use crate::parser::{FromBytes, ParserError}; +use crate::utils::ApduPanic; + +#[derive(Educe)] +#[cfg_attr(test, educe(Debug))] +#[educe(Clone, Copy, PartialEq, Eq)] +/// Represents an object list +/// +/// The number of objects is prepended as a BE u32 to the objects bytes +pub struct ObjectList<'b, Obj> { + data: &'b [u8], + // counter used to track the amount of bytes + // that were read when parsing a inner element in the list + #[educe(PartialEq(ignore))] + read: usize, + // type of object that the ObjectList contains + #[cfg_attr(test, educe(Debug(ignore)))] + #[educe(PartialEq(ignore))] + _phantom: PhantomData, +} + +impl<'b, Obj> ObjectList<'b, Obj> +where + Obj: FromBytes<'b>, +{ + #[cfg(test)] + pub fn new(input: &'b [u8]) -> Result<(&'b [u8], Self), nom::Err> { + let mut list = MaybeUninit::uninit(); + let rem = ObjectList::new_into(input, &mut list)?; + let list = unsafe { list.assume_init() }; + Ok((rem, list)) + } + + /// Attempt to parse the provided input as an [`ObjectList`] of the given `Obj` type. + /// The number of elements in the list should be provided. This is useful in cases + /// where the number of elements has an arbitrary type or is not part of the input + /// buffer. + /// + /// Will fail if the input bytes are not properly encoded for the list or if any of the objects inside fail to parse. + /// This also means accessing any inner objects shouldn't fail to parse + #[inline(never)] + pub fn new_into_with_len( + input: &'b [u8], + out: &mut MaybeUninit, + num_objs: usize, + ) -> Result<&'b [u8], nom::Err> { + let mut len = input.len(); + let mut bytes_left = input; + let mut object = MaybeUninit::uninit(); + + // we are not saving parsed data but ensuring everything + // parsed correctly. + for _ in 0..num_objs { + bytes_left = Obj::from_bytes_into(bytes_left, &mut object)?; + } + + // this calculates the length in bytes of the list of objects + // using the amount of bytes left after iterating over each parsed element. + // This does not include the bytes + // used to read the number of such objects as we already skip them + len -= bytes_left.len(); + + let (rem, data) = take(len)(input)?; + + //good ptr and no uninit reads + let out = out.as_mut_ptr(); + unsafe { + addr_of_mut!((*out).read).write(0); + addr_of_mut!((*out).data).write(data); + } + + Ok(rem) + } + + #[inline(never)] + /// Attempt to parse the provided input as an [`ObjectList`] of the given `Obj` type. + /// This method would read the number of objects as a u32 from the input buffer. + /// + /// Will fail if the input bytes are not properly encoded for the list or if any of the objects inside fail to parse. + /// This also means accessing any inner objects shouldn't fail to parse + pub fn new_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + if input.is_empty() { + return Err(ParserError::UnexpectedBufferEnd.into()); + } + + let (rem, num_objects) = be_u32(input)?; + + Self::new_into_with_len(rem, out, num_objects as _) + } + + #[inline(never)] + /// Parses an object into the given location, returning the amount of bytes read. + /// + /// If no bytes could be read (for example, end of list), then None is returned. + /// + /// # Note + /// Does not move the internal cursor forward, useful for peeking + fn parse_into(&self, out: &mut MaybeUninit) -> Option { + let data = &self.data[self.read..]; + if data.is_empty() { + return None; + } + + //ok to panic as we parsed beforehand + let rem = Obj::from_bytes_into(data, out).apdu_unwrap(); + + Some(self.data.len() - rem.len()) + } + + /// Parses an object into the given location. + /// + /// If no bytes could be read, then None is returned. + pub fn parse_next(&mut self, out: &mut MaybeUninit) -> Option<()> { + match self.parse_into(out) { + Some(read) => { + self.read = read; + Some(()) + } + None => None, + } + } + + /// Looks for the first object in the list that meets + /// the condition defined by the closure `f`. + /// + /// it is like iter().filter(), but memory efficient. + /// `None` is returned if no object meets that condition + /// + /// This function does not change the internal state. + pub fn get_obj_if(&self, mut f: F) -> Option + where + F: FnMut(&Obj) -> bool, + { + let mut out = MaybeUninit::uninit(); + // lets clone and start from the begining + let mut this = *self; + unsafe { + this.set_data_index(0); + } + while let Some(()) = this.parse_next(&mut out) { + let obj_ptr = out.as_mut_ptr(); + // valid read as memory was initialized + if f(unsafe { &*obj_ptr }) { + return Some(unsafe { out.assume_init() }); + } + // drop the object, this is safe + // as user does not longer hold a reference + // to this object. + unsafe { + obj_ptr.drop_in_place(); + } + } + None + } + + /// Iterates and calls `f` passing each object + /// in the list. This is intended to reduce stack by reusing the same + /// memory. The closure F gives the user the option to compute + /// any require data from each item. + /// + /// This function does not change the internal state. + pub fn iterate_with(&self, mut f: F) + where + F: FnMut(&Obj), + { + let mut out = MaybeUninit::uninit(); + // lets clone and start from the begining + let mut this = *self; + unsafe { + this.set_data_index(0); + } + while let Some(()) = this.parse_next(&mut out) { + let obj_ptr = out.as_mut_ptr(); + unsafe { + // valid read as memory was initialized + f(&*obj_ptr); + // drop the object, this is safe + // as user does not longer hold a reference + // to obj. + obj_ptr.drop_in_place(); + } + } + } + + /// Parses an object into the given location, without moving forward the internal cursor. + /// + /// See also [`ObjList::parse_next`]. + pub fn peek_next(&mut self, out: &mut MaybeUninit) -> Option<()> { + self.parse_into(out).map(|_| ()) + } + + /// Returns the internal cursor position + pub fn data_index(&self) -> usize { + self.read + } + + /// Overwrite the internal cursor position + /// + /// Intended to be used as a way to reset the cursor, see below. + /// + /// # Safety + /// Setting `read` to a position that is inside an object will render + /// further reading impossible. + /// + /// If you start to panic when parsing object incorrect usage + /// of this method is most likely the cause + pub unsafe fn set_data_index(&mut self, read: usize) { + self.read = read; + } +} + +impl<'b, Obj> ObjectList<'b, Obj> +where + Obj: FromBytes<'b> + 'b, +{ + /// Creates an [`ObjectListIterator`] for object out of the given object list + pub fn iter(&self) -> impl Iterator + 'b { + ObjectListIterator::new(self) + } +} + +struct ObjectListIterator<'b, Obj: FromBytes<'b>> { + list: ObjectList<'b, Obj>, +} + +impl<'b, Obj> ObjectListIterator<'b, Obj> +where + Obj: FromBytes<'b>, +{ + /// Creates a new [`ObjectListIterator`] by copying the given list + /// + /// Iteration will always start from the beginning as the internal cursor + /// of the copied list is reset + fn new(list: &ObjectList<'b, Obj>) -> Self { + // we do not want to change the state + // of the passed in list, as a result, we just + // make a copy, so we can reset the read index, + // so iteration always starts from the beginning + let mut list = *list; + unsafe { + // this is safe as we do have not used the current index + // and setting it at the start of the list is always safe + list.set_data_index(0); + } + Self { list } + } +} + +impl<'b, Obj> Iterator for ObjectListIterator<'b, Obj> +where + Obj: FromBytes<'b>, +{ + type Item = Obj; + + fn next(&mut self) -> Option { + let mut output = MaybeUninit::uninit(); + self.list + .parse_next(&mut output) + .map(|_| unsafe { output.assume_init() }) + } +} diff --git a/app/rust/src/parser/plans.rs b/app/rust/src/parser/plans.rs new file mode 100644 index 0000000..5da6a01 --- /dev/null +++ b/app/rust/src/parser/plans.rs @@ -0,0 +1,245 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use self::{ + action::ActionC, action::ActionPlan, detection::DetectionDataPlan, + detection::DetectionDataPlanC, memo::MemoPlanC, +}; + +use super::{ObjectList, TransactionParameters}; + +pub mod action; +pub mod detection; +pub mod memo; +pub mod memo_plain_text; +pub mod spend; +pub mod symmetric; + +use super::tx_parameters::TransactionParametersC; +use crate::constants::ACTION_DATA_QTY; +use crate::ParserError; + +// The TransactionPlan contains a declarative description of all details of +// the proposed transaction, including a plan of each action in a transparent form, +// the fee specified, the chain ID, and so on. +// +// The signing process first takes a TransactionPlan and SpendKey and +// returns the AuthorizationData, essentially a bundle of signatures over the effect hash, which +// can be computed directly from the plan data +// Describes a planned transaction. Permits clients to prepare a transaction prior submission, so that a user can review it prior to authorizing its execution. +// The TransactionPlan is a fully determined bundle binding all of a transaction's effects. The only thing it does not include is the witness data used for proving. +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct TransactionPlan<'a> { + action_plans: ObjectList<'a, ActionPlan<'a>>, + transaction_parameters: TransactionParameters<'a>, + detection_data: DetectionDataPlan<'a>, + //memo: MemoPlan<'a>, +} + +// impl<'a> FromBytes<'a> for TransactionPlan<'a> { +// fn from_bytes_into( +// input: &'a [u8], +// out: &mut core::mem::MaybeUninit, +// ) -> Result<&'a [u8], nom::Err> { +// let out = out.as_mut_ptr(); + +// // Actions +// let (rem, num_actions) = varint(input)?; +// let action: &mut MaybeUninit>> = +// unsafe { &mut *addr_of_mut!((*out).action_plans).cast() }; +// let rem = ObjectList::new_into_with_len(rem, action, num_actions as _)?; + +// // Transaction parameters +// let parameters = unsafe { &mut *addr_of_mut!((*out).transaction_parameters).cast() }; +// let rem = TransactionParameters::from_bytes_into(rem, parameters)?; + +// // detection data +// let detection = unsafe { &mut *addr_of_mut!((*out).detection_data).cast() }; +// let rem = DetectionDataPlan::from_bytes_into(rem, detection)?; + +// // Memo +// let memo = unsafe { &mut *addr_of_mut!((*out).memo).cast() }; +// let rem = MemoPlan::from_bytes_into(rem, memo)?; + +// Ok(rem) +// } +// } + +#[repr(C)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct TransactionPlanC { + pub actions: [ActionC; ACTION_DATA_QTY], + pub transaction_parameters: TransactionParametersC, + pub memo: MemoPlanC, + pub detection_data: DetectionDataPlanC, +} + +#[no_mangle] +/// Use to compute an address and write it back into output +/// argument. +pub unsafe extern "C" fn rs_compute_effect_hash() -> u32 { + crate::zlog("rs_compute_effect_hash\x00"); + + ParserError::Ok as u32 +} + +#[no_mangle] +/// Use to compute an address and write it back into output +/// argument. +pub unsafe extern "C" fn rs_compute_transaction_plan( + plan: &TransactionPlanC, + output: *mut u8, + output_len: usize, +) -> u32 { + crate::zlog("rs_compute_transaction_plan\x00"); + let output = std::slice::from_raw_parts_mut(output, output_len); + + if output.len() < 200 { + return ParserError::Ok as u32; + } + + let transaction_parameters_hash = plan.transaction_parameters.effect_hash(); + if let Ok(transaction_parameters_hash_bytes) = transaction_parameters_hash { + let transaction_parameters_hash_array = transaction_parameters_hash_bytes.as_array(); + let copy_len: usize = core::cmp::min(output.len(), transaction_parameters_hash_array.len()); + output[..copy_len].copy_from_slice(&transaction_parameters_hash_array[..copy_len]); + } + + if let Ok(memo_hash_bytes) = plan.memo.effect_hash() { + let memo_hash_array = memo_hash_bytes.as_array(); + let copy_len: usize = core::cmp::min(output.len() - 64, memo_hash_array.len()); + output[68..68 + copy_len].copy_from_slice(&memo_hash_array[..copy_len]); + } + + let detection_hash = plan.detection_data.effect_hash(); + if let Ok(detection_hash_bytes) = detection_hash { + let detection_hash_array = detection_hash_bytes.as_array(); + let copy_len: usize = core::cmp::min(output.len() - 136, detection_hash_array.len()); + output[136..136 + copy_len].copy_from_slice(&detection_hash_array[..copy_len]); + } + + ParserError::Ok as u32 +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::parser::address::AddressC; + use crate::parser::bytes::BytesC; + use crate::parser::clue_plan::CluePlanC; + use crate::parser::plans::action::ActionC; + use crate::parser::plans::detection::DetectionDataPlanC; + use crate::parser::plans::memo::MemoPlanC; + use crate::parser::plans::memo_plain_text::MemoPlaintextC; + use crate::parser::tx_parameters::TransactionParametersC; + #[test] + fn test_transaction_plan_hash() { + // Create dummy ActionC + let dummy_action = ActionC { + action_type: 0, // Assuming 0 is a valid action type + bytes: BytesC::from_slice(&[0u8; 32]), + }; + + // Create dummy TransactionParametersC + let transaction_parameters_bytes = + hex::decode("120d70656e756d6272612d746573741a020a00").unwrap(); + let dummy_transaction_parameters = TransactionParametersC { + bytes: BytesC::from_slice(&transaction_parameters_bytes), + }; + + // Create dummy MemoPlanC + let memo_key_bytes = + hex::decode("18bd5cedd0eb952244a296c1e3fba4f417ebdcc1cfec04cb9441a394316a58bd") + .unwrap(); + let memo_plaintext_inner_bytes = hex::decode("6ece16f387e0b932082cb0cf6823590fc287d068d6f684a36d1fb19bfd6dce8b22850f535824aeb66cb8c41309e6f5b2d58ff7b651ef4e09a09c7e48d770d190880e1827b47823a1d01f0c4b438a7b43").unwrap(); + let dummy_memo_plan = MemoPlanC { + plaintext: MemoPlaintextC { + return_address: AddressC { + inner: BytesC::from_slice(&memo_plaintext_inner_bytes), + alt_bech32m: BytesC::default(), + }, + text: BytesC::default(), + }, + key: BytesC::from_slice(&memo_key_bytes), + }; + + // Create dummy DetectionDataPlanC + let address_inner = hex::decode("e0783360338067fc2ba548f460b3f06f33d3e756ebefa8a8c08c5e12a1e667df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891d69").unwrap(); + let rseed1 = + hex::decode("361218d216cfe90f77f54f045ff21b464795517c05057c595fd59e4958e39417") + .unwrap(); + let clue_plan_1 = CluePlanC { + address: AddressC { + inner: BytesC::from_slice(&address_inner), + alt_bech32m: BytesC::default(), + }, + rseed: BytesC::from_slice(&rseed1), + precision_bits: 3, + }; + + let rseed2 = + hex::decode("13296da8c9dfdf969be7c7bd74e67e80977cd91635eb32038619f62c732dc46a") + .unwrap(); + let clue_plan_2 = CluePlanC { + address: AddressC { + inner: BytesC::from_slice(&address_inner), + alt_bech32m: BytesC::default(), + }, + rseed: BytesC::from_slice(&rseed2), + precision_bits: 2, + }; + + let mut dummy_detection_data = DetectionDataPlanC::default(); + dummy_detection_data.clue_plans[0] = clue_plan_1; + dummy_detection_data.clue_plans[1] = clue_plan_2; + + // Create TransactionPlanC with dummy data + let transaction_plan = TransactionPlanC { + actions: core::array::from_fn(|_| dummy_action.clone()), + transaction_parameters: dummy_transaction_parameters, + memo: dummy_memo_plan, + detection_data: dummy_detection_data, + }; + + let transaction_parameters_effect_hash = + transaction_plan.transaction_parameters.effect_hash(); + let expected_hash = "e2b552c4c11e0bc5df75f22945c39d2c5acb6c38582716a1dd7d87e1cfa4043b9c32b350d927a9ae39f18b45b25f638947fa82e405a3c6ca7ea91248f9fa5ab7"; + if let Ok(transaction_parameters_hash_bytes) = transaction_parameters_effect_hash { + let computed_hash = hex::encode(transaction_parameters_hash_bytes.as_array()); + assert_eq!(computed_hash, expected_hash); + } else { + panic!("transaction_parameters_effect_hash is not Ok"); + } + + let memo_effect_hash = transaction_plan.memo.effect_hash(); + let expected_hash = "0954149b3feec5d414a22d47ce4e69f895f52431db9fdf7adf0bb5325c2520540357b206b5a04ec8685aea0e69a93a679fcb5c220cff85ebecc3d65c6d82b4d1"; + if let Ok(memo_hash_bytes) = memo_effect_hash { + let computed_hash = hex::encode(memo_hash_bytes.as_array()); + assert_eq!(computed_hash, expected_hash); + } else { + panic!("memo_effect_hash is not Ok"); + } + + let detection_effect_hash = transaction_plan.detection_data.effect_hash(); + let expected_hash = "9870b8430ea82c79e2efee478446ae45c83dce05f4b892c24295c0593e759357e1f2109f0456038858bf8084811e49712b39d4127c1911ffd816bc225071c909"; + if let Ok(detection_hash_bytes) = detection_effect_hash { + let computed_hash = hex::encode(detection_hash_bytes.as_array()); + assert_eq!(computed_hash, expected_hash); + } else { + panic!("detection_effect_hash is not Ok"); + } + } +} diff --git a/app/rust/src/parser/plans/action.rs b/app/rust/src/parser/plans/action.rs new file mode 100644 index 0000000..a96c545 --- /dev/null +++ b/app/rust/src/parser/plans/action.rs @@ -0,0 +1,93 @@ +use core::ptr::addr_of_mut; + +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use crate::{FromBytes, ParserError}; + +use super::spend::SpendPlan; +use crate::parser::bytes::BytesC; + +#[derive(Clone, Copy, PartialEq, Eq)] +#[repr(u8)] +pub enum ActionType { + Spend = 0, +} + +impl TryFrom for ActionType { + type Error = ParserError; + fn try_from(value: u64) -> Result { + match value { + 0 => Ok(Self::Spend), + _ => Err(ParserError::InvalidActionType), + } + } +} + +#[repr(C)] +struct SpendVariant<'a>(ActionType, SpendPlan<'a>); + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub enum ActionPlan<'a> { + Spend(SpendPlan<'a>), +} + +impl<'a> FromBytes<'a> for ActionPlan<'a> { + fn from_bytes_into( + input: &'a [u8], + out: &mut core::mem::MaybeUninit, + ) -> Result<&'a [u8], nom::Err> { + // 1. Read the action plan type + let (rem, action_type) = (input, 0); // TODO! read from input + + match action_type { + 0 => { + // Spend variant + let out = out.as_mut_ptr() as *mut SpendVariant<'a>; + let data = unsafe { &mut *addr_of_mut!((*out).1).cast() }; + let rem = SpendPlan::from_bytes_into(rem, data)?; + unsafe { + addr_of_mut!((*out).0).write(ActionType::Spend); + } + Ok(rem) + } + _ => Err(ParserError::InvalidActionType.into()), + } + } +} + +impl<'a> ActionPlan<'a> { + pub fn action(&self) -> ActionType { + match self { + Self::Spend(_) => ActionType::Spend, + } + } + + pub fn spend_plan(&self) -> Option<&SpendPlan<'a>> { + match self { + Self::Spend(info) => Some(info), + } + } +} + +#[repr(C)] +#[derive(Clone)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct ActionC { + pub action_type: u8, + pub bytes: BytesC, +} + diff --git a/app/rust/src/parser/plans/detection.rs b/app/rust/src/parser/plans/detection.rs new file mode 100644 index 0000000..e51261e --- /dev/null +++ b/app/rust/src/parser/plans/detection.rs @@ -0,0 +1,124 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use crate::address::Address; +use crate::constants::DETECTION_DATA_QTY; +use crate::effect_hash::{create_personalized_state, EffectHash}; +use crate::keys::clue_key::Clue; +use crate::parser::clue_plan::CluePlanC; +use crate::ParserError; +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use crate::{ + parser::{CluePlan, ObjectList}, + utils::varint, + FromBytes, +}; + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct DetectionDataPlan<'a>(ObjectList<'a, CluePlan<'a>>); + +impl<'a> FromBytes<'a> for DetectionDataPlan<'a> { + fn from_bytes_into( + input: &'a [u8], + out: &mut core::mem::MaybeUninit, + ) -> Result<&'a [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (rem, size) = varint(input)?; + + let detection: &mut MaybeUninit>> = + unsafe { &mut *addr_of_mut!((*out).0).cast() }; + + let rem = ObjectList::new_into_with_len(rem, detection, size as usize)?; + + Ok(rem) + } +} + +pub struct DetectionData { + pub fmd_clues: [Clue; DETECTION_DATA_QTY], +} + +#[repr(C)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct DetectionDataPlanC { + pub clue_plans: [CluePlanC; DETECTION_DATA_QTY], +} + +impl Default for DetectionDataPlanC { + fn default() -> Self { + DetectionDataPlanC { + clue_plans: core::array::from_fn(|_| CluePlanC::default()), + } + } +} + +impl DetectionDataPlanC { + pub fn effect_hash(&self) -> Result { + if self.is_empty() { + return Ok(EffectHash::default()); + } + + let mut state = create_personalized_state("/penumbra.core.transaction.v1.DetectionData"); + let proto_header = [0x22, 0x46, 0x0a, 0x44]; + + for clue_plan in self.clue_plans.iter() { + if clue_plan.address.inner.ptr.is_null() || clue_plan.rseed.ptr.is_null() { + continue; + } + + let address_bytes = unsafe { + core::slice::from_raw_parts( + clue_plan.address.inner.ptr, + clue_plan.address.inner.len as usize, + ) + }; + + let address = + Address::try_from(address_bytes).map_err(|_| ParserError::InvalidAddress)?; + let mut expanded_clue_key = address.clue_key().expand_infallible(); + + let rseed_array = unsafe { + let rseed_slice = core::slice::from_raw_parts(clue_plan.rseed.ptr, 32); + let mut array = [0u8; 32]; + array.copy_from_slice(rseed_slice); + array + }; + + let precision_bits = clue_plan.precision_bits as u8; + let clue = expanded_clue_key + .create_clue_deterministic(precision_bits, rseed_array) + .map_err(|_| ParserError::ClueCreationFailed)?; + + state.update(&proto_header); + unsafe { + let clue_bytes = core::slice::from_raw_parts(clue.0.as_ptr(), 68); + state.update(clue_bytes); + } + } + + let hash = state.finalize(); + Ok(EffectHash(*hash.as_array())) + } + + pub fn is_empty(&self) -> bool { + self.clue_plans + .iter() + .all(|clue_plan| clue_plan.address.inner.ptr.is_null() || clue_plan.rseed.ptr.is_null()) + } +} diff --git a/app/rust/src/parser/plans/memo.rs b/app/rust/src/parser/plans/memo.rs new file mode 100644 index 0000000..6660eea --- /dev/null +++ b/app/rust/src/parser/plans/memo.rs @@ -0,0 +1,112 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use super::memo_plain_text::MemoPlaintextC; +use super::symmetric::{PayloadKey, PayloadKind}; +use crate::constants::{MEMO_CIPHERTEXT_LEN_BYTES, MEMO_LEN_BYTES}; +use crate::ParserError; +use crate::{effect_hash::create_personalized_state, parser::bytes::BytesC, EffectHash}; + +#[repr(C)] +#[derive(Default)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct MemoPlanC { + pub plaintext: MemoPlaintextC, + pub key: BytesC, +} + +impl MemoPlanC { + pub fn effect_hash(&self) -> Result { + if self.is_empty() { + return Ok(EffectHash::default()); + } + + MemoCiphertext::encrypt(&self.key, &self.plaintext) + .map(|ciphertext| ciphertext.effect_hash().finalize()) + .map(|hash| EffectHash::from_array(*hash.as_array())) + } + + pub fn is_empty(&self) -> bool { + self.plaintext.return_address.inner.len == 0 + && self.plaintext.return_address.alt_bech32m.len == 0 + && self.plaintext.text.len == 0 + && self.key.len == 0 + } +} + +pub struct MemoCiphertext(pub [u8; MEMO_CIPHERTEXT_LEN_BYTES]); + +impl MemoCiphertext { + /// Encrypt a memo, returning its ciphertext. + pub fn encrypt(memo_key: &BytesC, memo: &MemoPlaintextC) -> Result { + let mut ciphertext = [0u8; MEMO_CIPHERTEXT_LEN_BYTES]; + + // Get memo plaintext bytes + let memo_bytes = memo + .get_memo_plaintext_bytes() + .ok_or(ParserError::UnexpectedError)?; + + if memo_bytes.len() > MEMO_LEN_BYTES { + return Err(ParserError::InvalidLength); + } + + // Copy memo bytes to ciphertext buffer + ciphertext[..memo_bytes.len()].copy_from_slice(memo_bytes); + + // Get memo key bytes + let memo_key_bytes = memo_key.get_bytes().ok_or(ParserError::UnexpectedError)?; + + // Create PayloadKey and encrypt + let key = PayloadKey::from_bytes(memo_key_bytes); + key.encrypt(&mut ciphertext, PayloadKind::Memo) + .map_err(|_| ParserError::UnexpectedError)?; + + Ok(MemoCiphertext(ciphertext)) + } + + pub fn effect_hash(&self) -> blake2b_simd::State { + let mut state = create_personalized_state("/penumbra.core.transaction.v1.MemoCiphertext"); + + // Encode the length of bytes like protobuf encoding with tag = 1 + let len = MEMO_CIPHERTEXT_LEN_BYTES; + // Max size needed for u64 varint + 1 byte tag + let mut tag_and_len = [0u8; 11]; + tag_and_len[0] = 0x0A; // Tag + let varint_len = Self::encode_varint(len as u64, &mut tag_and_len[1..]); + + state.update(&tag_and_len[..varint_len + 1]); + state.update(&self.0); + state + } + + // TODO: move this to a common place + fn encode_varint(mut value: u64, output: &mut [u8]) -> usize { + let mut i = 0; + loop { + let mut byte = (value & 0x7F) as u8; + value >>= 7; + if value != 0 { + byte |= 0x80; + } + output[i] = byte; + i += 1; + if value == 0 { + break; + } + } + i + } +} diff --git a/app/rust/src/parser/plans/memo_plain_text.rs b/app/rust/src/parser/plans/memo_plain_text.rs new file mode 100644 index 0000000..0dce328 --- /dev/null +++ b/app/rust/src/parser/plans/memo_plain_text.rs @@ -0,0 +1,46 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use crate::constants::{MAX_TEXT_LEN, MEMO_LEN_BYTES}; +use crate::parser::{address::AddressC, bytes::BytesC}; + +#[repr(C)] +#[derive(Clone, PartialEq, Default)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct MemoPlaintextC { + pub return_address: AddressC, + pub text: BytesC, +} + +impl MemoPlaintextC { + pub fn get_memo_plaintext_bytes(&self) -> Option<&[u8]> { + let return_address_len = self.return_address.inner.len as usize; + let alt_bech32m_len = self.return_address.alt_bech32m.len as usize; + let text_len = self.text.len as usize; + let total_len = return_address_len + alt_bech32m_len + text_len; + + if total_len > MEMO_LEN_BYTES || text_len > MAX_TEXT_LEN { + return None; + } + + unsafe { + Some(std::slice::from_raw_parts( + self.return_address.inner.ptr, + total_len, + )) + } + } +} diff --git a/app/rust/src/parser/plans/spend.rs b/app/rust/src/parser/plans/spend.rs new file mode 100644 index 0000000..60d8ea6 --- /dev/null +++ b/app/rust/src/parser/plans/spend.rs @@ -0,0 +1,67 @@ +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use crate::{ + parser::{Fq, Fr, Note, Position}, + FromBytes, ParserError, +}; +// proto: +// message SpendPlan { +// // The plaintext note we plan to spend. +// Note note = 1; +// // The position of the note we plan to spend. +// uint64 position = 2; +// // The randomizer to use for the spend. +// bytes randomizer = 3; +// // The blinding factor to use for the value commitment. +// bytes value_blinding = 4; +// // The first blinding factor to use for the ZK spend proof. +// bytes proof_blinding_r = 5; +// // The second blinding factor to use for the ZK spend proof. +// bytes proof_blinding_s = 6; +// } +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct SpendPlan<'a> { + pub note: Note<'a>, + pub position: Position, + pub randomizer: Fr<'a>, + pub value_blinding: Fr<'a>, + pub proof_blinding_r: Fq<'a>, + pub proof_blinding_s: Fq<'a>, +} + +impl<'b> FromBytes<'b> for SpendPlan<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let output = out.as_mut_ptr(); + + // Parsing each field sequentially + // Parse `note` + let note = unsafe { &mut *addr_of_mut!((*output).note).cast() }; + let input = Note::from_bytes_into(input, note)?; + + // Parse `position` + let position = unsafe { &mut *addr_of_mut!((*output).position).cast() }; + let input = Position::from_bytes_into(input, position)?; + + // Parse `randomizer` + let randomizer = unsafe { &mut *addr_of_mut!((*output).randomizer).cast() }; + let input = Fr::from_bytes_into(input, randomizer)?; + + // Parse `value_blinding` + let value = unsafe { &mut *addr_of_mut!((*output).value_blinding).cast() }; + let input = Fr::from_bytes_into(input, value)?; + + // Parse `proof_blinding_r` + let proof = unsafe { &mut *addr_of_mut!((*output).proof_blinding_r).cast() }; + let input = Fq::from_bytes_into(input, proof)?; + + // Parse `proof_blinding_s` + let proof = unsafe { &mut *addr_of_mut!((*output).proof_blinding_s).cast() }; + let input = Fq::from_bytes_into(input, proof)?; + + Ok(input) + } +} diff --git a/app/rust/src/parser/plans/symmetric.rs b/app/rust/src/parser/plans/symmetric.rs new file mode 100644 index 0000000..78a9892 --- /dev/null +++ b/app/rust/src/parser/plans/symmetric.rs @@ -0,0 +1,88 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use crate::constants::{NONCE_LEN, NONCE_MEMO, NONCE_MEMO_KEYS, NONCE_NOTE, NONCE_SWAP}; +use crate::ParserError; +use chacha20poly1305::aead::{AeadInPlace, Nonce}; +use chacha20poly1305::{ChaCha20Poly1305, Key, KeyInit}; + +use rand::{CryptoRng, RngCore}; + +pub const PAYLOAD_KEY_LEN_BYTES: usize = 32; +pub const OVK_WRAPPED_LEN_BYTES: usize = 48; +pub const MEMOKEY_WRAPPED_LEN_BYTES: usize = 48; + +/// Represents the item to be encrypted/decrypted with the [`PayloadKey`]. +#[derive(Copy, Clone, PartialEq, Eq)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub enum PayloadKind { + /// Note is action-scoped. + Note, + /// MemoKey is action-scoped. + MemoKey, + /// Memo is transaction-scoped. + Memo, + /// Swap is action-scoped. + Swap, +} + +impl PayloadKind { + pub(crate) fn nonce(&self) -> [u8; NONCE_LEN] { + match self { + Self::Note => *NONCE_NOTE, + Self::MemoKey => *NONCE_MEMO_KEYS, + Self::Swap => *NONCE_SWAP, + Self::Memo => *NONCE_MEMO, + } + } +} + +/// Represents a symmetric `ChaCha20Poly1305` key. +/// +/// Used for encrypting and decrypting notes, swaps, memos, and memo keys. +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub struct PayloadKey(Key); + +impl PayloadKey { + pub fn from_bytes(bytes: &[u8]) -> Self { + assert_eq!(bytes.len(), PAYLOAD_KEY_LEN_BYTES, "Invalid key length"); + Self(*Key::from_slice(bytes)) + } + + /// Derive a random `PayloadKey`. Used for memo key wrapping. + pub fn random_key(rng: &mut R) -> Self { + let mut key_bytes = [0u8; 32]; + rng.fill_bytes(&mut key_bytes); + Self(*Key::from_slice(&key_bytes[..])) + } + + // Encrypt a note, memo, or memo key using the `PayloadKey`. + pub fn encrypt(&self, plaintext: &mut [u8], kind: PayloadKind) -> Result<(), ParserError> { + let cipher = ChaCha20Poly1305::new(Key::from_slice(&self.0)); + let nonce_bytes = kind.nonce(); + let nonce = Nonce::::from_slice(&nonce_bytes); + + let plaintext_len = plaintext.len(); + let tag = cipher + .encrypt_in_place_detached(nonce, b"", &mut plaintext[..512]) + .map_err(|_| ParserError::UnexpectedError)?; + + plaintext[plaintext_len - 16..].copy_from_slice(&tag); + + Ok(()) + } +} + diff --git a/app/rust/src/parser/position.rs b/app/rust/src/parser/position.rs new file mode 100644 index 0000000..59cb211 --- /dev/null +++ b/app/rust/src/parser/position.rs @@ -0,0 +1,48 @@ +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use crate::{utils::varint, FromBytes, ParserError}; + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Tree { + pub epoch: u16, + pub block: u16, + pub commitment: u16, +} + +impl From for Tree { + fn from(position: u64) -> Self { + let epoch = (position >> 32) as u16; + let block = (position >> 16) as u16; + let commitment = position as u16; + Self { + epoch, + block, + commitment, + } + } +} + +// proto: +// uint64 position = 2; +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Position(pub Tree); + +impl<'b> FromBytes<'b> for Position { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let out = out.as_mut_ptr(); + let (input, position) = varint(input)?; + + let tree = Tree::from(position); + + unsafe { + addr_of_mut!((*out).0).write(tree); + } + + Ok(input) + } +} diff --git a/app/rust/src/parser/precision.rs b/app/rust/src/parser/precision.rs new file mode 100644 index 0000000..db86020 --- /dev/null +++ b/app/rust/src/parser/precision.rs @@ -0,0 +1,81 @@ +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +use crate::{constants::MAX_PRECISION, ParserError}; + +/// Represents the precision governing the false positive rate of detection. +/// +/// This is usually measured in bits, where a precision of `n` bits yields false +/// positives with a rate of `2^-n`. +/// +/// This type implements `TryFrom` for `u8`, `u32`, `u64`, and `i32`, which has the behavior of considering +/// the value as a number of bits, and converting if this number isn't too large. +#[derive(Clone, Copy, PartialEq, Eq, Default)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct Precision(u8); + +impl Precision { + pub const MAX: Precision = Precision(MAX_PRECISION); + + pub fn new(precision_bits: u8) -> Result { + if precision_bits > MAX_PRECISION { + return Err(ParserError::PrecisionTooLarge); + } + Ok(Self(precision_bits)) + } + + pub fn bits(&self) -> u8 { + self.0 + } +} + +impl TryFrom for Precision { + type Error = ParserError; + + fn try_from(value: u8) -> Result { + Self::new(value) + } +} + +impl TryFrom for Precision { + type Error = ParserError; + + fn try_from(value: u32) -> Result { + u8::try_from(value) + .map_err(|_| ParserError::PrecisionTooLarge)? + .try_into() + } +} + +impl TryFrom for Precision { + type Error = ParserError; + + fn try_from(value: u64) -> Result { + u8::try_from(value) + .map_err(|_| ParserError::PrecisionTooLarge)? + .try_into() + } +} + +impl TryFrom for Precision { + type Error = ParserError; + + fn try_from(value: i32) -> Result { + u8::try_from(value) + .map_err(|_| ParserError::PrecisionTooLarge)? + .try_into() + } +} diff --git a/app/rust/src/parser/tx_parameters.rs b/app/rust/src/parser/tx_parameters.rs new file mode 100644 index 0000000..8cce246 --- /dev/null +++ b/app/rust/src/parser/tx_parameters.rs @@ -0,0 +1,86 @@ +use core::ptr::addr_of_mut; + +/******************************************************************************* +* (c) 2024 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ +use crate::{ + effect_hash::{create_personalized_state, EffectHash}, + utils::{read_string, varint}, + FromBytes, ParserError, +}; + +use super::bytes::BytesC; +use super::Fee; + +/// The parameters determining if a transaction should be accepted by the chain. +#[derive(Copy, PartialEq, Eq, Clone)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct TransactionParameters<'a> { + expiry_height: u64, + chain_id: &'a str, + fee: Fee<'a>, + bytes: &'a [u8], +} + +#[repr(C)] +#[derive(Clone)] +#[cfg_attr(any(feature = "derive-debug", test), derive(Debug))] +pub struct TransactionParametersC { + pub bytes: BytesC, +} + +impl<'a> TransactionParameters<'a> { + pub fn new(expiry_height: u64, chain_id: &'a str, fee: Fee<'a>, bytes: &'a [u8]) -> Self { + Self { + expiry_height, + chain_id, + fee, + bytes, + } + } +} + +impl<'a> FromBytes<'a> for TransactionParameters<'a> { + fn from_bytes_into( + input: &'a [u8], + out: &mut core::mem::MaybeUninit, + ) -> Result<&'a [u8], nom::Err> { + let out = out.as_mut_ptr(); + + let (rem, expiry_height) = varint(input)?; + let (rem, chain_id) = read_string(rem)?; + + let fee = unsafe { &mut *addr_of_mut!((*out).fee).cast() }; + let rem = Fee::from_bytes_into(rem, fee)?; + + unsafe { + addr_of_mut!((*out).expiry_height).write(expiry_height); + addr_of_mut!((*out).chain_id).write(chain_id); + } + + Ok(rem) + } +} + +impl TransactionParametersC { + pub fn effect_hash(&self) -> Result { + let mut state = + create_personalized_state("/penumbra.core.transaction.v1.TransactionParameters"); + let bytes = unsafe { core::slice::from_raw_parts(self.bytes.ptr, self.bytes.len as usize) }; + state.update(bytes); + let hash = state.finalize(); + Ok(EffectHash(*hash.as_array())) + } +} diff --git a/app/rust/src/parser/value.rs b/app/rust/src/parser/value.rs new file mode 100644 index 0000000..541e684 --- /dev/null +++ b/app/rust/src/parser/value.rs @@ -0,0 +1,73 @@ +use core::{mem::MaybeUninit, ptr::addr_of_mut}; + +use crate::{FromBytes, ParserError}; + +use super::{Amount, AssetId}; + +// proto: +// message Value { +// core.num.v1alpha1.Amount amount = 1; +// AssetId asset_id = 2; +// } + +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct Value<'a> { + amount: Amount, + asset_id: AssetId<'a>, +} + +impl<'b> FromBytes<'b> for Value<'b> { + fn from_bytes_into( + input: &'b [u8], + out: &mut MaybeUninit, + ) -> Result<&'b [u8], nom::Err> { + let output = out.as_mut_ptr(); + // First, parse the `Amount` + let amount = unsafe { &mut *addr_of_mut!((*output).amount).cast() }; + let input = Amount::from_bytes_into(input, amount)?; + + // Then, parse the `AssetId` + let asset_id = unsafe { &mut *addr_of_mut!((*output).asset_id).cast() }; + let input = AssetId::<'b>::from_bytes_into(input, asset_id)?; + + Ok(input) + } +} + +#[cfg(test)] +mod tests { + + use super::*; + + use std::vec::Vec; + + #[test] + fn test_value_from_bytes() { + let asset_encoded = [ + 10, 32, 98, 101, 10, 229, 197, 119, 125, 22, 96, 204, 23, 252, 212, 244, 143, 106, 102, + 185, 164, 194, 175, 205, 72, 246, 236, 175, 245, 90, 222, 240, 190, 239, + ]; + + let amount_encoded = [149, 154, 239, 58, 177, 209, 249, 214, 3]; + let hex_str = "62650ae5c5777d1660cc17fcd4f48f6a66b9a4c2afcd48f6ecaff55adef0beef"; + let asset_id_bytes = hex::decode(hex_str).expect("Invalid hex string"); + + let mut encoded_data = Vec::new(); + encoded_data.extend(amount_encoded); + encoded_data.extend(asset_encoded); + + let (rem, value) = Value::from_bytes(&encoded_data).unwrap(); + + assert!(rem.is_empty()); + + // Check values + let lo = 123456789; + let hi = 987654321; + + assert_eq!(value.amount.lo, lo); + assert_eq!(value.amount.hi, hi); + + assert_eq!(&value.asset_id.0[..], asset_id_bytes.as_slice()); + } +} diff --git a/app/rust/src/utils.rs b/app/rust/src/utils.rs new file mode 100644 index 0000000..a8fb30d --- /dev/null +++ b/app/rust/src/utils.rs @@ -0,0 +1,129 @@ +mod apdu_unwrap; +mod big_int; +pub mod prf; +use crate::ParserError; +pub use apdu_unwrap::*; +// pub use big_int::BigInt; +#[cfg(test)] +use std::vec::Vec; + +pub fn varint(input: &[u8]) -> Result<(&[u8], u64), ParserError> { + let mut value = 0u64; + let mut shift = 0u32; + + for (i, &byte) in input.iter().enumerate() { + let byte_val = byte as u64; + value |= (byte_val & 0x7F) << shift; + if byte_val & 0x80 == 0 { + return Ok((&input[i + 1..], value)); + } + shift += 7; + if shift >= 70 { + // Varints are a maximum of 10 bytes in length, and 70 bits in shift + break; + } + } + + Err(nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::Eof, + )) + .into()) +} + +pub fn read_string(input: &[u8]) -> Result<(&[u8], &str), ParserError> { + // First, read the length of the string using varint + let (remaining, length) = varint(input)?; + + // Check if we have enough bytes for the string + if remaining.len() < length as usize { + return Err(nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::Eof, + )) + .into()); + } + + // Split the input at the string boundary + let (string_bytes, rest) = remaining.split_at(length as usize); + + // Attempt to convert bytes to str + match core::str::from_utf8(string_bytes) { + Ok(s) => Ok((rest, s)), + Err(_) => Err(nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::Char, + )) + .into()), + } +} + +pub fn read_bytes(input: &[u8]) -> Result<(&[u8], &[u8]), ParserError> { + // First, read the length of the bytes using varint + let (remaining, length) = varint(input)?; + + // Check if we have enough bytes + if remaining.len() < length as usize { + return Err(nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::Eof, + )) + .into()); + } + + // Split the input at the bytes boundary + let (bytes, rest) = remaining.split_at(length as usize); + + Ok((rest, bytes)) +} + +pub fn read_fixed_bytes<'a, const SIZE: usize>( + input: &'a [u8], +) -> Result<(&'a [u8], &'a [u8; SIZE]), ParserError> { + let (rest, bytes) = read_bytes(input)?; + + // Check if we have enough bytes + if bytes.len() != SIZE { + return Err(nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::Eof, + )) + .into()); + } + + // Convert the bytes slice to a fixed-size array + let bytes: &'a [u8; SIZE] = bytes.try_into().map_err(|_| { + nom::Err::Error(nom::error::ParseError::from_error_kind( + input, + nom::error::ErrorKind::LengthValue, + )) + })?; + + Ok((rest, bytes)) +} + +#[cfg(test)] +// Helper function to encode a u64 value as a varint +pub fn encode_varint(value: u64) -> Vec { + let mut buffer = Vec::new(); + let mut temp = value; + while temp >= 0x80 { + buffer.push((temp as u8) | 0x80); + temp >>= 7; + } + buffer.push(temp as u8); + buffer +} + +#[cfg(test)] +pub fn encode_bytes>(input: B) -> Vec { + let input = input.as_ref(); + // Encode as Protobuf (field number 1, type 2 for bytes, length) + let mut encoded_data = Vec::new(); + encoded_data.extend_from_slice(&[0x0A]); // field number 1, wire type 2 + let len = encode_varint(input.len() as _); + encoded_data.extend_from_slice(len.as_slice()); // length of the bytes field + encoded_data.extend_from_slice(input); + + encoded_data +} diff --git a/app/rust/src/utils/apdu_unwrap.rs b/app/rust/src/utils/apdu_unwrap.rs new file mode 100644 index 0000000..1f02745 --- /dev/null +++ b/app/rust/src/utils/apdu_unwrap.rs @@ -0,0 +1,63 @@ +/******************************************************************************* +* (c) 2021 Zondax GmbH +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +pub trait ApduPanic: Sized { + type Item; + + fn apdu_unwrap(self) -> Self::Item; + + fn apdu_expect(self, s: &str) -> Self::Item; +} + +impl ApduPanic for Result { + type Item = T; + + #[inline] + fn apdu_unwrap(self) -> Self::Item { + match self { + Ok(t) => t, + Err(_) => panic!(), + } + } + + #[inline] + fn apdu_expect(self, _: &str) -> Self::Item { + match self { + Ok(t) => t, + Err(_) => panic!(), + } + } +} + +impl ApduPanic for Option { + type Item = T; + + #[inline] + fn apdu_unwrap(self) -> Self::Item { + match self { + Some(t) => t, + None => panic!(), + } + } + + #[inline] + fn apdu_expect(self, _: &str) -> Self::Item { + match self { + Some(t) => t, + None => panic!(), + } + } +} diff --git a/app/rust/src/utils/big_int.rs b/app/rust/src/utils/big_int.rs new file mode 100644 index 0000000..f390e2b --- /dev/null +++ b/app/rust/src/utils/big_int.rs @@ -0,0 +1,5 @@ +// TODO: decaf377 define Fq and Fr as [u64; N] +// we adjust this to u32 assuming penumbra team will come up with this alternative +#[cfg_attr(test, derive(Debug))] +#[derive(Copy, PartialEq, Eq, Clone)] +pub struct BigInt(pub [u32; N]); diff --git a/app/rust/src/utils/prf.rs b/app/rust/src/utils/prf.rs new file mode 100644 index 0000000..a97eb10 --- /dev/null +++ b/app/rust/src/utils/prf.rs @@ -0,0 +1,78 @@ +use crate::ParserError; + +pub fn expand(label: &'static [u8; 16], key: &[u8], input: &[u8]) -> Result<[u8; 64], ParserError> { + if key.len() > blake2b_simd::KEYBYTES { + return Err(ParserError::InvalidKeyLen); + } + let mut params = blake2b_simd::Params::new(); + let mut params = params.personal(label); + + // Add keys only if not empty + // used for computation of detection key + if !key.is_empty() { + params = params.key(key); + } + + let mut output = [0u8; 64]; + let hash = params.hash(input); + + output.copy_from_slice(hash.as_bytes()); + + Ok(output) +} + +pub mod expand_fp { + use super::*; + use decaf377::Fp; + + // pub fn expand_ff(label: &'static [u8; 16], key: &[u8], input: &[u8]) -> F { + // F::from_le_bytes_mod_order(expand(label, key, input).as_bytes()) + // } + pub fn expand_ff( + label: &'static [u8; 16], + key: &[u8], + input: &[u8], + ) -> Result { + Ok(Fp::from_le_bytes_mod_order( + expand(label, key, input)?.as_ref(), + )) + } +} + +pub mod expand_fq { + use decaf377::Fq; + + use super::*; + + // pub fn expand_ff(label: &'static [u8; 16], key: &[u8], input: &[u8]) -> F { + // F::from_le_bytes_mod_order(expand(label, key, input).as_bytes()) + // } + pub fn expand_ff( + label: &'static [u8; 16], + key: &[u8], + input: &[u8], + ) -> Result { + Ok(Fq::from_le_bytes_mod_order( + expand(label, key, input)?.as_ref(), + )) + } +} + +pub mod expand_fr { + use decaf377::Fr; + + use super::*; + + // pub fn expand_ff(label: &'static [u8; 16], key: &[u8], input: &[u8]) -> F { + // F::from_le_bytes_mod_order(expand(label, key, input).as_bytes()) + // } + pub fn expand_ff( + label: &'static [u8; 16], + key: &[u8], + input: &[u8], + ) -> Result { + Ok(Fr::from_le_bytes_mod_order( + expand(label, key, input)?.as_ref(), + )) + } +} diff --git a/app/rust/src/wallet_id.rs b/app/rust/src/wallet_id.rs new file mode 100644 index 0000000..e44085a --- /dev/null +++ b/app/rust/src/wallet_id.rs @@ -0,0 +1,3 @@ +/// The hash of a full viewing key, used as an account identifier. +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +pub struct WalletId(pub [u8; 32]); diff --git a/app/script_s2.ld b/app/script_s2.ld new file mode 100644 index 0000000..db3150b --- /dev/null +++ b/app/script_s2.ld @@ -0,0 +1,170 @@ +/******************************************************************************* +* Ledger Blue - Secure firmware +* (c) 2016, 2017, 2018, 2019 Ledger +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +/** + * Global chip memory layout and constants + * + */ + +MEMORY +{ + DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M + + FLASH (rx) : ORIGIN = 0xc0de0000, LENGTH = 400K + DATA (r) : ORIGIN = 0xc0de0000, LENGTH = 400K + SRAM (rwx) : ORIGIN = 0xda7a0000, LENGTH = 30K +} + +PAGE_SIZE = 512; +STACK_SIZE = 8192; +END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); + +ENTRY(main); + +SECTIONS +{ + /****************************************************************/ + /* This section locates the code in FLASH */ + /****************************************************************/ + + /** put text in Flash memory, VMA will be equal to LMA */ + .text : + { + /* provide start code symbol, shall be zero */ + _text = .; + _nvram_start = .; + + /* ensure main is always @ 0xC0D00000 */ + *(.boot*) + + /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ + *(.text*) + *(.rodata) + *(.rodata.[^N]*) /*.data.rel.ro* not here to detect invalid PIC usage */ + *(.rodata.N[^_]*) + + . = ALIGN(4); + + /* all code placed */ + _etext = .; + + . = ALIGN(PAGE_SIZE); + + _nvram_data = .; + + /* NVM data (ex-filesystem) */ + *(.bss.N_* .rodata.N_*) + + . = ALIGN(PAGE_SIZE); + _envram_data = .; + + _install_parameters = .; + _nvram_end = .; + } > FLASH = 0x00 + + .data (NOLOAD): + { + . = ALIGN(4); + + /** + * Place RAM initialized variables + */ + _data = .; + + *(vtable) + *(.data*) + + _edata = .; + + } > DISCARD /*> SRAM AT>FLASH = 0x00 */ + + .bss : + { + /** + * Place RAM uninitialized variables + */ + _bss = .; + *(.bss*) + _ebss = .; + + + /** + * Reserve stack size + */ + . = ALIGN(4); + app_stack_canary = .; + PROVIDE(app_stack_canary = .); + . += 4; + _stack_validation = .; + . = _stack_validation + STACK_SIZE; + _stack = ABSOLUTE(END_STACK) - STACK_SIZE; + PROVIDE( _stack = ABSOLUTE(END_STACK) - STACK_SIZE); + _estack = ABSOLUTE(END_STACK); + PROVIDE( _estack = ABSOLUTE(END_STACK) ); + + } > SRAM = 0x00 + + /****************************************************************/ + /* DEBUG */ + /****************************************************************/ + + /* remove the debugging information from the standard libraries */ + DEBUG (NOLOAD) : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > DISCARD + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} + +PROVIDE(_nvram = ABSOLUTE(_nvram_start)); +PROVIDE(_envram = ABSOLUTE(_nvram_end)); \ No newline at end of file diff --git a/app/script_x.ld b/app/script_x.ld new file mode 100644 index 0000000..0d174c4 --- /dev/null +++ b/app/script_x.ld @@ -0,0 +1,175 @@ +/******************************************************************************* +* Ledger Blue - Secure firmware +* (c) 2016, 2017, 2018, 2019 Ledger +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +/** + * Global chip memory layout and constants + * + */ + +MEMORY +{ + DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M + + FLASH (rx) : ORIGIN = 0xc0de0000, LENGTH = 400K + DATA (r) : ORIGIN = 0xc0de0000, LENGTH = 400K + SRAM (rwx) : ORIGIN = 0xda7a0000, LENGTH = 30K +} + +PAGE_SIZE = 256; +STACK_SIZE = 8192; +END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); + +ENTRY(main) + +SECTIONS +{ + + /****************************************************************/ + /* This section locates the code in FLASH */ + /****************************************************************/ + + /** put text in Flash memory, VMA will be equal to LMA */ + .text : + { + /* provide start code symbol, shall be zero */ + _text = .; + _nvram = .; + PROVIDE(_nvram = . + ORIGIN(FLASH)); + + PROVIDE(_setjmp = setjmp); /*thanks clang*/ + + /* ensure main is always @ 0xC0D00000 */ + *(.boot*) + + /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ + *(.text*) + *(.rodata) + *(.rodata.[^N]*) /*.data.rel.ro* not here to detect invalid PIC usage */ + *(.rodata.N[^_]*) + + . = ALIGN(4); + + /* all code placed */ + _etext = .; + + . = ALIGN(PAGE_SIZE); + + _nvram_data = .; + + /* NVM data (ex-filesystem) */ + *(.bss.N_* .rodata.N_*) + + . = ALIGN(PAGE_SIZE); + _envram_data = .; + /* _nvram_data_size = _envram_data - _nvram_data; */ + _install_parameters = .; + PROVIDE(N_install_parameters = .); + _envram = .; + PROVIDE(_envram = . + ORIGIN(FLASH)); + + } > FLASH = 0x00 + + .data (NOLOAD): + { + . = ALIGN(4); + + /** + * Place RAM initialized variables + */ + _data = .; + + *(vtable) + *(.data*) + + _edata = .; + + } > DISCARD /*> SRAM AT>FLASH = 0x00 */ + + .bss : + { + /** + * Place RAM uninitialized variables + */ + _bss = .; + *(.bss*) + _ebss = .; + + + /** + * Reserve stack size + */ + . = ALIGN(4); + app_stack_canary = .; + PROVIDE(app_stack_canary = .); + . += 4; + _stack_validation = .; + . = _stack_validation + STACK_SIZE; + _stack = ABSOLUTE(END_STACK) - STACK_SIZE; + PROVIDE( _stack = ABSOLUTE(END_STACK) - STACK_SIZE); + _estack = ABSOLUTE(END_STACK); + PROVIDE( _estack = ABSOLUTE(END_STACK) ); + + } > SRAM = 0x00 + + /****************************************************************/ + /* DEBUG */ + /****************************************************************/ + + /* remove the debugging information from the standard libraries */ + DEBUG (NOLOAD) : + { + libc.a ( * ) + libm.a ( * ) + libgcc.a ( * ) + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > DISCARD + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + +} diff --git a/app/src/addr.c b/app/src/addr.c new file mode 100644 index 0000000..c23120f --- /dev/null +++ b/app/src/addr.c @@ -0,0 +1,104 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include + +#include "app_mode.h" +#include "coin.h" +#include "crypto.h" +#include "keys_def.h" +#include "parser_common.h" +#include "rslib.h" +#include "segwit_addr.h" +#include "zxerror.h" +#include "zxformat.h" +#include "zxmacros.h" + +bool is_randomized = false; + +#define BECH32_PREFIX "penumbra" + +#define FIXED_PREFIX BECH32_PREFIX "1" +#define ADDRESS_NUM_CHARS_SHORT_FORM 24 +#define NUM_CHARS_TO_DISPLAY 33 + +#define HRP_LENGTH (sizeof(FIXED_PREFIX) - 1) +#define RAW_ADDRESS_LENGTH 80 +#define CHECKSUM_LENGTH 8 +#define SEPARATOR_LENGTH 1 + +#define BECH32_BITS_PER_CHAR 5 +#define BITS_PER_BYTE 8 + +#define ENCODED_DATA_LENGTH \ + (((RAW_ADDRESS_LENGTH + CHECKSUM_LENGTH) * BITS_PER_BYTE + BECH32_BITS_PER_CHAR - 1) / BECH32_BITS_PER_CHAR) + +#define ENCODED_ADDR_LEN (HRP_LENGTH + SEPARATOR_LENGTH + ENCODED_DATA_LENGTH) + +#define ENCODED_ADDR_BUFFER_SIZE (ENCODED_ADDR_LEN + 2) + +zxerr_t addr_getNumItems(uint8_t *num_items) { + zemu_log_stack("addr_getNumItems"); + // address and is_randomized flag + *num_items = 2; + // in expert mode we show the path + if (app_mode_expert()) { + *num_items = 3; + } + return zxerr_ok; +} + +zxerr_t addr_getItem(int8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, + uint8_t *pageCount) { + ZEMU_LOGF(50, "[addr_getItem] %d/%d\n", displayIdx, pageIdx) + + char encoded_addr[ENCODED_ADDR_BUFFER_SIZE] = {'\0'}; + + switch (displayIdx) { + case 0: + snprintf(outKey, outKeyLen, "Address"); + + int32_t ret = rs_bech32_encode((const uint8_t *)BECH32_PREFIX, sizeof(BECH32_PREFIX) - 1, G_io_apdu_buffer, + ADDRESS_LEN_BYTES, (uint8_t *)encoded_addr, ENCODED_ADDR_BUFFER_SIZE); + + if (ret < 0) return zxerr_unknown; + + pageString(outVal, outValLen, encoded_addr, pageIdx, pageCount); + + return zxerr_ok; + case 1: { + snprintf(outKey, outKeyLen, "Randomized"); + const char *buffer = is_randomized ? "Yes" : "No"; + pageString(outVal, outValLen, buffer, pageIdx, pageCount); + + return zxerr_ok; + } + case 2: { + if (!app_mode_expert()) { + return zxerr_no_data; + } + + snprintf(outKey, outKeyLen, "Your Path"); + char buffer[300]; + bip32_to_str(buffer, sizeof(buffer), hdPath, HDPATH_LEN_DEFAULT); + pageString(outVal, outValLen, buffer, pageIdx, pageCount); + + return zxerr_ok; + } + default: + return zxerr_no_data; + } +} diff --git a/app/src/addr.h b/app/src/addr.h new file mode 100644 index 0000000..07705c0 --- /dev/null +++ b/app/src/addr.h @@ -0,0 +1,36 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "zxerror.h" + +extern bool is_randomized; + +// Return the number of items in the address view +zxerr_t addr_getNumItems(uint8_t *num_items); + +// Gets an specific item from the address view (including paging) +zxerr_t addr_getItem(int8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outValue, uint16_t outValueLen, + uint8_t pageIdx, uint8_t *pageCount); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c new file mode 100644 index 0000000..a68d39e --- /dev/null +++ b/app/src/apdu_handler.c @@ -0,0 +1,291 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * (c) 2016 Ledger + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include +#include +#include +#include + +#include "actions.h" +#include "addr.h" +#include "app_main.h" +#include "coin.h" +#include "crypto.h" +#include "parser_common.h" +#include "tx.h" +#include "view.h" +#include "view_internal.h" +#include "zxformat.h" +#include "zxmacros.h" + +static bool tx_initialized = false; + +void extractHDPath(uint32_t rx, uint32_t offset) { + tx_initialized = false; + + if ((rx - offset) < sizeof(uint32_t) * HDPATH_LEN_DEFAULT) { + THROW(APDU_CODE_WRONG_LENGTH); + } + memcpy(hdPath, G_io_apdu_buffer + offset, sizeof(uint32_t) * HDPATH_LEN_DEFAULT); + + // #{TODO} --> testnet necessary? + const bool mainnet = hdPath[0] == HDPATH_0_DEFAULT && hdPath[1] == HDPATH_1_DEFAULT; + + if (!mainnet) { + THROW(APDU_CODE_DATA_INVALID); + } +} + +__Z_INLINE bool process_chunk(__Z_UNUSED volatile uint32_t *tx, uint32_t rx) { + const uint8_t payloadType = G_io_apdu_buffer[OFFSET_PAYLOAD_TYPE]; + if (rx < OFFSET_DATA) { + THROW(APDU_CODE_WRONG_LENGTH); + } + uint32_t added; + switch (payloadType) { + case P1_INIT: + tx_initialize(); + tx_reset(); + extractHDPath(rx, OFFSET_DATA); + tx_initialized = true; + return false; + case P1_ADD: + if (!tx_initialized) { + THROW(APDU_CODE_TX_NOT_INITIALIZED); + } + added = tx_append(&(G_io_apdu_buffer[OFFSET_DATA]), rx - OFFSET_DATA); + if (added != rx - OFFSET_DATA) { + tx_initialized = false; + THROW(APDU_CODE_OUTPUT_BUFFER_TOO_SMALL); + } + return false; + case P1_LAST: + if (!tx_initialized) { + THROW(APDU_CODE_TX_NOT_INITIALIZED); + } + added = tx_append(&(G_io_apdu_buffer[OFFSET_DATA]), rx - OFFSET_DATA); + tx_initialized = false; + if (added != rx - OFFSET_DATA) { + tx_initialized = false; + THROW(APDU_CODE_OUTPUT_BUFFER_TOO_SMALL); + } + tx_initialized = false; + return true; + } + + THROW(APDU_CODE_INVALIDP1P2); +} + +__Z_INLINE void handleGetAddr(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { + zemu_log("handleGetAddr\n"); + + // TODO: Check size for nanos +#if defined(TARGET_NANOS) + *tx = 0; + THROW(APDU_CODE_DATA_INVALID); +#endif + + extractHDPath(rx, OFFSET_DATA); + + const uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1]; + + // go to the account + randomizer data + uint32_t account_offset = OFFSET_DATA + sizeof(uint32_t) * HDPATH_LEN_DEFAULT; + uint32_t rand_offset = account_offset + sizeof(uint32_t); + + uint32_t account = 0; + + // check for account data + if (rx < account_offset || (rx - account_offset) < sizeof(uint32_t)) { + THROW(APDU_CODE_WRONG_LENGTH); + } + + U32_BE(&G_io_apdu_buffer[account_offset], account); + + uint8_t *randomizer = NULL; + uint8_t rand_data[ADDR_RANDOMIZER_LEN] = {0}; + + // check if we received the randomizer, if so check also we received + // the expected amount of bytes for it. + if (rx > rand_offset && (rx - rand_offset) >= ADDR_RANDOMIZER_LEN) { + memcpy(rand_data, &G_io_apdu_buffer[rand_offset], ADDR_RANDOMIZER_LEN); + randomizer = &rand_data[0]; + } + + // TODO: I have to send 0 instead of account to get the same result as penumbra repo + zxerr_t zxerr = app_fill_address(0, randomizer); + + if (zxerr != zxerr_ok) { + *tx = 0; + THROW(APDU_CODE_DATA_INVALID); + } + + if (requireConfirmation) { + view_review_init(addr_getItem, addr_getNumItems, app_reply_address); + view_review_show(REVIEW_ADDRESS); + *flags |= IO_ASYNCH_REPLY; + return; + } + + *tx = cmdResponseLen; + THROW(APDU_CODE_OK); +} + +__Z_INLINE void handleGetFVK(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { + zemu_log("handleGetFVK\n"); + + // TODO: Check size for nanos +#if defined(TARGET_NANOS) + *tx = 0; + THROW(APDU_CODE_DATA_INVALID); +#endif + + extractHDPath(rx, OFFSET_DATA); + + zxerr_t zxerr = app_fill_keys(); + *tx = cmdResponseLen; + + if (zxerr != zxerr_ok) { + *tx = 0; + THROW(APDU_CODE_DATA_INVALID); + } + + THROW(APDU_CODE_OK); +} + +__Z_INLINE void handleSign(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { + zemu_log("handleSign\n"); + + if (!process_chunk(tx, rx)) { + THROW(APDU_CODE_OK); + } + + __Z_UNUSED const char *error_msg = tx_parse(); + CHECK_APP_CANARY() + // if (error_msg != NULL) { + // const int error_msg_length = strnlen(error_msg, sizeof(G_io_apdu_buffer)); + // memcpy(G_io_apdu_buffer, error_msg, error_msg_length); + // *tx += (error_msg_length); + // THROW(APDU_CODE_DATA_INVALID); + // } + + // view_review_init(tx_getItem, tx_getNumItems, app_sign); + // view_review_show(REVIEW_TXN); + // *flags |= IO_ASYNCH_REPLY; +} + +__Z_INLINE void handle_getversion(__Z_UNUSED volatile uint32_t *flags, volatile uint32_t *tx) { + G_io_apdu_buffer[0] = 0; + +#if defined(APP_TESTING) + G_io_apdu_buffer[0] = 0x01; +#endif + + G_io_apdu_buffer[1] = (LEDGER_MAJOR_VERSION >> 8) & 0xFF; + G_io_apdu_buffer[2] = (LEDGER_MAJOR_VERSION >> 0) & 0xFF; + + G_io_apdu_buffer[3] = (LEDGER_MINOR_VERSION >> 8) & 0xFF; + G_io_apdu_buffer[4] = (LEDGER_MINOR_VERSION >> 0) & 0xFF; + + G_io_apdu_buffer[5] = (LEDGER_PATCH_VERSION >> 8) & 0xFF; + G_io_apdu_buffer[6] = (LEDGER_PATCH_VERSION >> 0) & 0xFF; + + G_io_apdu_buffer[7] = !IS_UX_ALLOWED; + + G_io_apdu_buffer[8] = (TARGET_ID >> 24) & 0xFF; + G_io_apdu_buffer[9] = (TARGET_ID >> 16) & 0xFF; + G_io_apdu_buffer[10] = (TARGET_ID >> 8) & 0xFF; + G_io_apdu_buffer[11] = (TARGET_ID >> 0) & 0xFF; + + *tx += 12; + THROW(APDU_CODE_OK); +} + +#if defined(APP_TESTING) +void handleTest(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { THROW(APDU_CODE_OK); } +#endif + +void handleApdu(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { + zemu_log("handleApdu\n"); + volatile uint16_t sw = 0; + + BEGIN_TRY { + TRY { + if (G_io_apdu_buffer[OFFSET_CLA] != CLA) { + zemu_log("CLA not supported\n"); + THROW(APDU_CODE_CLA_NOT_SUPPORTED); + } + + if (rx < APDU_MIN_LENGTH) { + THROW(APDU_CODE_WRONG_LENGTH); + } + + switch (G_io_apdu_buffer[OFFSET_INS]) { + case INS_GET_VERSION: { + handle_getversion(flags, tx); + break; + } + + case INS_GET_ADDR: { + CHECK_PIN_VALIDATED() + handleGetAddr(flags, tx, rx); + break; + } + + case INS_GET_FVK: { + CHECK_PIN_VALIDATED() + handleGetFVK(flags, tx, rx); + break; + } + + case INS_SIGN: { + CHECK_PIN_VALIDATED() + handleSign(flags, tx, rx); + break; + } + +#if defined(APP_TESTING) + case INS_TEST: { + handleTest(flags, tx, rx); + THROW(APDU_CODE_OK); + break; + } +#endif + default: + zemu_log("ins_not_supported**\n"); + THROW(APDU_CODE_INS_NOT_SUPPORTED); + } + } + CATCH(EXCEPTION_IO_RESET) { THROW(EXCEPTION_IO_RESET); } + CATCH_OTHER(e) { + switch (e & 0xF000) { + case 0x6000: + case APDU_CODE_OK: + sw = e; + break; + default: + sw = 0x6800 | (e & 0x7FF); + break; + } + G_io_apdu_buffer[*tx] = sw >> 8; + G_io_apdu_buffer[*tx + 1] = sw & 0xFF; + *tx += 2; + } + FINALLY {} + } + END_TRY; +} diff --git a/app/src/c_api/rust.c b/app/src/c_api/rust.c new file mode 100644 index 0000000..a6a0f97 --- /dev/null +++ b/app/src/c_api/rust.c @@ -0,0 +1,26 @@ +#include +#include + +#include "crypto.h" +#include "zxmacros.h" + +zxerr_t crypto_extractSpendingKeyBytes(uint8_t *key_bytes, uint32_t key_bytes_len); + +// Function to compute BLAKE2b hash with personalization +zxerr_t blake2b_hash_with_personalization(const uint8_t *input, size_t input_len, uint8_t *output, size_t output_len, + const uint8_t *label, size_t label_len) { + cx_blake2b_t hash_context; + + // unsigned char *salt = NULL; + // unsigned int salt_len = 0; + + zxerr_t error = zxerr_invalid_crypto_settings; + + // no salt + CATCH_CXERROR(cx_blake2b_init2_no_throw(&hash_context, output_len * 8, NULL, 0, (uint8_t *)label, label_len)); + + CATCH_CXERROR(cx_hash_no_throw(&hash_context.header, CX_LAST, input, input_len, output, output_len)); + +catch_cx_error: + return error; +} diff --git a/app/src/coin.h b/app/src/coin.h new file mode 100644 index 0000000..e322744 --- /dev/null +++ b/app/src/coin.h @@ -0,0 +1,57 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +// #{TODO} ---> Replace CLA, Token symbol, HDPATH, etc etc +#define CLA 0x80 + +// according to penumbra docs: +// m/44'/6532'/x' +#define HDPATH_LEN_DEFAULT 3 +#define HDPATH_0_DEFAULT (0x80000000u | 0x2c) // 44 +#define HDPATH_1_DEFAULT (0x80000000u | 0x1984) // 6532 + +#define HDPATH_2_DEFAULT (0x80000000u | 0u) + +#define SECP256K1_PK_LEN 65u + +#define PK_LEN_25519 32u +#define SK_LEN_25519 64u + +#define COIN_AMOUNT_DECIMAL_PLACES 6 +#define COIN_TICKER "PEN" + +#define MENU_MAIN_APP_LINE1 "Penumbra" +#define MENU_MAIN_APP_LINE2 "Ready" +#define MENU_MAIN_APP_LINE2_SECRET "???" +#define APPVERSION_LINE1 "Penumbra" +#define APPVERSION_LINE2 "v" APPVERSION + +// Custom apdu instructions +#define INS_GET_FVK 0x03 + +typedef enum { + Address = 0, + Fvk, +} key_kind_e; + +#ifdef __cplusplus +} +#endif diff --git a/app/src/common/actions.c b/app/src/common/actions.c new file mode 100644 index 0000000..c475cf0 --- /dev/null +++ b/app/src/common/actions.c @@ -0,0 +1,19 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "actions.h" + +uint16_t cmdResponseLen; diff --git a/app/src/common/actions.h b/app/src/common/actions.h new file mode 100644 index 0000000..a3e7ba0 --- /dev/null +++ b/app/src/common/actions.h @@ -0,0 +1,97 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#include +#include + +#include "addr.h" +#include "apdu_codes.h" +#include "coin.h" +#include "crypto.h" +#include "tx.h" +#include "zxerror.h" + +extern uint16_t cmdResponseLen; + +__Z_INLINE zxerr_t app_fill_address(uint32_t account, uint8_t *randomizer) { + check_app_canary(); + // Put data directly in the apdu buffer + MEMZERO(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE); + + cmdResponseLen = 0; + + zxerr_t error = crypto_fillAddress(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 2, &cmdResponseLen, account, randomizer); + + if (error != zxerr_ok || cmdResponseLen == 0) { + THROW(APDU_CODE_EXECUTION_ERROR); + } + + // Set flag to show in case of requireConfirmation + // that the address is indeed being randomized + is_randomized = false; + if (randomizer != NULL) { + is_randomized = true; + } + + return error; +} + +__Z_INLINE zxerr_t app_fill_keys() { + // Put data directly in the apdu buffer + MEMZERO(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE); + + cmdResponseLen = 0; + + zxerr_t err = crypto_fillKeys(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 2, &cmdResponseLen); + + if (err != zxerr_ok || cmdResponseLen == 0) { + THROW(APDU_CODE_EXECUTION_ERROR); + } + + return zxerr_ok; +} + +__Z_INLINE void app_sign() { + const uint8_t *message = tx_get_buffer(); + const uint16_t messageLength = tx_get_buffer_length(); + + zxerr_t err = crypto_sign(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 3, message, messageLength); + + if (err != zxerr_ok) { + set_code(G_io_apdu_buffer, 0, APDU_CODE_SIGN_VERIFY_ERROR); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2); + } else { + set_code(G_io_apdu_buffer, SK_LEN_25519, APDU_CODE_OK); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, SK_LEN_25519 + 2); + } +} + +__Z_INLINE void app_reject() { + MEMZERO(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE); + set_code(G_io_apdu_buffer, 0, APDU_CODE_COMMAND_NOT_ALLOWED); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2); +} + +__Z_INLINE void app_reply_address() { + set_code(G_io_apdu_buffer, cmdResponseLen, APDU_CODE_OK); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, cmdResponseLen + 2); +} + +__Z_INLINE void app_reply_error() { + set_code(G_io_apdu_buffer, 0, APDU_CODE_DATA_INVALID); + io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2); +} diff --git a/app/src/common/main.c b/app/src/common/main.c new file mode 100644 index 0000000..901cb50 --- /dev/null +++ b/app/src/common/main.c @@ -0,0 +1,38 @@ +/******************************************************************************* + * (c) 2016 Ledger + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#include + +#include "app_main.h" +#include "view.h" + +__attribute__((section(".boot"))) int main(void) { + // exit critical section + __asm volatile("cpsie i"); + + view_init(); + os_boot(); + + BEGIN_TRY { + TRY { + app_init(); + app_main(); + } + CATCH_OTHER(e) {} + FINALLY {} + } + END_TRY; +} diff --git a/app/src/common/parser.h b/app/src/common/parser.h new file mode 100644 index 0000000..07b9012 --- /dev/null +++ b/app/src/common/parser.h @@ -0,0 +1,43 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "parser_impl.h" + +const char *parser_getErrorDescription(parser_error_t err); +const char *parser_getMsgPackTypeDescription(uint8_t type); + +//// parses a tx buffer +parser_error_t parser_parse(parser_context_t *ctx, const uint8_t *data, size_t dataLen, parser_tx_t *tx_obj); + +//// verifies tx fields +parser_error_t parser_validate(parser_context_t *ctx); + +//// returns the number of items in the current parsing context +parser_error_t parser_getNumItems(const parser_context_t *ctx, uint8_t *num_items); + +// retrieves a readable output for each field / page +parser_error_t parser_getItem(const parser_context_t *ctx, uint8_t displayIdx, char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/common/parser_common.h b/app/src/common/parser_common.h new file mode 100644 index 0000000..2f5ef53 --- /dev/null +++ b/app/src/common/parser_common.h @@ -0,0 +1,80 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include "parser_txdef.h" + +#define CHECK_ERROR(__CALL) \ + { \ + parser_error_t __err = __CALL; \ + CHECK_APP_CANARY() \ + if (__err != parser_ok) return __err; \ + } + + +// Convert bytes to uint32_t, +// assume data is in BE format +#define U32_BE(buffer, number) \ + do { \ + (number) = (uint32_t)((buffer)[0] << 24 | (buffer)[1] << 16 | (buffer)[2] << 8 | (buffer)[3]); \ + } while (0) + +typedef enum { + // Generic errors + parser_ok = 0, + parser_no_data, + parser_init_context_empty, + parser_display_idx_out_of_range, + parser_display_page_out_of_range, + parser_unexpected_error, + + // Coin generic + parser_unexpected_type, + parser_unexpected_method, + parser_unexpected_buffer_end, + parser_unexpected_value, + parser_unexpected_number_items, + parser_unexpected_version, + parser_unexpected_characters, + parser_unexpected_field, + parser_duplicated_field, + parser_value_out_of_range, + parser_invalid_address, + parser_unexpected_chain, + parser_missing_field, + paser_unknown_transaction, + parser_detection_data_overflow, + parser_actions_overflow, + parser_spend_plan_error, +} parser_error_t; + +typedef struct { + const uint8_t *buffer; + uint16_t bufferLen; + uint16_t offset; + parser_tx_t *tx_obj; +} parser_context_t; + +#ifdef __cplusplus +} +#endif diff --git a/app/src/common/tx.c b/app/src/common/tx.c new file mode 100644 index 0000000..d3faf02 --- /dev/null +++ b/app/src/common/tx.c @@ -0,0 +1,115 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "tx.h" + +#include + +#include "apdu_codes.h" +#include "buffering.h" +#include "parser.h" +#include "zxmacros.h" + +#if defined(TARGET_NANOX) || defined(TARGET_NANOS2) || defined(TARGET_STAX) || defined(TARGET_FLEX) +#define RAM_BUFFER_SIZE 8192 +#define FLASH_BUFFER_SIZE 16384 +#elif defined(TARGET_NANOS) +#define RAM_BUFFER_SIZE 256 +#define FLASH_BUFFER_SIZE 8192 +#endif + +// Ram +uint8_t ram_buffer[RAM_BUFFER_SIZE]; + +// Flash +typedef struct { + uint8_t buffer[FLASH_BUFFER_SIZE]; +} storage_t; + +#if defined(TARGET_NANOS) || defined(TARGET_NANOX) || defined(TARGET_NANOS2) || defined(TARGET_STAX) || defined(TARGET_FLEX) +storage_t NV_CONST N_appdata_impl __attribute__((aligned(64))); +#define N_appdata (*(NV_VOLATILE storage_t *)PIC(&N_appdata_impl)) +#endif + +static parser_tx_t tx_obj = {0}; +static parser_context_t ctx_parsed_tx = {0}; + +void tx_initialize() { + buffering_init(ram_buffer, sizeof(ram_buffer), (uint8_t *)N_appdata.buffer, sizeof(N_appdata.buffer)); +} + +void tx_reset() { buffering_reset(); } + +uint32_t tx_append(unsigned char *buffer, uint32_t length) { return buffering_append(buffer, length); } + +uint32_t tx_get_buffer_length() { return buffering_get_buffer()->pos; } + +uint8_t *tx_get_buffer() { return buffering_get_buffer()->data; } + +const char *tx_parse() { + MEMZERO(&tx_obj, sizeof(tx_obj)); + + uint8_t err = parser_parse(&ctx_parsed_tx, tx_get_buffer(), tx_get_buffer_length(), &tx_obj); + + CHECK_APP_CANARY() + + if (err != parser_ok) { + return parser_getErrorDescription(err); + } + + err = parser_validate(&ctx_parsed_tx); + CHECK_APP_CANARY() + + if (err != parser_ok) { + return parser_getErrorDescription(err); + } + + return NULL; +} + +void tx_parse_reset() { MEMZERO(&tx_obj, sizeof(tx_obj)); } + +zxerr_t tx_getNumItems(uint8_t *num_items) { + parser_error_t err = parser_getNumItems(&ctx_parsed_tx, num_items); + + if (err != parser_ok) { + return zxerr_unknown; + } + + return zxerr_ok; +} + +zxerr_t tx_getItem(int8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, uint8_t pageIdx, + uint8_t *pageCount) { + uint8_t numItems = 0; + + CHECK_ZXERR(tx_getNumItems(&numItems)) + + if (displayIdx > numItems) { + return zxerr_no_data; + } + + parser_error_t err = + parser_getItem(&ctx_parsed_tx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); + + // Convert error codes + if (err == parser_no_data || err == parser_display_idx_out_of_range || err == parser_display_page_out_of_range) + return zxerr_no_data; + + if (err != parser_ok) return zxerr_unknown; + + return zxerr_ok; +} diff --git a/app/src/common/tx.h b/app/src/common/tx.h new file mode 100644 index 0000000..ab2376d --- /dev/null +++ b/app/src/common/tx.h @@ -0,0 +1,52 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#include "coin.h" +#include "os.h" +#include "zxerror.h" + +void tx_initialize(); + +/// Clears the transaction buffer +void tx_reset(); + +/// Appends buffer to the end of the current transaction buffer +/// Transaction buffer will grow until it reaches the maximum allowed size +/// \param buffer +/// \param length +/// \return It returns an error message if the buffer is too small. +uint32_t tx_append(unsigned char *buffer, uint32_t length); + +/// Returns size of the raw json transaction buffer +/// \return +uint32_t tx_get_buffer_length(); + +/// Returns the raw json transaction buffer +/// \return +uint8_t *tx_get_buffer(); + +/// Parse message stored in transaction buffer +/// This function should be called as soon as full buffer data is loaded. +/// \return It returns NULL if data is valid or error message otherwise. +const char *tx_parse(); + +/// Return the number of items in the transaction +zxerr_t tx_getNumItems(uint8_t *num_items); + +/// Gets an specific item from the transaction (including paging) +zxerr_t tx_getItem(int8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outValue, uint16_t outValueLen, + uint8_t pageIdx, uint8_t *pageCount); diff --git a/app/src/constants.h b/app/src/constants.h new file mode 100644 index 0000000..e69de29 diff --git a/app/src/crypto.c b/app/src/crypto.c new file mode 100644 index 0000000..11c5896 --- /dev/null +++ b/app/src/crypto.c @@ -0,0 +1,163 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "crypto.h" + +#include "coin.h" +#include "crypto_helper.h" +#include "cx.h" +#include "keys_def.h" +#include "zxmacros.h" + +uint32_t hdPath[HDPATH_LEN_DEFAULT]; + +__Z_INLINE zxerr_t copyKeys(keys_t *keys, key_kind_e req_type, uint8_t *output, uint16_t len, uint16_t *cmdResponseLen) { + if (keys == NULL || output == NULL) { + return zxerr_no_data; + } + + switch (req_type) { + case Address: + if (len < ADDRESS_LEN_BYTES) { + return zxerr_buffer_too_small; + } + memcpy(output, keys->address, ADDRESS_LEN_BYTES); + *cmdResponseLen = ADDRESS_LEN_BYTES; + break; + + case Fvk: + *cmdResponseLen = 2 * KEY_LEN; + + if (len < *cmdResponseLen) { + *cmdResponseLen = 0; + return zxerr_buffer_too_small; + } + memcpy(output, keys->fvk, *cmdResponseLen); + break; + + default: + return zxerr_invalid_crypto_settings; + } + + return zxerr_ok; +} + +__Z_INLINE zxerr_t computeSpendKey(keys_t *keys) { + if (keys == NULL) { + return zxerr_no_data; + } + zxerr_t error = zxerr_invalid_crypto_settings; + + // Generate spending key + uint8_t privateKeyData[SK_LEN_25519] = {0}; + CATCH_CXERROR(os_derive_bip32_no_throw(CX_CURVE_256K1, hdPath, HDPATH_LEN_DEFAULT, privateKeyData, NULL)); + + memcpy(keys->skb, privateKeyData, sizeof(keys->skb)); + // if we reach this point no errors occurred + error = zxerr_ok; + +catch_cx_error: + MEMZERO(privateKeyData, sizeof(privateKeyData)); + + return error; +} + +zxerr_t crypto_fillKeys(uint8_t *output, uint16_t len, uint16_t *cmdResponseLen) { + zemu_log("Crypto_fillKeys\n"); + + keys_t keys = {0}; + zxerr_t error = zxerr_invalid_crypto_settings; + + if (output == NULL || len < sizeof(keys.fvk)) { + return error; + } + + // Compute seed + CATCH_ZX_ERROR(computeSpendKey(&keys)); + + // use seed to compute viewieng keys + CATCH_ZX_ERROR(compute_keys(&keys)); + + // Copy keys + CATCH_ZX_ERROR(copyKeys(&keys, Fvk, output, len, cmdResponseLen)); + + error = zxerr_ok; + +catch_zx_error: + MEMZERO(&keys, sizeof(keys)); + + return error; +} + +zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t bufferLen, uint16_t *cmdResponseLen, uint32_t account, + uint8_t *randomizer) { + zemu_log("crypto_fillAddress\n"); + check_app_canary(); + + keys_t keys = {0}; + zxerr_t error = zxerr_invalid_crypto_settings; + + if (buffer == NULL || cmdResponseLen == NULL) { + return zxerr_invalid_crypto_settings; + } + + MEMZERO(buffer, bufferLen); + + CATCH_ZX_ERROR(computeSpendKey(&keys)); + + CATCH_ZX_ERROR(compute_address(&keys, account, randomizer)); + + CATCH_ZX_ERROR(copyKeys(&keys, Address, buffer, bufferLen, cmdResponseLen)); + + error = zxerr_ok; + +catch_zx_error: + MEMZERO(&keys, sizeof(keys)); + return error; +} + +// zxerr_t crypto_sign(uint8_t *signature, uint16_t signatureMaxlen, const uint8_t *message, uint16_t messageLen) { +// if (signature == NULL || message == NULL || signatureMaxlen < ED25519_SIGNATURE_SIZE || messageLen == 0) { +// return zxerr_invalid_crypto_settings; +// } +// +// cx_ecfp_private_key_t cx_privateKey; +// uint8_t privateKeyData[SK_LEN_25519] = {0}; +// +// zxerr_t error = zxerr_unknown; +// // Generate keys +// CATCH_CXERROR(os_derive_bip32_with_seed_no_throw(HDW_NORMAL, CX_CURVE_Ed25519, hdPath, HDPATH_LEN_DEFAULT, +// privateKeyData, NULL, NULL, 0)); +// +// CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_Ed25519, privateKeyData, SCALAR_LEN_ED25519, +// &cx_privateKey)); +// +// // Sign +// CATCH_CXERROR( +// cx_eddsa_sign_no_throw(&cx_privateKey, CX_SHA512, message, messageLen, signature, signatureMaxlen)); +// +// error = zxerr_ok; +// +// catch_cx_error: +// MEMZERO(&cx_privateKey, sizeof(cx_privateKey)); +// MEMZERO(privateKeyData, sizeof(privateKeyData)); +// +// if (error != zxerr_ok) { +// MEMZERO(signature, signatureMaxlen); +// } +// +// return error; +// } diff --git a/app/src/crypto.h b/app/src/crypto.h new file mode 100644 index 0000000..10accff --- /dev/null +++ b/app/src/crypto.h @@ -0,0 +1,45 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. +G* You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include "coin.h" +#include "keys_def.h" +#include "zxerror.h" + +extern uint32_t hdPath[HDPATH_LEN_DEFAULT]; + +zxerr_t crypto_fillKeys(uint8_t *output, uint16_t len, uint16_t *cmdResponseLen); + +zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t bufferLen, uint16_t *addrResponseLen, uint32_t account, + uint8_t *randomizer); + +zxerr_t crypto_sign(uint8_t *signature, uint16_t signatureMaxlen, const uint8_t *message, uint16_t messageLen); + +zxerr_t crypto_extractSpendingKeyBytes(uint8_t *key_bytes, uint32_t key_bytes_len); + +zxerr_t crypto_blake2b_512_init(); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/crypto_helper.c b/app/src/crypto_helper.c new file mode 100644 index 0000000..423d18f --- /dev/null +++ b/app/src/crypto_helper.c @@ -0,0 +1,50 @@ +/******************************************************************************* + * (c) 2018 - 2024 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#include "crypto_helper.h" +// #include "keys_personalizations.h" +#include + +#include "keys_def.h" +#include "rslib.h" +#include "zxformat.h" + +zxerr_t compute_address(keys_t *keys, uint32_t account, uint8_t *randomizer) { + if (keys == NULL) return zxerr_unknown; + + if (rs_compute_address(keys, account, randomizer) != parser_ok) { + return zxerr_unknown; + } + + return zxerr_ok; +} + +zxerr_t compute_keys(keys_t *keys) { + if (keys == NULL) return zxerr_unknown; + + if (rs_compute_keys(keys) != parser_ok) { + return zxerr_unknown; + } + + return zxerr_ok; +} + +zxerr_t compute_effect_hash() { + if (rs_compute_effect_hash() != parser_ok) { + return zxerr_unknown; + } + + return zxerr_ok; +} diff --git a/app/src/crypto_helper.h b/app/src/crypto_helper.h new file mode 100644 index 0000000..1950f04 --- /dev/null +++ b/app/src/crypto_helper.h @@ -0,0 +1,54 @@ +/******************************************************************************* + * (c) 2018 - 2024 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "keys_def.h" +#include "parser_common.h" +#include "zxerror.h" +#include "zxmacros.h" + +#define ASSERT_CX_OK(CALL) \ + do { \ + cx_err_t __cx_err = CALL; \ + if (__cx_err != CX_OK) { \ + return parser_unexpected_error; \ + } \ + } while (0) + +// catch zxerr_t errors +#define CATCH_ZX_ERROR(CALL) \ + do { \ + error = CALL; \ + if (error != zxerr_ok) { \ + goto catch_zx_error; \ + } \ + } while (0) + +zxerr_t compute_address(keys_t *keys, uint32_t account, uint8_t *randomizer); +zxerr_t compute_keys(keys_t *keys); +zxerr_t compute_effect_hash(); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/keys_def.h b/app/src/keys_def.h new file mode 100644 index 0000000..2062ca9 --- /dev/null +++ b/app/src/keys_def.h @@ -0,0 +1,102 @@ +/******************************************************************************* + * (c) 2018 - 2024 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +typedef struct { + uint8_t *ptr; + uint16_t len; +} bytes_t; + +#define KEY_LEN 32 +#define DIVERSIFIER_KEY_LEN 16 +#define OUTGOING_VIEWING_KEY_LEN KEY_LEN +#define NULLIFIER_KEY_LEN KEY_LEN // Assuming decaf377 curve parameters +#define SPEND_VERIFICATION_KEY_LEN KEY_LEN // Assuming encoded size +#define SPEND_AUTHORIZATION_KEY_LEN KEY_LEN // Assuming encoded size +#define INCOMING_VIEWING_KEY_LEN KEY_LEN // Assuming modulo r size +#define ADDR_MAX_ENC_LEN 150 // The maximun length of the encoded address + +// raw address len before encoding +#define ADDRESS_LEN_BYTES 80 + +/// Number of bits in the address short form divided by the number of bits per Bech32m character +#define ADDRESS_NUM_CHARS_SHORT_FORM 24 + +// TODO: sure it is 16, the same as the tag? +#define DIVERSIFIER_KEY_LEN 16 + +#define ADDR_RANDOMIZER_LEN 12 + +// raw keys in bytes + +/** The spending key consists of spend_key_bytes and ask. +(Since ask is derived from spend_key_bytes, only the spend_key_bytes need to be stored, + but the ask is considered part of the spending key).**/ +typedef uint8_t spend_key_bytes_t[KEY_LEN]; + +// ask = from_le_bytes(prf_expand("Penumbra_ExpndSd", spend_key_bytes, 0)) mod r +// nk = from_le_bytes(prf_expand("Penumbra_ExpndSd", spend_key_bytes, 0)) mod q + +// spend authorization key that is derived from spend_key_bytes +typedef uint8_t ask_t[SPEND_AUTHORIZATION_KEY_LEN]; +// nullifier key that is derived from spend_key_bytes +typedef uint8_t nk_t[NULLIFIER_KEY_LEN]; + +// spend verification key that is derived from ask +typedef uint8_t ak_t[SPEND_VERIFICATION_KEY_LEN]; + +// The full viewing key consists of two components: +// +// $\mathsf{ak} \in \mathbb G$, the spend verification key, a decaf377-rdsa verification key; +// pub struct FqMontgomeryDomainFieldElement(pub [u32; 8]); + +// $\mathsf{nk} \in \mathbb F_q$, the nullifier key. +// +typedef uint8_t full_viewing_key_t[KEY_LEN * 2]; + +// ovk = prf_expand(b"Penumbra_DeriOVK", to_le_bytes(nk), decaf377_encode(ak))[0..32] +// ivk = poseidon_hash_2(from_le_bytes(b"penumbra.derive.ivk"), nk, decaf377_s(ak)) mod r +// dk = prf_expand(b"Penumbra_DerivDK", to_le_bytes(nk), decaf377_encode(ak))[0..16] +typedef uint8_t ovk_t[OUTGOING_VIEWING_KEY_LEN]; +typedef uint8_t ivk_t[INCOMING_VIEWING_KEY_LEN]; + +// computed using ak and nf keys +// diversifier_key is required for computing a diversifier that along with the tag +// can be used to derive a payment address. +typedef uint8_t diversifier_key_t[DIVERSIFIER_KEY_LEN]; + +// 16-byte tags used to derive up to $2^{128}$ distinct addresses for each spending authority +typedef uint8_t diversifier_tag_t[16]; + +// A bech32m encoded address +typedef uint8_t address_t[ADDRESS_LEN_BYTES]; + +typedef struct { + spend_key_bytes_t skb; + full_viewing_key_t fvk; + address_t address; +} keys_t; + +#ifdef __cplusplus +} +#endif diff --git a/app/src/nanopb_tiny/pb.h b/app/src/nanopb_tiny/pb.h new file mode 100644 index 0000000..112ed2f --- /dev/null +++ b/app/src/nanopb_tiny/pb.h @@ -0,0 +1,881 @@ +/* Common parts of the nanopb library. Most of these are quite low-level + * stuff. For the high-level interface, see pb_encode.h and pb_decode.h. + */ + +#ifndef PB_H_INCLUDED +#define PB_H_INCLUDED + +/***************************************************************** + * Nanopb compilation time options. You can change these here by * + * uncommenting the lines, or on the compiler command line. * + *****************************************************************/ + +/* Enable support for dynamically allocated fields */ +/* #define PB_ENABLE_MALLOC 1 */ + +/* Define this if your CPU / compiler combination does not support + * unaligned memory access to packed structures. */ +/* #define PB_NO_PACKED_STRUCTS 1 */ + +/* Increase the number of required fields that are tracked. + * A compiler warning will tell if you need this. */ +/* #define PB_MAX_REQUIRED_FIELDS 256 */ + +/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */ +/* #define PB_FIELD_32BIT 1 */ + +/* Disable support for error messages in order to save some code space. */ +/* #define PB_NO_ERRMSG 1 */ + +/* Disable support for custom streams (support only memory buffers). */ +/* #define PB_BUFFER_ONLY 1 */ + +/* Disable support for 64-bit datatypes, for compilers without int64_t + or to save some code space. */ +/* #define PB_WITHOUT_64BIT 1 */ + +/* Don't encode scalar arrays as packed. This is only to be used when + * the decoder on the receiving side cannot process packed scalar arrays. + * Such example is older protobuf.js. */ +/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */ + +/* Enable conversion of doubles to floats for platforms that do not + * support 64-bit doubles. Most commonly AVR. */ +/* #define PB_CONVERT_DOUBLE_FLOAT 1 */ + +/* Check whether incoming strings are valid UTF-8 sequences. Slows down + * the string processing slightly and slightly increases code size. */ +/* #define PB_VALIDATE_UTF8 1 */ + +/****************************************************************** + * You usually don't need to change anything below this line. * + * Feel free to look around and use the defined macros, though. * + ******************************************************************/ + +/* Version of the nanopb library. Just in case you want to check it in + * your own program. */ +#define NANOPB_VERSION nanopb - 0.4.6 - dev + +/* Include all the system headers needed by nanopb. You will need the + * definitions of the following: + * - strlen, memcpy, memset functions + * - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t + * - size_t + * - bool + * + * If you don't have the standard header files, you can instead provide + * a custom header that defines or includes all this. In that case, + * define PB_SYSTEM_HEADER to the path of this file. + */ +#ifdef PB_SYSTEM_HEADER +#include PB_SYSTEM_HEADER +#else + +#include +#include +#include +#include +#include + +#ifdef PB_ENABLE_MALLOC +#include +#endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Macro for defining packed structures (compiler dependent). + * This just reduces memory requirements, but is not required. + */ +#if defined(PB_NO_PACKED_STRUCTS) +/* Disable struct packing */ +#define PB_PACKED_STRUCT_START +#define PB_PACKED_STRUCT_END +#define pb_packed +#elif defined(__GNUC__) || defined(__clang__) +/* For GCC and clang */ +#define PB_PACKED_STRUCT_START +#define PB_PACKED_STRUCT_END +#define pb_packed __attribute__((packed)) +#elif defined(__ICCARM__) || defined(__CC_ARM) +/* For IAR ARM and Keil MDK-ARM compilers */ +#define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)") +#define PB_PACKED_STRUCT_END _Pragma("pack(pop)") +#define pb_packed +#elif defined(_MSC_VER) && (_MSC_VER >= 1500) +/* For Microsoft Visual C++ */ +#define PB_PACKED_STRUCT_START __pragma(pack(push, 1)) +#define PB_PACKED_STRUCT_END __pragma(pack(pop)) +#define pb_packed +#else +/* Unknown compiler */ +#define PB_PACKED_STRUCT_START +#define PB_PACKED_STRUCT_END +#define pb_packed +#endif + +/* Handly macro for suppressing unreferenced-parameter compiler warnings. */ +#ifndef PB_UNUSED +#define PB_UNUSED(x) (void)(x) +#endif + +/* Harvard-architecture processors may need special attributes for storing + * field information in program memory. */ +#ifndef PB_PROGMEM +#ifdef __AVR__ +#include +#define PB_PROGMEM PROGMEM +#define PB_PROGMEM_READU32(x) pgm_read_dword(&x) +#else +#define PB_PROGMEM +#define PB_PROGMEM_READU32(x, y) *((uint32_t *)PIC(x) + (y)) +#define PB_PROGMEM_READTYPE(TYPE, VALUE, OFFSET) *((TYPE *)PIC(VALUE) + (OFFSET)) +#endif +#endif + +/* Compile-time assertion, used for checking compatible compilation options. + * If this does not work properly on your compiler, use + * #define PB_NO_STATIC_ASSERT to disable it. + * + * But before doing that, check carefully the error message / place where it + * comes from to see if the error has a real cause. Unfortunately the error + * message is not always very clear to read, but you can see the reason better + * in the place where the PB_STATIC_ASSERT macro was called. + */ +#ifndef PB_NO_STATIC_ASSERT +#ifndef PB_STATIC_ASSERT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +/* C11 standard _Static_assert mechanism */ +#define PB_STATIC_ASSERT(COND, MSG) _Static_assert(COND, #MSG); +#else +/* Classic negative-size-array static assert mechanism */ +#define PB_STATIC_ASSERT(COND, MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND) ? 1 : -1]; +#define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) +#define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##_##LINE##_##COUNTER +#endif +#endif +#else +/* Static asserts disabled by PB_NO_STATIC_ASSERT */ +#define PB_STATIC_ASSERT(COND, MSG) +#endif + +/* Number of required fields to keep track of. */ +#ifndef PB_MAX_REQUIRED_FIELDS +#define PB_MAX_REQUIRED_FIELDS 64 +#endif + +#if PB_MAX_REQUIRED_FIELDS < 64 +#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64). +#endif + +#ifdef PB_WITHOUT_64BIT +#ifdef PB_CONVERT_DOUBLE_FLOAT +/* Cannot use doubles without 64-bit types */ +#undef PB_CONVERT_DOUBLE_FLOAT +#endif +#endif + +/* List of possible field types. These are used in the autogenerated code. + * Least-significant 4 bits tell the scalar type + * Most-significant 4 bits specify repeated/required/packed etc. + */ + +typedef uint_least8_t pb_type_t; + +/**** Field data types ****/ + +/* Numeric types */ +#define PB_LTYPE_BOOL 0x00U /* bool */ +#define PB_LTYPE_VARINT 0x01U /* int32, int64, enum, bool */ +#define PB_LTYPE_UVARINT 0x02U /* uint32, uint64 */ +#define PB_LTYPE_SVARINT 0x03U /* sint32, sint64 */ +#define PB_LTYPE_FIXED32 0x04U /* fixed32, sfixed32, float */ +#define PB_LTYPE_FIXED64 0x05U /* fixed64, sfixed64, double */ + +/* Marker for last packable field type. */ +#define PB_LTYPE_LAST_PACKABLE 0x05U + +/* Byte array with pre-allocated buffer. + * data_size is the length of the allocated PB_BYTES_ARRAY structure. */ +#define PB_LTYPE_BYTES 0x06U + +/* String with pre-allocated buffer. + * data_size is the maximum length. */ +#define PB_LTYPE_STRING 0x07U + +/* Submessage + * submsg_fields is pointer to field descriptions */ +#define PB_LTYPE_SUBMESSAGE 0x08U + +/* Submessage with pre-decoding callback + * The pre-decoding callback is stored as pb_callback_t right before pSize. + * submsg_fields is pointer to field descriptions */ +#define PB_LTYPE_SUBMSG_W_CB 0x09U + +/* Extension pseudo-field + * The field contains a pointer to pb_extension_t */ +#define PB_LTYPE_EXTENSION 0x0AU + +/* Byte array with inline, pre-allocated byffer. + * data_size is the length of the inline, allocated buffer. + * This differs from PB_LTYPE_BYTES by defining the element as + * pb_byte_t[data_size] rather than pb_bytes_array_t. */ +#define PB_LTYPE_FIXED_LENGTH_BYTES 0x0BU + +/* Number of declared LTYPES */ +#define PB_LTYPES_COUNT 0x0CU +#define PB_LTYPE_MASK 0x0FU + +/**** Field repetition rules ****/ + +#define PB_HTYPE_REQUIRED 0x00U +#define PB_HTYPE_OPTIONAL 0x10U +#define PB_HTYPE_SINGULAR 0x10U +#define PB_HTYPE_REPEATED 0x20U +#define PB_HTYPE_FIXARRAY 0x20U +#define PB_HTYPE_ONEOF 0x30U +#define PB_HTYPE_MASK 0x30U + +/**** Field allocation types ****/ + +#define PB_ATYPE_STATIC 0x00U +#define PB_ATYPE_POINTER 0x80U +#define PB_ATYPE_CALLBACK 0x40U +#define PB_ATYPE_MASK 0xC0U + +#define PB_ATYPE(x) ((x)&PB_ATYPE_MASK) +#define PB_HTYPE(x) ((x)&PB_HTYPE_MASK) +#define PB_LTYPE(x) ((x)&PB_LTYPE_MASK) +#define PB_LTYPE_IS_SUBMSG(x) (PB_LTYPE(x) == PB_LTYPE_SUBMESSAGE || PB_LTYPE(x) == PB_LTYPE_SUBMSG_W_CB) + +/* Data type used for storing sizes of struct fields + * and array counts. + */ +#if defined(PB_FIELD_32BIT) +typedef uint32_t pb_size_t; +typedef int32_t pb_ssize_t; +#else +typedef uint_least16_t pb_size_t; +typedef int_least16_t pb_ssize_t; +#endif +#define PB_SIZE_MAX ((pb_size_t)-1) + +/* Data type for storing encoded data and other byte streams. + * This typedef exists to support platforms where uint8_t does not exist. + * You can regard it as equivalent on uint8_t on other platforms. + */ +typedef uint_least8_t pb_byte_t; + +/* Forward declaration of struct types */ +typedef struct pb_istream_s pb_istream_t; +typedef struct pb_ostream_s pb_ostream_t; +typedef struct pb_field_iter_s pb_field_iter_t; + +/* This structure is used in auto-generated constants + * to specify struct fields. + */ +typedef struct pb_msgdesc_s pb_msgdesc_t; +struct pb_msgdesc_s { + const uint32_t *field_info; + const pb_msgdesc_t *const *submsg_info; + const pb_byte_t *default_value; + + bool (*field_callback)(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field); + + pb_size_t field_count; + pb_size_t required_field_count; + pb_size_t largest_tag; +}; + +/* Iterator for message descriptor */ +struct pb_field_iter_s { + const pb_msgdesc_t *descriptor; /* Pointer to message descriptor constant */ + void *message; /* Pointer to start of the structure */ + + pb_size_t index; /* Index of the field */ + pb_size_t field_info_index; /* Index to descriptor->field_info array */ + pb_size_t required_field_index; /* Index that counts only the required fields */ + pb_size_t submessage_index; /* Index that counts only submessages */ + + pb_size_t tag; /* Tag of current field */ + pb_size_t data_size; /* sizeof() of a single item */ + pb_size_t array_size; /* Number of array entries */ + pb_type_t type; /* Type of current field */ + + void *pField; /* Pointer to current field in struct */ + void *pData; /* Pointer to current data contents. Different than pField for arrays and pointers. */ + void *pSize; /* Pointer to count/has field */ + + const pb_msgdesc_t *submsg_desc; /* For submessage fields, pointer to field descriptor for the submessage. */ +}; + +/* For compatibility with legacy code */ +typedef pb_field_iter_t pb_field_t; + +/* Make sure that the standard integer types are of the expected sizes. + * Otherwise fixed32/fixed64 fields can break. + * + * If you get errors here, it probably means that your stdint.h is not + * correct for your platform. + */ +#ifndef PB_WITHOUT_64BIT +PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE) +PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE) +#endif + +/* This structure is used for 'bytes' arrays. + * It has the number of bytes in the beginning, and after that an array. + * Note that actual structs used will have a different length of bytes array. + */ +#define PB_BYTES_ARRAY_T(n) \ + struct { \ + pb_size_t size; \ + pb_byte_t bytes[n]; \ + } +#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes)) + +struct pb_bytes_array_s { + pb_size_t size; + pb_byte_t bytes[1]; +}; +typedef struct pb_bytes_array_s pb_bytes_array_t; + +/* This structure is used for giving the callback function. + * It is stored in the message structure and filled in by the method that + * calls pb_decode. + * + * The decoding callback will be given a limited-length stream + * If the wire type was string, the length is the length of the string. + * If the wire type was a varint/fixed32/fixed64, the length is the length + * of the actual value. + * The function may be called multiple times (especially for repeated types, + * but also otherwise if the message happens to contain the field multiple + * times.) + * + * The encoding callback will receive the actual output stream. + * It should write all the data in one call, including the field tag and + * wire type. It can write multiple fields. + * + * The callback can be null if you want to skip a field. + */ +typedef struct pb_callback_s pb_callback_t; +struct pb_callback_s { + /* Callback functions receive a pointer to the arg field. + * You can access the value of the field as *arg, and modify it if needed. + */ + union { + bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg); + + bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void *const *arg); + } funcs; + + /* Free arg for use by callback */ + void *arg; +}; + +extern bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field); + +/* Wire types. Library user needs these only in encoder callbacks. */ +typedef enum { PB_WT_VARINT = 0, PB_WT_64BIT = 1, PB_WT_STRING = 2, PB_WT_32BIT = 5 } pb_wire_type_t; + +/* Structure for defining the handling of unknown/extension fields. + * Usually the pb_extension_type_t structure is automatically generated, + * while the pb_extension_t structure is created by the user. However, + * if you want to catch all unknown fields, you can also create a custom + * pb_extension_type_t with your own callback. + */ +typedef struct pb_extension_type_s pb_extension_type_t; +typedef struct pb_extension_s pb_extension_t; +struct pb_extension_type_s { + /* Called for each unknown field in the message. + * If you handle the field, read off all of its data and return true. + * If you do not handle the field, do not read anything and return true. + * If you run into an error, return false. + * Set to NULL for default handler. + */ + bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type); + + /* Called once after all regular fields have been encoded. + * If you have something to write, do so and return true. + * If you do not have anything to write, just return true. + * If you run into an error, return false. + * Set to NULL for default handler. + */ + bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension); + + /* Free field for use by the callback. */ + const void *arg; +}; + +struct pb_extension_s { + /* Type describing the extension field. Usually you'll initialize + * this to a pointer to the automatically generated structure. */ + const pb_extension_type_t *type; + + /* Destination for the decoded data. This must match the datatype + * of the extension field. */ + void *dest; + + /* Pointer to the next extension handler, or NULL. + * If this extension does not match a field, the next handler is + * automatically called. */ + pb_extension_t *next; + + /* The decoder sets this to true if the extension was found. + * Ignored for encoding. */ + bool found; +}; + +#define pb_extension_init_zero \ + { NULL, NULL, NULL, false } + +/* Memory allocation functions to use. You can define pb_realloc and + * pb_free to custom functions if you want. */ +#ifdef PB_ENABLE_MALLOC +#ifndef pb_realloc +#define pb_realloc(ptr, size) realloc(ptr, size) +#endif +#ifndef pb_free +#define pb_free(ptr) free(ptr) +#endif +#endif + +/* This is used to inform about need to regenerate .pb.h/.pb.c files. */ +#define PB_PROTO_HEADER_VERSION 40 + +/* These macros are used to declare pb_field_t's in the constant array. */ +/* Size of a structure member, in bytes. */ +#define pb_membersize(st, m) (sizeof((st *)0)->m) +/* Number of entries in an array. */ +#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0])) +/* Delta from start of one member to the start of another member. */ +#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2)) + +/* Force expansion of macro value */ +#define PB_EXPAND(x) x + +/* Binding of a message field set into a specific structure */ +#define PB_BIND(msgname, structname, width) \ + const uint32_t structname##_field_info[] PB_PROGMEM = {msgname##_FIELDLIST(PB_GEN_FIELD_INFO_##width, structname) 0}; \ + const pb_msgdesc_t *const structname##_submsg_info[] = {msgname##_FIELDLIST(PB_GEN_SUBMSG_INFO, structname) NULL}; \ + const pb_msgdesc_t structname##_msg = { \ + structname##_field_info, \ + structname##_submsg_info, \ + msgname##_DEFAULT, \ + msgname##_CALLBACK, \ + 0 msgname##_FIELDLIST(PB_GEN_FIELD_COUNT, structname), \ + 0 msgname##_FIELDLIST(PB_GEN_REQ_FIELD_COUNT, structname), \ + 0 msgname##_FIELDLIST(PB_GEN_LARGEST_TAG, structname), \ + }; \ + msgname##_FIELDLIST(PB_GEN_FIELD_INFO_ASSERT_##width, structname) + +#define PB_GEN_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +1 +#define PB_GEN_REQ_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +(PB_HTYPE_##htype == PB_HTYPE_REQUIRED) +#define PB_GEN_LARGEST_TAG(structname, atype, htype, ltype, fieldname, tag) *0 + tag + +/* X-macro for generating the entries in struct_field_info[] array. */ +#define PB_GEN_FIELD_INFO_1(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_1(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_2(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_2(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_4(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_4(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_8(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_8(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_AUTO(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_##atype, _PB_HTYPE_##htype, _PB_LTYPE_##ltype), tag, \ + PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_FIELDINFO_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ + PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) + +#define PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ + PB_FIELDINFO_##width(tag, type, data_offset, data_size, size_offset, array_size) + +/* X-macro for generating asserts that entries fit in struct_field_info[] array. + * The structure of macros here must match the structure above in PB_GEN_FIELD_INFO_x(), + * but it is not easily reused because of how macro substitutions work. */ +#define PB_GEN_FIELD_INFO_ASSERT_1(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_ASSERT_1(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_ASSERT_2(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_ASSERT_2(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_ASSERT_4(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_ASSERT_4(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_ASSERT_8(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_ASSERT_8(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_GEN_FIELD_INFO_ASSERT_AUTO(structname, atype, htype, ltype, fieldname, tag) \ + PB_FIELDINFO_ASSERT_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_##atype, _PB_HTYPE_##htype, _PB_LTYPE_##ltype), tag, \ + PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \ + PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \ + PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname)) + +#define PB_FIELDINFO_ASSERT_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \ + PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) + +#define PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \ + PB_FIELDINFO_ASSERT_##width(tag, type, data_offset, data_size, size_offset, array_size) + +#define PB_DATA_OFFSET_STATIC(htype, structname, fieldname) PB_DO##htype(structname, fieldname) +#define PB_DATA_OFFSET_POINTER(htype, structname, fieldname) PB_DO##htype(structname, fieldname) +#define PB_DATA_OFFSET_CALLBACK(htype, structname, fieldname) PB_DO##htype(structname, fieldname) +#define PB_DO_PB_HTYPE_REQUIRED(structname, fieldname) offsetof(structname, fieldname) +#define PB_DO_PB_HTYPE_SINGULAR(structname, fieldname) offsetof(structname, fieldname) +#define PB_DO_PB_HTYPE_ONEOF(structname, fieldname) offsetof(structname, PB_ONEOF_NAME(FULL, fieldname)) +#define PB_DO_PB_HTYPE_OPTIONAL(structname, fieldname) offsetof(structname, fieldname) +#define PB_DO_PB_HTYPE_REPEATED(structname, fieldname) offsetof(structname, fieldname) +#define PB_DO_PB_HTYPE_FIXARRAY(structname, fieldname) offsetof(structname, fieldname) + +#define PB_SIZE_OFFSET_STATIC(htype, structname, fieldname) PB_SO##htype(structname, fieldname) +#define PB_SIZE_OFFSET_POINTER(htype, structname, fieldname) PB_SO_PTR##htype(structname, fieldname) +#define PB_SIZE_OFFSET_CALLBACK(htype, structname, fieldname) PB_SO_CB##htype(structname, fieldname) +#define PB_SO_PB_HTYPE_REQUIRED(structname, fieldname) 0 +#define PB_SO_PB_HTYPE_SINGULAR(structname, fieldname) 0 +#define PB_SO_PB_HTYPE_ONEOF(structname, fieldname) \ + PB_SO_PB_HTYPE_ONEOF2(structname, PB_ONEOF_NAME(FULL, fieldname), PB_ONEOF_NAME(UNION, fieldname)) +#define PB_SO_PB_HTYPE_ONEOF2(structname, fullname, unionname) PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) +#define PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) pb_delta(structname, fullname, which_##unionname) +#define PB_SO_PB_HTYPE_OPTIONAL(structname, fieldname) pb_delta(structname, fieldname, has_##fieldname) +#define PB_SO_PB_HTYPE_REPEATED(structname, fieldname) pb_delta(structname, fieldname, fieldname##_count) +#define PB_SO_PB_HTYPE_FIXARRAY(structname, fieldname) 0 +#define PB_SO_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 0 +#define PB_SO_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 0 +#define PB_SO_PTR_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) +#define PB_SO_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 0 +#define PB_SO_PTR_PB_HTYPE_REPEATED(structname, fieldname) PB_SO_PB_HTYPE_REPEATED(structname, fieldname) +#define PB_SO_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) 0 +#define PB_SO_CB_PB_HTYPE_REQUIRED(structname, fieldname) 0 +#define PB_SO_CB_PB_HTYPE_SINGULAR(structname, fieldname) 0 +#define PB_SO_CB_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname) +#define PB_SO_CB_PB_HTYPE_OPTIONAL(structname, fieldname) 0 +#define PB_SO_CB_PB_HTYPE_REPEATED(structname, fieldname) 0 +#define PB_SO_CB_PB_HTYPE_FIXARRAY(structname, fieldname) 0 + +#define PB_ARRAY_SIZE_STATIC(htype, structname, fieldname) PB_AS##htype(structname, fieldname) +#define PB_ARRAY_SIZE_POINTER(htype, structname, fieldname) PB_AS_PTR##htype(structname, fieldname) +#define PB_ARRAY_SIZE_CALLBACK(htype, structname, fieldname) 1 +#define PB_AS_PB_HTYPE_REQUIRED(structname, fieldname) 1 +#define PB_AS_PB_HTYPE_SINGULAR(structname, fieldname) 1 +#define PB_AS_PB_HTYPE_OPTIONAL(structname, fieldname) 1 +#define PB_AS_PB_HTYPE_ONEOF(structname, fieldname) 1 +#define PB_AS_PB_HTYPE_REPEATED(structname, fieldname) pb_arraysize(structname, fieldname) +#define PB_AS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname) +#define PB_AS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 1 +#define PB_AS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 1 +#define PB_AS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 1 +#define PB_AS_PTR_PB_HTYPE_ONEOF(structname, fieldname) 1 +#define PB_AS_PTR_PB_HTYPE_REPEATED(structname, fieldname) 1 +#define PB_AS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname[0]) + +#define PB_DATA_SIZE_STATIC(htype, structname, fieldname) PB_DS##htype(structname, fieldname) +#define PB_DATA_SIZE_POINTER(htype, structname, fieldname) PB_DS_PTR##htype(structname, fieldname) +#define PB_DATA_SIZE_CALLBACK(htype, structname, fieldname) PB_DS_CB##htype(structname, fieldname) +#define PB_DS_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) +#define PB_DS_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PTR_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)[0]) +#define PB_DS_PTR_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0]) +#define PB_DS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0][0]) +#define PB_DS_CB_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_CB_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_CB_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_CB_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)) +#define PB_DS_CB_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname) +#define PB_DS_CB_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname) + +#define PB_ONEOF_NAME(type, tuple) PB_EXPAND(PB_ONEOF_NAME_##type tuple) +#define PB_ONEOF_NAME_UNION(unionname, membername, fullname) unionname +#define PB_ONEOF_NAME_MEMBER(unionname, membername, fullname) membername +#define PB_ONEOF_NAME_FULL(unionname, membername, fullname) fullname + +#define PB_GEN_SUBMSG_INFO(structname, atype, htype, ltype, fieldname, tag) \ + PB_SUBMSG_INFO_##htype(_PB_LTYPE_##ltype, structname, fieldname) + +#define PB_SUBMSG_INFO_REQUIRED(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE) +#define PB_SUBMSG_INFO_SINGULAR(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE) +#define PB_SUBMSG_INFO_OPTIONAL(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE) +#define PB_SUBMSG_INFO_ONEOF(ltype, structname, fieldname) \ + PB_SUBMSG_INFO_ONEOF2(ltype, structname, PB_ONEOF_NAME(UNION, fieldname), PB_ONEOF_NAME(MEMBER, fieldname)) +#define PB_SUBMSG_INFO_ONEOF2(ltype, structname, unionname, membername) \ + PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) +#define PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) \ + PB_SI##ltype(structname##_##unionname##_##membername##_MSGTYPE) +#define PB_SUBMSG_INFO_REPEATED(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE) +#define PB_SUBMSG_INFO_FIXARRAY(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE) +#define PB_SI_PB_LTYPE_BOOL(t) +#define PB_SI_PB_LTYPE_BYTES(t) +#define PB_SI_PB_LTYPE_DOUBLE(t) +#define PB_SI_PB_LTYPE_ENUM(t) +#define PB_SI_PB_LTYPE_UENUM(t) +#define PB_SI_PB_LTYPE_FIXED32(t) +#define PB_SI_PB_LTYPE_FIXED64(t) +#define PB_SI_PB_LTYPE_FLOAT(t) +#define PB_SI_PB_LTYPE_INT32(t) +#define PB_SI_PB_LTYPE_INT64(t) +#define PB_SI_PB_LTYPE_MESSAGE(t) PB_SUBMSG_DESCRIPTOR(t) +#define PB_SI_PB_LTYPE_MSG_W_CB(t) PB_SUBMSG_DESCRIPTOR(t) +#define PB_SI_PB_LTYPE_SFIXED32(t) +#define PB_SI_PB_LTYPE_SFIXED64(t) +#define PB_SI_PB_LTYPE_SINT32(t) +#define PB_SI_PB_LTYPE_SINT64(t) +#define PB_SI_PB_LTYPE_STRING(t) +#define PB_SI_PB_LTYPE_UINT32(t) +#define PB_SI_PB_LTYPE_UINT64(t) +#define PB_SI_PB_LTYPE_EXTENSION(t) +#define PB_SI_PB_LTYPE_FIXED_LENGTH_BYTES(t) +#define PB_SUBMSG_DESCRIPTOR(t) &(t##_msg), + +/* The field descriptors use a variable width format, with width of either + * 1, 2, 4 or 8 of 32-bit words. The two lowest bytes of the first byte always + * encode the descriptor size, 6 lowest bits of field tag number, and 8 bits + * of the field type. + * + * Descriptor size is encoded as 0 = 1 word, 1 = 2 words, 2 = 4 words, 3 = 8 words. + * + * Formats, listed starting with the least significant bit of the first word. + * 1 word: [2-bit len] [6-bit tag] [8-bit type] [8-bit data_offset] [4-bit size_offset] [4-bit data_size] + * + * 2 words: [2-bit len] [6-bit tag] [8-bit type] [12-bit array_size] [4-bit size_offset] + * [16-bit data_offset] [12-bit data_size] [4-bit tag>>6] + * + * 4 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit array_size] + * [8-bit size_offset] [24-bit tag>>6] + * [32-bit data_offset] + * [32-bit data_size] + * + * 8 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit reserved] + * [8-bit size_offset] [24-bit tag>>6] + * [32-bit data_offset] + * [32-bit data_size] + * [32-bit array_size] + * [32-bit reserved] + * [32-bit reserved] + * [32-bit reserved] + */ + +#define PB_FIELDINFO_1(tag, type, data_offset, data_size, size_offset, array_size) \ + (0 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(data_offset)&0xFF) << 16) | \ + (((uint32_t)(size_offset)&0x0F) << 24) | (((uint32_t)(data_size)&0x0F) << 28)), + +#define PB_FIELDINFO_2(tag, type, data_offset, data_size, size_offset, array_size) \ + (1 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size)&0xFFF) << 16) | \ + (((uint32_t)(size_offset)&0x0F) << 28)), \ + (((uint32_t)(data_offset)&0xFFFF) | (((uint32_t)(data_size)&0xFFF) << 16) | (((uint32_t)(tag)&0x3c0) << 22)), + +#define PB_FIELDINFO_4(tag, type, data_offset, data_size, size_offset, array_size) \ + (2 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size)&0xFFFF) << 16)), \ + ((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), (data_offset), (data_size), + +#define PB_FIELDINFO_8(tag, type, data_offset, data_size, size_offset, array_size) \ + (3 | (((tag) << 2) & 0xFF) | ((type) << 8)), \ + ((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), (data_offset), (data_size), \ + (array_size), 0, 0, 0, + +/* These assertions verify that the field information fits in the allocated space. + * The generator tries to automatically determine the correct width that can fit all + * data associated with a message. These asserts will fail only if there has been a + * problem in the automatic logic - this may be worth reporting as a bug. As a workaround, + * you can increase the descriptor width by defining PB_FIELDINFO_WIDTH or by setting + * descriptorsize option in .options file. + */ +#define PB_FITS(value, bits) ((uint32_t)(value) < ((uint32_t)1 << bits)) +#define PB_FIELDINFO_ASSERT_1(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 6) && PB_FITS(data_offset, 8) && PB_FITS(size_offset, 4) && PB_FITS(data_size, 4) && \ + PB_FITS(array_size, 1), \ + FIELDINFO_DOES_NOT_FIT_width1_field##tag) + +#define PB_FIELDINFO_ASSERT_2(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 10) && PB_FITS(data_offset, 16) && PB_FITS(size_offset, 4) && PB_FITS(data_size, 12) && \ + PB_FITS(array_size, 12), \ + FIELDINFO_DOES_NOT_FIT_width2_field##tag) + +#ifndef PB_FIELD_32BIT +/* Maximum field sizes are still 16-bit if pb_size_t is 16-bit */ +#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 16) && PB_FITS(data_offset, 16) && PB_FITS((int_least8_t)size_offset, 8) && \ + PB_FITS(data_size, 16) && PB_FITS(array_size, 16), \ + FIELDINFO_DOES_NOT_FIT_width4_field##tag) + +#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 16) && PB_FITS(data_offset, 16) && PB_FITS((int_least8_t)size_offset, 8) && \ + PB_FITS(data_size, 16) && PB_FITS(array_size, 16), \ + FIELDINFO_DOES_NOT_FIT_width8_field##tag) +#else +/* Up to 32-bit fields supported. + * Note that the checks are against 31 bits to avoid compiler warnings about shift wider than type in the test. + * I expect that there is no reasonable use for >2GB messages with nanopb anyway. + */ +#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 30) && PB_FITS(data_offset, 31) && PB_FITS(size_offset, 8) && PB_FITS(data_size, 31) && \ + PB_FITS(array_size, 16), \ + FIELDINFO_DOES_NOT_FIT_width4_field##tag) + +#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \ + PB_STATIC_ASSERT(PB_FITS(tag, 30) && PB_FITS(data_offset, 31) && PB_FITS(size_offset, 8) && PB_FITS(data_size, 31) && \ + PB_FITS(array_size, 31), \ + FIELDINFO_DOES_NOT_FIT_width8_field##tag) +#endif + +/* Automatic picking of FIELDINFO width: + * Uses width 1 when possible, otherwise resorts to width 2. + * This is used when PB_BIND() is called with "AUTO" as the argument. + * The generator will give explicit size argument when it knows that a message + * structure grows beyond 1-word format limits. + */ +#define PB_FIELDINFO_WIDTH_AUTO(atype, htype, ltype) PB_FI_WIDTH##atype(htype, ltype) +#define PB_FI_WIDTH_PB_ATYPE_STATIC(htype, ltype) PB_FI_WIDTH##htype(ltype) +#define PB_FI_WIDTH_PB_ATYPE_POINTER(htype, ltype) PB_FI_WIDTH##htype(ltype) +#define PB_FI_WIDTH_PB_ATYPE_CALLBACK(htype, ltype) 2 +#define PB_FI_WIDTH_PB_HTYPE_REQUIRED(ltype) PB_FI_WIDTH##ltype +#define PB_FI_WIDTH_PB_HTYPE_SINGULAR(ltype) PB_FI_WIDTH##ltype +#define PB_FI_WIDTH_PB_HTYPE_OPTIONAL(ltype) PB_FI_WIDTH##ltype +#define PB_FI_WIDTH_PB_HTYPE_ONEOF(ltype) PB_FI_WIDTH##ltype +#define PB_FI_WIDTH_PB_HTYPE_REPEATED(ltype) 2 +#define PB_FI_WIDTH_PB_HTYPE_FIXARRAY(ltype) 2 +#define PB_FI_WIDTH_PB_LTYPE_BOOL 1 +#define PB_FI_WIDTH_PB_LTYPE_BYTES 2 +#define PB_FI_WIDTH_PB_LTYPE_DOUBLE 1 +#define PB_FI_WIDTH_PB_LTYPE_ENUM 1 +#define PB_FI_WIDTH_PB_LTYPE_UENUM 1 +#define PB_FI_WIDTH_PB_LTYPE_FIXED32 1 +#define PB_FI_WIDTH_PB_LTYPE_FIXED64 1 +#define PB_FI_WIDTH_PB_LTYPE_FLOAT 1 +#define PB_FI_WIDTH_PB_LTYPE_INT32 1 +#define PB_FI_WIDTH_PB_LTYPE_INT64 1 +#define PB_FI_WIDTH_PB_LTYPE_MESSAGE 2 +#define PB_FI_WIDTH_PB_LTYPE_MSG_W_CB 2 +#define PB_FI_WIDTH_PB_LTYPE_SFIXED32 1 +#define PB_FI_WIDTH_PB_LTYPE_SFIXED64 1 +#define PB_FI_WIDTH_PB_LTYPE_SINT32 1 +#define PB_FI_WIDTH_PB_LTYPE_SINT64 1 +#define PB_FI_WIDTH_PB_LTYPE_STRING 2 +#define PB_FI_WIDTH_PB_LTYPE_UINT32 1 +#define PB_FI_WIDTH_PB_LTYPE_UINT64 1 +#define PB_FI_WIDTH_PB_LTYPE_EXTENSION 1 +#define PB_FI_WIDTH_PB_LTYPE_FIXED_LENGTH_BYTES 2 + +/* The mapping from protobuf types to LTYPEs is done using these macros. */ +#define PB_LTYPE_MAP_BOOL PB_LTYPE_BOOL +#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES +#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64 +#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT +#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT +#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32 +#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64 +#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32 +#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT +#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT +#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE +#define PB_LTYPE_MAP_MSG_W_CB PB_LTYPE_SUBMSG_W_CB +#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32 +#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64 +#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT +#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT +#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING +#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT +#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT +#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION +#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES + +/* These macros are used for giving out error messages. + * They are mostly a debugging aid; the main error information + * is the true/false return value from functions. + * Some code space can be saved by disabling the error + * messages if not used. + * + * PB_SET_ERROR() sets the error message if none has been set yet. + * msg must be a constant string literal. + * PB_GET_ERROR() always returns a pointer to a string. + * PB_RETURN_ERROR() sets the error and returns false from current + * function. + */ +#ifdef PB_NO_ERRMSG +#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream) +#define PB_GET_ERROR(stream) "(errmsg disabled)" +#else +#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg)) +#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)") +#endif + +#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#ifndef ZX_NO_CPP +#ifdef __cplusplus +#if __cplusplus >= 201103L +#define PB_CONSTEXPR constexpr +#else // __cplusplus >= 201103L +#define PB_CONSTEXPR +#endif // __cplusplus >= 201103L + +#if __cplusplus >= 201703L +#define PB_INLINE_CONSTEXPR inline constexpr +#else // __cplusplus >= 201703L +#define PB_INLINE_CONSTEXPR PB_CONSTEXPR +#endif // __cplusplus >= 201703L + +namespace nanopb { +// Each type will be partially specialized by the generator. +template +struct MessageDescriptor; +} // namespace nanopb +#endif /* __cplusplus */ + +#endif +#endif diff --git a/app/src/nanopb_tiny/pb_common.c b/app/src/nanopb_tiny/pb_common.c new file mode 100644 index 0000000..e1aa3b2 --- /dev/null +++ b/app/src/nanopb_tiny/pb_common.c @@ -0,0 +1,339 @@ +/* pb_common.c: Common support functions for pb_encode.c and pb_decode.c. + * + * 2014 Petteri Aimonen + */ + +#include "pb_common.h" + +#include + +static bool load_descriptor_values(pb_field_iter_t *iter) { + uint32_t word0; + uint32_t data_offset; + int_least8_t size_offset; + + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + if (iter->index >= descriptor->field_count) return false; + + word0 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); + iter->type = (pb_type_t)((word0 >> 8) & 0xFF); + + switch (word0 & 3) { + case 0: { + /* 1-word format */ + iter->array_size = 1; + iter->tag = (pb_size_t)((word0 >> 2) & 0x3F); + size_offset = (int_least8_t)((word0 >> 24) & 0x0F); + data_offset = (word0 >> 16) & 0xFF; + iter->data_size = (pb_size_t)((word0 >> 28) & 0x0F); + break; + } + + case 1: { + /* 2-word format */ + uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); + + iter->array_size = (pb_size_t)((word0 >> 16) & 0x0FFF); + iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 28) << 6)); + size_offset = (int_least8_t)((word0 >> 28) & 0x0F); + data_offset = word1 & 0xFFFF; + iter->data_size = (pb_size_t)((word1 >> 16) & 0x0FFF); + break; + } + + case 2: { + /* 4-word format */ + uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); + uint32_t word2 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 2); + uint32_t word3 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 3); + + iter->array_size = (pb_size_t)(word0 >> 16); + iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6)); + size_offset = (int_least8_t)(word1 & 0xFF); + data_offset = word2; + iter->data_size = (pb_size_t)word3; + break; + } + + default: { + /* 8-word format */ + uint32_t word1 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 1); + uint32_t word2 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 2); + uint32_t word3 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 3); + uint32_t word4 = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index + 4); + + iter->array_size = (pb_size_t)word4; + iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6)); + size_offset = (int_least8_t)(word1 & 0xFF); + data_offset = word2; + iter->data_size = (pb_size_t)word3; + break; + } + } + + if (!iter->message) { + /* Avoid doing arithmetic on null pointers, it is undefined */ + iter->pField = NULL; + iter->pSize = NULL; + } else { + iter->pField = (char *)iter->message + data_offset; + + if (size_offset) { + iter->pSize = (char *)iter->pField - size_offset; + } else if (PB_HTYPE(iter->type) == PB_HTYPE_REPEATED && + (PB_ATYPE(iter->type) == PB_ATYPE_STATIC || PB_ATYPE(iter->type) == PB_ATYPE_POINTER)) { + /* Fixed count array */ + iter->pSize = &iter->array_size; + } else { + iter->pSize = NULL; + } + + if (PB_ATYPE(iter->type) == PB_ATYPE_POINTER && iter->pField != NULL) { + iter->pData = *(void **)iter->pField; + } else { + iter->pData = iter->pField; + } + } + + if (PB_LTYPE_IS_SUBMSG(iter->type)) { + iter->submsg_desc = PB_PROGMEM_READTYPE(const pb_msgdesc_t *, descriptor->submsg_info, iter->submessage_index); + } else { + iter->submsg_desc = NULL; + } + + return true; +} + +static void advance_iterator(pb_field_iter_t *iter) { + iter->index++; + + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + + if (iter->index >= descriptor->field_count) { + /* Restart */ + iter->index = 0; + iter->field_info_index = 0; + iter->submessage_index = 0; + iter->required_field_index = 0; + } else { + /* Increment indexes based on previous field type. + * All field info formats have the following fields: + * - lowest 2 bits tell the amount of words in the descriptor (2^n words) + * - bits 2..7 give the lowest bits of tag number. + * - bits 8..15 give the field type. + */ + uint32_t prev_descriptor = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); + pb_type_t prev_type = (prev_descriptor >> 8) & 0xFF; + pb_size_t descriptor_len = (pb_size_t)(1 << (prev_descriptor & 3)); + + /* Add to fields. + * The cast to pb_size_t is needed to avoid -Wconversion warning. + * Because the data is is constants from generator, there is no danger of overflow. + */ + iter->field_info_index = (pb_size_t)(iter->field_info_index + descriptor_len); + iter->required_field_index = (pb_size_t)(iter->required_field_index + (PB_HTYPE(prev_type) == PB_HTYPE_REQUIRED)); + iter->submessage_index = (pb_size_t)(iter->submessage_index + PB_LTYPE_IS_SUBMSG(prev_type)); + } +} + +bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message) { + memset(iter, 0, sizeof(*iter)); + + iter->descriptor = desc; + iter->message = message; + + return load_descriptor_values(iter); +} + +bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension) { + const pb_msgdesc_t *msg = (const pb_msgdesc_t *)extension->type->arg; + bool status; + + uint32_t word0 = PB_PROGMEM_READU32(msg->field_info, 0); + if (PB_ATYPE(word0 >> 8) == PB_ATYPE_POINTER) { + /* For pointer extensions, the pointer is stored directly + * in the extension structure. This avoids having an extra + * indirection. */ + status = pb_field_iter_begin(iter, msg, &extension->dest); + } else { + status = pb_field_iter_begin(iter, msg, extension->dest); + } + + iter->pSize = &extension->found; + return status; +} + +bool pb_field_iter_next(pb_field_iter_t *iter) { + advance_iterator(iter); + (void)load_descriptor_values(iter); + return iter->index != 0; +} + +bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag) { + ZEMU_TRACE() + + if (iter->tag == tag) { + ZEMU_TRACE() + return true; /* Nothing to do, correct field already. */ + } + + { + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + if (tag > descriptor->largest_tag) { + ZEMU_TRACE() + return false; + } + } + + ZEMU_TRACE() + pb_size_t start = iter->index; + ZEMU_TRACE() + + uint32_t fieldinfo; + + if (tag < iter->tag) { + ZEMU_TRACE() + /* Fields are in tag number order, so we know that tag is between + * 0 and our start position. Setting index to end forces + * advance_iterator() call below to restart from beginning. */ + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + iter->index = descriptor->field_count; + } + + do { + ZEMU_TRACE() + /* Advance iterator but don't load values yet */ + advance_iterator(iter); + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + + ZEMU_TRACE() + /* Do fast check for tag number match */ + fieldinfo = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); + + if (((fieldinfo >> 2) & 0x3F) == (tag & 0x3F)) { + /* Good candidate, check further */ + (void)load_descriptor_values(iter); + + if (iter->tag == tag && PB_LTYPE(iter->type) != PB_LTYPE_EXTENSION) { + /* Found it */ + return true; + } + } + } while (iter->index != start); + + /* Searched all the way back to start, and found nothing. */ + (void)load_descriptor_values(iter); + return false; +} + +bool pb_field_iter_find_extension(pb_field_iter_t *iter) { + if (PB_LTYPE(iter->type) == PB_LTYPE_EXTENSION) { + return true; + } else { + pb_size_t start = iter->index; + uint32_t fieldinfo; + + do { + /* Advance iterator but don't load values yet */ + advance_iterator(iter); + + /* Do fast check for field type */ + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + fieldinfo = PB_PROGMEM_READU32(descriptor->field_info, iter->field_info_index); + + if (PB_LTYPE((fieldinfo >> 8) & 0xFF) == PB_LTYPE_EXTENSION) { + return load_descriptor_values(iter); + } + } while (iter->index != start); + + /* Searched all the way back to start, and found nothing. */ + (void)load_descriptor_values(iter); + return false; + } +} + +static void *pb_const_cast(const void *p) { + /* Note: this casts away const, in order to use the common field iterator + * logic for both encoding and decoding. The cast is done using union + * to avoid spurious compiler warnings. */ + union { + void *p1; + const void *p2; + } t; + t.p2 = p; + return t.p1; +} + +bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message) { + return pb_field_iter_begin(iter, desc, pb_const_cast(message)); +} + +bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension) { + return pb_field_iter_begin_extension(iter, (pb_extension_t *)pb_const_cast(extension)); +} + +bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field) { + if (field->data_size == sizeof(pb_callback_t)) { + pb_callback_t *pCallback = (pb_callback_t *)field->pData; + + if (pCallback != NULL) { + if (istream != NULL && pCallback->funcs.decode != NULL) { + return pCallback->funcs.decode(istream, field, &pCallback->arg); + } + + if (ostream != NULL && pCallback->funcs.encode != NULL) { + return pCallback->funcs.encode(ostream, field, &pCallback->arg); + } + } + } + + return true; /* Success, but didn't do anything */ +} + +#ifdef PB_VALIDATE_UTF8 + +/* This function checks whether a string is valid UTF-8 text. + * + * Algorithm is adapted from https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c + * Original copyright: Markus Kuhn 2005-03-30 + * Licensed under "Short code license", which allows use under MIT license or + * any compatible with it. + */ + +bool pb_validate_utf8(const char *str) { + const pb_byte_t *s = (const pb_byte_t *)str; + while (*s) { + if (*s < 0x80) { + /* 0xxxxxxx */ + s++; + } else if ((s[0] & 0xe0) == 0xc0) { + /* 110XXXXx 10xxxxxx */ + if ((s[1] & 0xc0) != 0x80 || (s[0] & 0xfe) == 0xc0) /* overlong? */ + return false; + else + s += 2; + } else if ((s[0] & 0xf0) == 0xe0) { + /* 1110XXXX 10Xxxxxx 10xxxxxx */ + if ((s[1] & 0xc0) != 0x80 || (s[2] & 0xc0) != 0x80 || (s[0] == 0xe0 && (s[1] & 0xe0) == 0x80) || /* overlong? */ + (s[0] == 0xed && (s[1] & 0xe0) == 0xa0) || /* surrogate? */ + (s[0] == 0xef && s[1] == 0xbf && (s[2] & 0xfe) == 0xbe)) /* U+FFFE or U+FFFF? */ + return false; + else + s += 3; + } else if ((s[0] & 0xf8) == 0xf0) { + /* 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx */ + if ((s[1] & 0xc0) != 0x80 || (s[2] & 0xc0) != 0x80 || (s[3] & 0xc0) != 0x80 || + (s[0] == 0xf0 && (s[1] & 0xf0) == 0x80) || /* overlong? */ + (s[0] == 0xf4 && s[1] > 0x8f) || s[0] > 0xf4) /* > U+10FFFF? */ + return false; + else + s += 4; + } else { + return false; + } + } + + return true; +} + +#endif diff --git a/app/src/nanopb_tiny/pb_common.h b/app/src/nanopb_tiny/pb_common.h new file mode 100644 index 0000000..ff44802 --- /dev/null +++ b/app/src/nanopb_tiny/pb_common.h @@ -0,0 +1,49 @@ +/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c. + * These functions are rarely needed by applications directly. + */ + +#ifndef PB_COMMON_H_INCLUDED +#define PB_COMMON_H_INCLUDED + +#include "pb.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initialize the field iterator structure to beginning. + * Returns false if the message type is empty. */ +bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message); + +/* Get a field iterator for extension field. */ +bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension); + +/* Same as pb_field_iter_begin(), but for const message pointer. + * Note that the pointers in pb_field_iter_t will be non-const but shouldn't + * be written to when using these functions. */ +bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message); + +bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension); + +/* Advance the iterator to the next field. + * Returns false when the iterator wraps back to the first field. */ +bool pb_field_iter_next(pb_field_iter_t *iter); + +/* Advance the iterator until it points at a field with the given tag. + * Returns false if no such field exists. */ +bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag); + +/* Find a field with type PB_LTYPE_EXTENSION, or return false if not found. + * There can be only one extension range field per message. */ +bool pb_field_iter_find_extension(pb_field_iter_t *iter); + +#ifdef PB_VALIDATE_UTF8 +/* Validate UTF-8 text string */ +bool pb_validate_utf8(const char *s); +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/nanopb_tiny/pb_decode.c b/app/src/nanopb_tiny/pb_decode.c new file mode 100644 index 0000000..83de2c9 --- /dev/null +++ b/app/src/nanopb_tiny/pb_decode.c @@ -0,0 +1,1494 @@ +/* pb_decode.c -- decode a protobuf using minimal resources + * + * 2011 Petteri Aimonen + */ + +/* Use the GCC warn_unused_result attribute to check that all return values + * are propagated correctly. On other compilers and gcc before 3.4.0 just + * ignore the annotation. + */ +#if !defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) +#define checkreturn +#else +#define checkreturn __attribute__((warn_unused_result)) +#endif + +#include "pb_decode.h" + +#include + +#include "pb.h" +#include "pb_common.h" + +/************************************** + * Declarations internal to this file * + **************************************/ + +static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); + +static bool checkreturn pb_decode_varint32_eof(pb_istream_t *stream, uint32_t *dest, bool *eof); + +static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size); + +static bool checkreturn decode_basic_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); + +static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); + +static bool checkreturn decode_pointer_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); + +static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); + +static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field); + +static bool checkreturn default_extension_decoder(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, + pb_wire_type_t wire_type); + +static bool checkreturn decode_extension(pb_istream_t *stream, uint32_t tag, pb_wire_type_t wire_type, + pb_extension_t *extension); + +static bool pb_field_set_to_default(pb_field_iter_t *field); + +static bool pb_message_set_to_defaults(pb_field_iter_t *iter); + +static bool checkreturn pb_dec_bool(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_iter_t *field); + +static bool checkreturn pb_skip_varint(pb_istream_t *stream); + +static bool checkreturn pb_skip_string(pb_istream_t *stream); + +#ifdef PB_ENABLE_MALLOC +static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size); +static void initialize_pointer_field(void *pItem, pb_field_iter_t *field); +static bool checkreturn pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *field); +static void pb_release_single_field(pb_field_iter_t *field); +#endif + +#ifdef PB_WITHOUT_64BIT +#define pb_int64_t int32_t +#define pb_uint64_t uint32_t +#else +#define pb_int64_t int64_t +#define pb_uint64_t uint64_t +#endif + +#define PB_WT_PACKED ((pb_wire_type_t)0xFF) + +typedef struct { + uint32_t bitfield[(PB_MAX_REQUIRED_FIELDS + 31) / 32]; +} pb_fields_seen_t; + +/******************************* + * pb_istream_t implementation * + *******************************/ + +static bool checkreturn buf_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) { + size_t i; + const pb_byte_t *source = (const pb_byte_t *)stream->state; + stream->state = (pb_byte_t *)stream->state + count; + + if (buf != NULL) { + for (i = 0; i < count; i++) buf[i] = source[i]; + } + + return true; +} + +bool checkreturn pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count) { + if (count == 0) return true; + +#ifndef PB_BUFFER_ONLY + if (buf == NULL && stream->callback != buf_read) { + /* Skip input bytes */ + pb_byte_t tmp[16]; + while (count > 16) { + if (!pb_read(stream, tmp, 16)) return false; + + count -= 16; + } + + return pb_read(stream, tmp, count); + } +#endif + + if (stream->bytes_left < count) PB_RETURN_ERROR(stream, "end-of-stream"); + +#ifndef PB_BUFFER_ONLY + if (!stream->callback(stream, buf, count)) PB_RETURN_ERROR(stream, "io error"); +#else + if (!buf_read(stream, buf, count)) return false; +#endif + + stream->bytes_left -= count; + return true; +} + +/* Read a single byte from input stream. buf may not be NULL. + * This is an optimization for the varint decoding. */ +static bool checkreturn pb_readbyte(pb_istream_t *stream, pb_byte_t *buf) { + if (stream->bytes_left == 0) PB_RETURN_ERROR(stream, "end-of-stream"); + +#ifndef PB_BUFFER_ONLY + if (!stream->callback(stream, buf, 1)) PB_RETURN_ERROR(stream, "io error"); +#else + *buf = *(const pb_byte_t *)stream->state; + stream->state = (pb_byte_t *)stream->state + 1; +#endif + + stream->bytes_left--; + + return true; +} + +pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen) { + pb_istream_t stream; + /* Cast away the const from buf without a compiler error. We are + * careful to use it only in a const manner in the callbacks. + */ + union { + void *state; + const void *c_state; + } state; +#ifdef PB_BUFFER_ONLY + stream.callback = NULL; +#else + stream.callback = &buf_read; +#endif + state.c_state = buf; + stream.state = state.state; + stream.bytes_left = msglen; +#ifndef PB_NO_ERRMSG + stream.errmsg = NULL; +#endif + return stream; +} + +/******************** + * Helper functions * + ********************/ + +static bool checkreturn pb_decode_varint32_eof(pb_istream_t *stream, uint32_t *dest, bool *eof) { + pb_byte_t byte; + uint32_t result; + + if (!pb_readbyte(stream, &byte)) { + if (stream->bytes_left == 0) { + if (eof) { + *eof = true; + } + } + + return false; + } + + if ((byte & 0x80) == 0) { + /* Quick case, 1 byte value */ + result = byte; + } else { + /* Multibyte case */ + uint_fast8_t bitpos = 7; + result = byte & 0x7F; + + do { + if (!pb_readbyte(stream, &byte)) return false; + + if (bitpos >= 32) { + /* Note: The varint could have trailing 0x80 bytes, or 0xFF for negative. */ + pb_byte_t sign_extension = (bitpos < 63) ? 0xFF : 0x01; + bool valid_extension = ((byte & 0x7F) == 0x00 || ((result >> 31) != 0 && byte == sign_extension)); + + if (bitpos >= 64 || !valid_extension) { + PB_RETURN_ERROR(stream, "varint overflow"); + } + } else { + result |= (uint32_t)(byte & 0x7F) << bitpos; + } + bitpos = (uint_fast8_t)(bitpos + 7); + } while (byte & 0x80); + + if (bitpos == 35 && (byte & 0x70) != 0) { + /* The last byte was at bitpos=28, so only bottom 4 bits fit. */ + PB_RETURN_ERROR(stream, "varint overflow"); + } + } + + *dest = result; + return true; +} + +bool checkreturn pb_decode_varint32(pb_istream_t *stream, uint32_t *dest) { + return pb_decode_varint32_eof(stream, dest, NULL); +} + +#ifndef PB_WITHOUT_64BIT + +bool checkreturn pb_decode_varint(pb_istream_t *stream, uint64_t *dest) { + pb_byte_t byte; + uint_fast8_t bitpos = 0; + uint64_t result = 0; + + do { + if (bitpos >= 64) PB_RETURN_ERROR(stream, "varint overflow"); + + if (!pb_readbyte(stream, &byte)) return false; + + result |= (uint64_t)(byte & 0x7F) << bitpos; + bitpos = (uint_fast8_t)(bitpos + 7); + } while (byte & 0x80); + + *dest = result; + return true; +} + +#endif + +bool checkreturn pb_skip_varint(pb_istream_t *stream) { + pb_byte_t byte; + do { + if (!pb_read(stream, &byte, 1)) return false; + } while (byte & 0x80); + return true; +} + +bool checkreturn pb_skip_string(pb_istream_t *stream) { + uint32_t length; + if (!pb_decode_varint32(stream, &length)) return false; + + if ((size_t)length != length) { + PB_RETURN_ERROR(stream, "size too large"); + } + + return pb_read(stream, NULL, (size_t)length); +} + +bool checkreturn pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof) { + uint32_t temp; + *eof = false; + *wire_type = (pb_wire_type_t)0; + *tag = 0; + + if (!pb_decode_varint32_eof(stream, &temp, eof)) { + return false; + } + + *tag = temp >> 3; + *wire_type = (pb_wire_type_t)(temp & 7); + return true; +} + +bool checkreturn pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type) { + switch (wire_type) { + case PB_WT_VARINT: + return pb_skip_varint(stream); + case PB_WT_64BIT: + return pb_read(stream, NULL, 8); + case PB_WT_STRING: + return pb_skip_string(stream); + case PB_WT_32BIT: + return pb_read(stream, NULL, 4); + default: + PB_RETURN_ERROR(stream, "invalid wire_type"); + } +} + +/* Read a raw value to buffer, for the purpose of passing it to callback as + * a substream. Size is maximum size on call, and actual size on return. + */ +static bool checkreturn read_raw_value(pb_istream_t *stream, pb_wire_type_t wire_type, pb_byte_t *buf, size_t *size) { + size_t max_size = *size; + switch (wire_type) { + case PB_WT_VARINT: + *size = 0; + do { + (*size)++; + if (*size > max_size) PB_RETURN_ERROR(stream, "varint overflow"); + + if (!pb_read(stream, buf, 1)) return false; + } while (*buf++ & 0x80); + return true; + + case PB_WT_64BIT: + *size = 8; + return pb_read(stream, buf, 8); + + case PB_WT_32BIT: + *size = 4; + return pb_read(stream, buf, 4); + + case PB_WT_STRING: + /* Calling read_raw_value with a PB_WT_STRING is an error. + * Explicitly handle this case and fallthrough to default to avoid + * compiler warnings. + */ + + default: + PB_RETURN_ERROR(stream, "invalid wire_type"); + } +} + +/* Decode string length from stream and return a substream with limited length. + * Remember to close the substream using pb_close_string_substream(). + */ +bool checkreturn pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream) { + uint32_t size; + if (!pb_decode_varint32(stream, &size)) return false; + + *substream = *stream; + if (substream->bytes_left < size) PB_RETURN_ERROR(stream, "parent stream too short"); + + substream->bytes_left = (size_t)size; + stream->bytes_left -= (size_t)size; + return true; +} + +bool checkreturn pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream) { + if (substream->bytes_left) { + if (!pb_read(substream, NULL, substream->bytes_left)) return false; + } + + stream->state = substream->state; + +#ifndef PB_NO_ERRMSG + stream->errmsg = substream->errmsg; +#endif + return true; +} + +/************************* + * Decode a single field * + *************************/ + +static bool checkreturn decode_basic_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { + ZEMU_TRACE() + + switch (PB_LTYPE(field->type)) { + case PB_LTYPE_BOOL: + if (wire_type != PB_WT_VARINT && wire_type != PB_WT_PACKED) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_bool(stream, field); + + case PB_LTYPE_VARINT: + case PB_LTYPE_UVARINT: + case PB_LTYPE_SVARINT: + if (wire_type != PB_WT_VARINT && wire_type != PB_WT_PACKED) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_varint(stream, field); + + case PB_LTYPE_FIXED32: + if (wire_type != PB_WT_32BIT && wire_type != PB_WT_PACKED) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_decode_fixed32(stream, field->pData); + + case PB_LTYPE_FIXED64: + if (wire_type != PB_WT_64BIT && wire_type != PB_WT_PACKED) PB_RETURN_ERROR(stream, "wrong wire type"); + +#ifdef PB_CONVERT_DOUBLE_FLOAT + if (field->data_size == sizeof(float)) { + return pb_decode_double_as_float(stream, (float *)field->pData); + } +#endif + +#ifdef PB_WITHOUT_64BIT + PB_RETURN_ERROR(stream, "invalid data_size"); +#else + return pb_decode_fixed64(stream, field->pData); +#endif + + case PB_LTYPE_BYTES: + if (wire_type != PB_WT_STRING) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_bytes(stream, field); + + case PB_LTYPE_STRING: + if (wire_type != PB_WT_STRING) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_string(stream, field); + + case PB_LTYPE_SUBMESSAGE: + case PB_LTYPE_SUBMSG_W_CB: + if (wire_type != PB_WT_STRING) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_submessage(stream, field); + + case PB_LTYPE_FIXED_LENGTH_BYTES: + if (wire_type != PB_WT_STRING) PB_RETURN_ERROR(stream, "wrong wire type"); + + return pb_dec_fixed_length_bytes(stream, field); + + default: + PB_RETURN_ERROR(stream, "invalid field type"); + } +} + +static bool checkreturn decode_static_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { + ZEMU_TRACE() + + switch (PB_HTYPE(field->type)) { + case PB_HTYPE_REQUIRED: + return decode_basic_field(stream, wire_type, field); + + case PB_HTYPE_OPTIONAL: + if (field->pSize != NULL) *(bool *)field->pSize = true; + return decode_basic_field(stream, wire_type, field); + + case PB_HTYPE_REPEATED: + if (wire_type == PB_WT_STRING && PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE) { + ZEMU_TRACE() + + /* Packed array */ + bool status = true; + pb_istream_t substream; + pb_size_t *size = (pb_size_t *)field->pSize; + field->pData = (char *)field->pField + field->data_size * (*size); + + if (!pb_make_string_substream(stream, &substream)) return false; + + while (substream.bytes_left > 0 && *size < field->array_size) { + if (!decode_basic_field(&substream, PB_WT_PACKED, field)) { + status = false; + break; + } + (*size)++; + field->pData = (char *)field->pData + field->data_size; + } + + if (substream.bytes_left != 0) PB_RETURN_ERROR(stream, "array overflow"); + if (!pb_close_string_substream(stream, &substream)) return false; + + return status; + } else { + /* Repeated field */ + pb_size_t *size = (pb_size_t *)field->pSize; + field->pData = (char *)field->pField + field->data_size * (*size); + + if ((*size)++ >= field->array_size) PB_RETURN_ERROR(stream, "array overflow"); + + return decode_basic_field(stream, wire_type, field); + } + + case PB_HTYPE_ONEOF: + if (PB_LTYPE_IS_SUBMSG(field->type) && *(pb_size_t *)field->pSize != field->tag) { + /* We memset to zero so that any callbacks are set to NULL. + * This is because the callbacks might otherwise have values + * from some other union field. + * If callbacks are needed inside oneof field, use .proto + * option submsg_callback to have a separate callback function + * that can set the fields before submessage is decoded. + * pb_dec_submessage() will set any default values. */ + ZEMU_TRACE() + memset(field->pData, 0, (size_t)field->data_size); + + const pb_msgdesc_t *tmp = (const pb_msgdesc_t *)PIC(field->submsg_desc); + const bool validDefaultValue = tmp != NULL && tmp->default_value != NULL; + const bool validFieldCallback = tmp != NULL && tmp->field_callback != NULL; + const bool validSubmsgInfo = tmp != NULL && tmp->submsg_info != NULL; + + /* Set default values for the submessage fields. */ + if (validDefaultValue || validFieldCallback || validSubmsgInfo) { + pb_field_iter_t submsg_iter; + if (pb_field_iter_begin(&submsg_iter, field->submsg_desc, field->pData)) { + if (!pb_message_set_to_defaults(&submsg_iter)) PB_RETURN_ERROR(stream, "failed to set defaults"); + } + } + } + *(pb_size_t *)field->pSize = field->tag; + + return decode_basic_field(stream, wire_type, field); + + default: + PB_RETURN_ERROR(stream, "invalid field type"); + } +} + +#ifdef PB_ENABLE_MALLOC +/* Allocate storage for the field and store the pointer at iter->pData. + * array_size is the number of entries to reserve in an array. + * Zero size is not allowed, use pb_free() for releasing. + */ +static bool checkreturn allocate_field(pb_istream_t *stream, void *pData, size_t data_size, size_t array_size) { + void *ptr = *(void **)pData; + + if (data_size == 0 || array_size == 0) PB_RETURN_ERROR(stream, "invalid size"); + +#ifdef __AVR__ + /* Workaround for AVR libc bug 53284: http://savannah.nongnu.org/bugs/?53284 + * Realloc to size of 1 byte can cause corruption of the malloc structures. + */ + if (data_size == 1 && array_size == 1) { + data_size = 2; + } +#endif + + /* Check for multiplication overflows. + * This code avoids the costly division if the sizes are small enough. + * Multiplication is safe as long as only half of bits are set + * in either multiplicand. + */ + { + const size_t check_limit = (size_t)1 << (sizeof(size_t) * 4); + if (data_size >= check_limit || array_size >= check_limit) { + const size_t size_max = (size_t)-1; + if (size_max / array_size < data_size) { + PB_RETURN_ERROR(stream, "size too large"); + } + } + } + + /* Allocate new or expand previous allocation */ + /* Note: on failure the old pointer will remain in the structure, + * the message must be freed by caller also on error return. */ + ptr = pb_realloc(ptr, array_size * data_size); + if (ptr == NULL) PB_RETURN_ERROR(stream, "realloc failed"); + + *(void **)pData = ptr; + return true; +} + +/* Clear a newly allocated item in case it contains a pointer, or is a submessage. */ +static void initialize_pointer_field(void *pItem, pb_field_iter_t *field) { + if (PB_LTYPE(field->type) == PB_LTYPE_STRING || PB_LTYPE(field->type) == PB_LTYPE_BYTES) { + *(void **)pItem = NULL; + } else if (PB_LTYPE_IS_SUBMSG(field->type)) { + /* We memset to zero so that any callbacks are set to NULL. + * Default values will be set by pb_dec_submessage(). */ + memset(pItem, 0, field->data_size); + } +} +#endif + +static bool checkreturn decode_pointer_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { + ZEMU_TRACE() + +#ifndef PB_ENABLE_MALLOC + PB_UNUSED(wire_type); + PB_UNUSED(field); + PB_RETURN_ERROR(stream, "no malloc support"); +#else + switch (PB_HTYPE(field->type)) { + case PB_HTYPE_REQUIRED: + case PB_HTYPE_OPTIONAL: + case PB_HTYPE_ONEOF: + if (PB_LTYPE_IS_SUBMSG(field->type) && *(void **)field->pField != NULL) { + /* Duplicate field, have to release the old allocation first. */ + /* FIXME: Does this work correctly for oneofs? */ + pb_release_single_field(field); + } + + if (PB_HTYPE(field->type) == PB_HTYPE_ONEOF) { + *(pb_size_t *)field->pSize = field->tag; + } + + if (PB_LTYPE(field->type) == PB_LTYPE_STRING || PB_LTYPE(field->type) == PB_LTYPE_BYTES) { + /* pb_dec_string and pb_dec_bytes handle allocation themselves */ + field->pData = field->pField; + return decode_basic_field(stream, wire_type, field); + } else { + if (!allocate_field(stream, field->pField, field->data_size, 1)) return false; + + field->pData = *(void **)field->pField; + initialize_pointer_field(field->pData, field); + return decode_basic_field(stream, wire_type, field); + } + + case PB_HTYPE_REPEATED: + if (wire_type == PB_WT_STRING && PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE) { + /* Packed array, multiple items come in at once. */ + bool status = true; + pb_size_t *size = (pb_size_t *)field->pSize; + size_t allocated_size = *size; + pb_istream_t substream; + + if (!pb_make_string_substream(stream, &substream)) return false; + + while (substream.bytes_left) { + if (*size == PB_SIZE_MAX) { +#ifndef PB_NO_ERRMSG + stream->errmsg = "too many array entries"; +#endif + status = false; + break; + } + + if ((size_t)*size + 1 > allocated_size) { + /* Allocate more storage. This tries to guess the + * number of remaining entries. Round the division + * upwards. */ + size_t remain = (substream.bytes_left - 1) / field->data_size + 1; + if (remain < PB_SIZE_MAX - allocated_size) + allocated_size += remain; + else + allocated_size += 1; + + if (!allocate_field(&substream, field->pField, field->data_size, allocated_size)) { + status = false; + break; + } + } + + /* Decode the array entry */ + field->pData = *(char **)field->pField + field->data_size * (*size); + initialize_pointer_field(field->pData, field); + if (!decode_basic_field(&substream, PB_WT_PACKED, field)) { + status = false; + break; + } + + (*size)++; + } + if (!pb_close_string_substream(stream, &substream)) return false; + + return status; + } else { + /* Normal repeated field, i.e. only one item at a time. */ + pb_size_t *size = (pb_size_t *)field->pSize; + + if (*size == PB_SIZE_MAX) PB_RETURN_ERROR(stream, "too many array entries"); + + if (!allocate_field(stream, field->pField, field->data_size, (size_t)(*size + 1))) return false; + + field->pData = *(char **)field->pField + field->data_size * (*size); + (*size)++; + initialize_pointer_field(field->pData, field); + return decode_basic_field(stream, wire_type, field); + } + + default: + PB_RETURN_ERROR(stream, "invalid field type"); + } +#endif +} + +static bool checkreturn decode_callback_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { + ZEMU_TRACE() + + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(field->descriptor); + + if (!descriptor->field_callback) return pb_skip_field(stream, wire_type); + + if (wire_type == PB_WT_STRING) { + ZEMU_TRACE() + pb_istream_t substream; + size_t prev_bytes_left; + + if (!pb_make_string_substream(stream, &substream)) return false; + + ZEMU_TRACE(); + do { + prev_bytes_left = substream.bytes_left; + if (!pb_default_field_callback(&substream, NULL, field)) PB_RETURN_ERROR(stream, "callback failed"); + } while (substream.bytes_left > 0 && substream.bytes_left < prev_bytes_left); + + ZEMU_TRACE() + if (!pb_close_string_substream(stream, &substream)) return false; + + return true; + } else { + /* Copy the single scalar value to stack. + * This is required so that we can limit the stream length, + * which in turn allows to use same callback for packed and + * not-packed fields. */ + pb_istream_t substream; + pb_byte_t buffer[10]; + size_t size = sizeof(buffer); + + ZEMU_TRACE(); + if (!read_raw_value(stream, wire_type, buffer, &size)) return false; + substream = pb_istream_from_buffer(buffer, size); + + return field->descriptor->field_callback(&substream, NULL, field); + } +} + +static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_type, pb_field_iter_t *field) { +#ifdef PB_ENABLE_MALLOC + /* When decoding an oneof field, check if there is old data that must be + * released first. */ + if (PB_HTYPE(field->type) == PB_HTYPE_ONEOF) { + if (!pb_release_union_field(stream, field)) return false; + } +#endif + + switch (PB_ATYPE(field->type)) { + case PB_ATYPE_STATIC: + return decode_static_field(stream, wire_type, field); + + case PB_ATYPE_POINTER: + return decode_pointer_field(stream, wire_type, field); + + case PB_ATYPE_CALLBACK: + return decode_callback_field(stream, wire_type, field); + + default: + PB_RETURN_ERROR(stream, "invalid field type"); + } +} + +/* Default handler for extension fields. Expects to have a pb_msgdesc_t + * pointer in the extension->type->arg field, pointing to a message with + * only one field in it. */ +static bool checkreturn default_extension_decoder(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, + pb_wire_type_t wire_type) { + pb_field_iter_t iter; + + if (!pb_field_iter_begin_extension(&iter, extension)) PB_RETURN_ERROR(stream, "invalid extension"); + + if (iter.tag != tag || !iter.message) return true; + + extension->found = true; + return decode_field(stream, wire_type, &iter); +} + +/* Try to decode an unknown field as an extension field. Tries each extension + * decoder in turn, until one of them handles the field or loop ends. */ +static bool checkreturn decode_extension(pb_istream_t *stream, uint32_t tag, pb_wire_type_t wire_type, + pb_extension_t *extension) { + size_t pos = stream->bytes_left; + + while (extension != NULL && pos == stream->bytes_left) { + bool status; + if (extension->type->decode) + status = extension->type->decode(stream, extension, tag, wire_type); + else + status = default_extension_decoder(stream, extension, tag, wire_type); + + if (!status) return false; + + extension = extension->next; + } + + return true; +} + +/* Initialize message fields to default values, recursively */ +static bool pb_field_set_to_default(pb_field_iter_t *field) { + pb_type_t type; + type = field->type; + + if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) { + pb_extension_t *ext = *(pb_extension_t *const *)field->pData; + while (ext != NULL) { + pb_field_iter_t ext_iter; + if (pb_field_iter_begin_extension(&ext_iter, ext)) { + ext->found = false; + if (!pb_message_set_to_defaults(&ext_iter)) return false; + } + ext = ext->next; + } + } else if (PB_ATYPE(type) == PB_ATYPE_STATIC) { + bool init_data = true; + if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL && field->pSize != NULL) { + /* Set has_field to false. Still initialize the optional field + * itself also. */ + *(bool *)field->pSize = false; + } else if (PB_HTYPE(type) == PB_HTYPE_REPEATED || PB_HTYPE(type) == PB_HTYPE_ONEOF) { + /* REPEATED: Set array count to 0, no need to initialize contents. + ONEOF: Set which_field to 0. */ + *(pb_size_t *)field->pSize = 0; + init_data = false; + } + + if (init_data) { + const bool isSubmsg = PB_LTYPE_IS_SUBMSG(field->type); + const pb_msgdesc_t *tmp = (const pb_msgdesc_t *)PIC(field->submsg_desc); + const bool validDefaultValue = tmp != NULL && tmp->default_value != NULL; + const bool validFieldCallback = tmp != NULL && tmp->field_callback != NULL; + const bool validSubmsgInfo = tmp != NULL && tmp->submsg_info != NULL; + + if (isSubmsg && (validDefaultValue || validFieldCallback || validSubmsgInfo)) { + /* Initialize submessage to defaults. + * Only needed if it has default values + * or callback/submessage fields. */ + pb_field_iter_t submsg_iter; + if (pb_field_iter_begin(&submsg_iter, field->submsg_desc, field->pData)) { + if (!pb_message_set_to_defaults(&submsg_iter)) return false; + } + } else { + /* Initialize to zeros */ + memset(field->pData, 0, (size_t)field->data_size); + } + } + } else if (PB_ATYPE(type) == PB_ATYPE_POINTER) { + /* Initialize the pointer to NULL. */ + *(void **)field->pField = NULL; + + /* Initialize array count to 0. */ + if (PB_HTYPE(type) == PB_HTYPE_REPEATED || PB_HTYPE(type) == PB_HTYPE_ONEOF) { + *(pb_size_t *)field->pSize = 0; + } + } else if (PB_ATYPE(type) == PB_ATYPE_CALLBACK) { + /* Don't overwrite callback */ + } + + return true; +} + +static bool pb_message_set_to_defaults(pb_field_iter_t *iter) { + pb_istream_t defstream = PB_ISTREAM_EMPTY; + uint32_t tag = 0; + pb_wire_type_t wire_type = PB_WT_VARINT; + bool eof; + + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter->descriptor); + + if (descriptor->default_value) { + defstream = pb_istream_from_buffer(PB_PROGMEM_READTYPE(const pb_byte_t *, descriptor->default_value, 0), (size_t)-1); + + if (!pb_decode_tag(&defstream, &wire_type, &tag, &eof)) return false; + } + + do { + if (!pb_field_set_to_default(iter)) return false; + + if (tag != 0 && iter->tag == tag) { + /* We have a default value for this field in the defstream */ + if (!decode_field(&defstream, wire_type, iter)) return false; + if (!pb_decode_tag(&defstream, &wire_type, &tag, &eof)) return false; + + if (iter->pSize) *(bool *)iter->pSize = false; + } + } while (pb_field_iter_next(iter)); + + return true; +} + +/********************* + * Decode all fields * + *********************/ + +static bool checkreturn pb_decode_inner(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, + unsigned int flags) { + uint32_t extension_range_start = 0; + pb_extension_t *extensions = NULL; + + ZEMU_TRACE() + + /* 'fixed_count_field' and 'fixed_count_size' track position of a repeated fixed + * count field. This can only handle _one_ repeated fixed count field that + * is unpacked and unordered among other (non repeated fixed count) fields. + */ + pb_size_t fixed_count_field = PB_SIZE_MAX; + pb_size_t fixed_count_size = 0; + pb_size_t fixed_count_total_size = 0; + + pb_fields_seen_t fields_seen = {{0, 0}}; + const uint32_t allbits = ~(uint32_t)0; + pb_field_iter_t iter; + + ZEMU_TRACE() + + if (pb_field_iter_begin(&iter, fields, dest_struct)) { + if ((flags & PB_DECODE_NOINIT) == 0) { + if (!pb_message_set_to_defaults(&iter)) PB_RETURN_ERROR(stream, "failed to set defaults"); + } + } + + while (stream->bytes_left) { + ZEMU_TRACE() + + uint32_t tag; + pb_wire_type_t wire_type; + bool eof; + + if (!pb_decode_tag(stream, &wire_type, &tag, &eof)) { + if (eof) + break; + else + return false; + } + + if (tag == 0) { + if (flags & PB_DECODE_NULLTERMINATED) { + break; + } else { + PB_RETURN_ERROR(stream, "zero tag"); + } + } + + ZEMU_TRACE() + const bool tag_found = pb_field_iter_find(&iter, tag); + ZEMU_TRACE() + const bool type_is_extension = PB_LTYPE(iter.type) == PB_LTYPE_EXTENSION; + ZEMU_TRACE() + + if (!tag_found || type_is_extension) { + ZEMU_TRACE() + + /* No match found, check if it matches an extension. */ + if (extension_range_start == 0) { + if (pb_field_iter_find_extension(&iter)) { + extensions = *(pb_extension_t *const *)iter.pData; + extension_range_start = iter.tag; + } + + if (!extensions) { + extension_range_start = (uint32_t)-1; + } + } + + if (tag >= extension_range_start) { + size_t pos = stream->bytes_left; + + if (!decode_extension(stream, tag, wire_type, extensions)) return false; + + if (pos != stream->bytes_left) { + /* The field was handled */ + continue; + } + } + + /* No match found, skip data */ + if (!pb_skip_field(stream, wire_type)) return false; + continue; + } + + ZEMU_TRACE() + + /* If a repeated fixed count field was found, get size from + * 'fixed_count_field' as there is no counter contained in the struct. + */ + if (PB_HTYPE(iter.type) == PB_HTYPE_REPEATED && iter.pSize == &iter.array_size) { + if (fixed_count_field != iter.index) { + /* If the new fixed count field does not match the previous one, + * check that the previous one is NULL or that it finished + * receiving all the expected data. + */ + if (fixed_count_field != PB_SIZE_MAX && fixed_count_size != fixed_count_total_size) { + PB_RETURN_ERROR(stream, "wrong size for fixed count field"); + } + + fixed_count_field = iter.index; + fixed_count_size = 0; + fixed_count_total_size = iter.array_size; + } + + iter.pSize = &fixed_count_size; + } + + ZEMU_TRACE() + + if (PB_HTYPE(iter.type) == PB_HTYPE_REQUIRED && iter.required_field_index < PB_MAX_REQUIRED_FIELDS) { + uint32_t tmp = ((uint32_t)1 << (iter.required_field_index & 31)); + fields_seen.bitfield[iter.required_field_index >> 5] |= tmp; + } + + ZEMU_TRACE() + + if (!decode_field(stream, wire_type, &iter)) return false; + } + + ZEMU_TRACE() + + /* Check that all elements of the last decoded fixed count field were present. */ + if (fixed_count_field != PB_SIZE_MAX && fixed_count_size != fixed_count_total_size) { + PB_RETURN_ERROR(stream, "wrong size for fixed count field"); + } + + ZEMU_TRACE() + + /* Check that all required fields were present. */ + { + ZEMU_TRACE() + + const pb_msgdesc_t *descriptor = (const pb_msgdesc_t *)PIC(iter.descriptor); + pb_size_t req_field_count = descriptor->required_field_count; + + ZEMU_TRACE() + + if (req_field_count > 0) { + pb_size_t i; + + ZEMU_TRACE() + + if (req_field_count > PB_MAX_REQUIRED_FIELDS) req_field_count = PB_MAX_REQUIRED_FIELDS; + + ZEMU_TRACE() + + /* Check the whole words */ + for (i = 0; i < (req_field_count >> 5); i++) { + if (fields_seen.bitfield[i] != allbits) PB_RETURN_ERROR(stream, "missing required field"); + } + + ZEMU_TRACE() + + /* Check the remaining bits (if any) */ + if ((req_field_count & 31) != 0) { + if (fields_seen.bitfield[req_field_count >> 5] != + (allbits >> (uint_least8_t)(32 - (req_field_count & 31)))) { + PB_RETURN_ERROR(stream, "missing required field"); + } + } + } + } + + ZEMU_TRACE() + + return true; +} + +bool checkreturn pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags) { + bool status; + + if ((flags & PB_DECODE_DELIMITED) == 0) { + status = pb_decode_inner(stream, fields, dest_struct, flags); + } else { + pb_istream_t substream; + if (!pb_make_string_substream(stream, &substream)) return false; + + status = pb_decode_inner(&substream, fields, dest_struct, flags); + + if (!pb_close_string_substream(stream, &substream)) return false; + } + +#ifdef PB_ENABLE_MALLOC + if (!status) pb_release(fields, dest_struct); +#endif + + return status; +} + +bool checkreturn pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct) { + bool status; + + status = pb_decode_inner(stream, fields, dest_struct, 0); + +#ifdef PB_ENABLE_MALLOC + if (!status) pb_release(fields, dest_struct); +#endif + + return status; +} + +#ifdef PB_ENABLE_MALLOC +/* Given an oneof field, if there has already been a field inside this oneof, + * release it before overwriting with a different one. */ +static bool pb_release_union_field(pb_istream_t *stream, pb_field_iter_t *field) { + pb_field_iter_t old_field = *field; + pb_size_t old_tag = *(pb_size_t *)field->pSize; /* Previous which_ value */ + pb_size_t new_tag = field->tag; /* New which_ value */ + + if (old_tag == 0) return true; /* Ok, no old data in union */ + + if (old_tag == new_tag) return true; /* Ok, old data is of same type => merge */ + + /* Release old data. The find can fail if the message struct contains + * invalid data. */ + if (!pb_field_iter_find(&old_field, old_tag)) PB_RETURN_ERROR(stream, "invalid union tag"); + + pb_release_single_field(&old_field); + + if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) { + /* Initialize the pointer to NULL to make sure it is valid + * even in case of error return. */ + *(void **)field->pField = NULL; + field->pData = NULL; + } + + return true; +} + +static void pb_release_single_field(pb_field_iter_t *field) { + pb_type_t type; + type = field->type; + + if (PB_HTYPE(type) == PB_HTYPE_ONEOF) { + if (*(pb_size_t *)field->pSize != field->tag) return; /* This is not the current field in the union */ + } + + /* Release anything contained inside an extension or submsg. + * This has to be done even if the submsg itself is statically + * allocated. */ + if (PB_LTYPE(type) == PB_LTYPE_EXTENSION) { + /* Release fields from all extensions in the linked list */ + pb_extension_t *ext = *(pb_extension_t **)field->pData; + while (ext != NULL) { + pb_field_iter_t ext_iter; + if (pb_field_iter_begin_extension(&ext_iter, ext)) { + pb_release_single_field(&ext_iter); + } + ext = ext->next; + } + } else if (PB_LTYPE_IS_SUBMSG(type) && PB_ATYPE(type) != PB_ATYPE_CALLBACK) { + /* Release fields in submessage or submsg array */ + pb_size_t count = 1; + + if (PB_ATYPE(type) == PB_ATYPE_POINTER) { + field->pData = *(void **)field->pField; + } else { + field->pData = field->pField; + } + + if (PB_HTYPE(type) == PB_HTYPE_REPEATED) { + count = *(pb_size_t *)field->pSize; + + if (PB_ATYPE(type) == PB_ATYPE_STATIC && count > field->array_size) { + /* Protect against corrupted _count fields */ + count = field->array_size; + } + } + + if (field->pData) { + for (; count > 0; count--) { + pb_release(field->submsg_desc, field->pData); + field->pData = (char *)field->pData + field->data_size; + } + } + } + + if (PB_ATYPE(type) == PB_ATYPE_POINTER) { + if (PB_HTYPE(type) == PB_HTYPE_REPEATED && (PB_LTYPE(type) == PB_LTYPE_STRING || PB_LTYPE(type) == PB_LTYPE_BYTES)) { + /* Release entries in repeated string or bytes array */ + void **pItem = *(void ***)field->pField; + pb_size_t count = *(pb_size_t *)field->pSize; + for (; count > 0; count--) { + pb_free(*pItem); + *pItem++ = NULL; + } + } + + if (PB_HTYPE(type) == PB_HTYPE_REPEATED) { + /* We are going to release the array, so set the size to 0 */ + *(pb_size_t *)field->pSize = 0; + } + + /* Release main pointer */ + pb_free(*(void **)field->pField); + *(void **)field->pField = NULL; + } +} + +void pb_release(const pb_msgdesc_t *fields, void *dest_struct) { + pb_field_iter_t iter; + + if (!dest_struct) return; /* Ignore NULL pointers, similar to free() */ + + if (!pb_field_iter_begin(&iter, fields, dest_struct)) return; /* Empty message type */ + + do { + pb_release_single_field(&iter); + } while (pb_field_iter_next(&iter)); +} +#endif + +/* Field decoders */ + +bool pb_decode_bool(pb_istream_t *stream, bool *dest) { + uint32_t value; + if (!pb_decode_varint32(stream, &value)) return false; + + *(bool *)dest = (value != 0); + return true; +} + +bool pb_decode_svarint(pb_istream_t *stream, pb_int64_t *dest) { + pb_uint64_t value; + if (!pb_decode_varint(stream, &value)) return false; + + if (value & 1) + *dest = (pb_int64_t)(~(value >> 1)); + else + *dest = (pb_int64_t)(value >> 1); + + return true; +} + +bool pb_decode_fixed32(pb_istream_t *stream, void *dest) { + union { + uint32_t fixed32; + pb_byte_t bytes[4]; + } u; + + if (!pb_read(stream, u.bytes, 4)) return false; + +#if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && CHAR_BIT == 8 + /* fast path - if we know that we're on little endian, assign directly */ + *(uint32_t *)dest = u.fixed32; +#else + *(uint32_t *)dest = ((uint32_t)u.bytes[0] << 0) | ((uint32_t)u.bytes[1] << 8) | ((uint32_t)u.bytes[2] << 16) | + ((uint32_t)u.bytes[3] << 24); +#endif + return true; +} + +#ifndef PB_WITHOUT_64BIT + +bool pb_decode_fixed64(pb_istream_t *stream, void *dest) { + union { + uint64_t fixed64; + pb_byte_t bytes[8]; + } u; + + if (!pb_read(stream, u.bytes, 8)) return false; + +#if defined(__BYTE_ORDER) && __BYTE_ORDER == __LITTLE_ENDIAN && CHAR_BIT == 8 + /* fast path - if we know that we're on little endian, assign directly */ + *(uint64_t *)dest = u.fixed64; +#else + *(uint64_t *)dest = ((uint64_t)u.bytes[0] << 0) | ((uint64_t)u.bytes[1] << 8) | ((uint64_t)u.bytes[2] << 16) | + ((uint64_t)u.bytes[3] << 24) | ((uint64_t)u.bytes[4] << 32) | ((uint64_t)u.bytes[5] << 40) | + ((uint64_t)u.bytes[6] << 48) | ((uint64_t)u.bytes[7] << 56); +#endif + return true; +} + +#endif + +static bool checkreturn pb_dec_bool(pb_istream_t *stream, const pb_field_iter_t *field) { + return pb_decode_bool(stream, (bool *)field->pData); +} + +static bool checkreturn pb_dec_varint(pb_istream_t *stream, const pb_field_iter_t *field) { + if (PB_LTYPE(field->type) == PB_LTYPE_UVARINT) { + pb_uint64_t value, clamped; + if (!pb_decode_varint(stream, &value)) return false; + + /* Cast to the proper field size, while checking for overflows */ + if (field->data_size == sizeof(pb_uint64_t)) + clamped = *(pb_uint64_t *)field->pData = value; + else if (field->data_size == sizeof(uint32_t)) + clamped = *(uint32_t *)field->pData = (uint32_t)value; + else if (field->data_size == sizeof(uint_least16_t)) + clamped = *(uint_least16_t *)field->pData = (uint_least16_t)value; + else if (field->data_size == sizeof(uint_least8_t)) + clamped = *(uint_least8_t *)field->pData = (uint_least8_t)value; + else + PB_RETURN_ERROR(stream, "invalid data_size"); + + if (clamped != value) PB_RETURN_ERROR(stream, "integer too large"); + + return true; + } else { + pb_uint64_t value; + pb_int64_t svalue; + pb_int64_t clamped; + + if (PB_LTYPE(field->type) == PB_LTYPE_SVARINT) { + if (!pb_decode_svarint(stream, &svalue)) return false; + } else { + if (!pb_decode_varint(stream, &value)) return false; + + /* See issue 97: Google's C++ protobuf allows negative varint values to + * be cast as int32_t, instead of the int64_t that should be used when + * encoding. Nanopb versions before 0.2.5 had a bug in encoding. In order to + * not break decoding of such messages, we cast <=32 bit fields to + * int32_t first to get the sign correct. + */ + if (field->data_size == sizeof(pb_int64_t)) + svalue = (pb_int64_t)value; + else + svalue = (int32_t)value; + } + + /* Cast to the proper field size, while checking for overflows */ + if (field->data_size == sizeof(pb_int64_t)) + clamped = *(pb_int64_t *)field->pData = svalue; + else if (field->data_size == sizeof(int32_t)) + clamped = *(int32_t *)field->pData = (int32_t)svalue; + else if (field->data_size == sizeof(int_least16_t)) + clamped = *(int_least16_t *)field->pData = (int_least16_t)svalue; + else if (field->data_size == sizeof(int_least8_t)) + clamped = *(int_least8_t *)field->pData = (int_least8_t)svalue; + else + PB_RETURN_ERROR(stream, "invalid data_size"); + + if (clamped != svalue) PB_RETURN_ERROR(stream, "integer too large"); + + return true; + } +} + +static bool checkreturn pb_dec_bytes(pb_istream_t *stream, const pb_field_iter_t *field) { + uint32_t size; + size_t alloc_size; + pb_bytes_array_t *dest; + + if (!pb_decode_varint32(stream, &size)) return false; + + if (size > PB_SIZE_MAX) PB_RETURN_ERROR(stream, "bytes overflow"); + + alloc_size = PB_BYTES_ARRAY_T_ALLOCSIZE(size); + if (size > alloc_size) PB_RETURN_ERROR(stream, "size too large"); + + if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) { +#ifndef PB_ENABLE_MALLOC + PB_RETURN_ERROR(stream, "no malloc support"); +#else + if (stream->bytes_left < size) PB_RETURN_ERROR(stream, "end-of-stream"); + + if (!allocate_field(stream, field->pData, alloc_size, 1)) return false; + dest = *(pb_bytes_array_t **)field->pData; +#endif + } else { + if (alloc_size > field->data_size) PB_RETURN_ERROR(stream, "bytes overflow"); + dest = (pb_bytes_array_t *)field->pData; + } + + dest->size = (pb_size_t)size; + return pb_read(stream, dest->bytes, (size_t)size); +} + +static bool checkreturn pb_dec_string(pb_istream_t *stream, const pb_field_iter_t *field) { + uint32_t size; + size_t alloc_size; + pb_byte_t *dest = (pb_byte_t *)field->pData; + + if (!pb_decode_varint32(stream, &size)) return false; + + if (size == (uint32_t)-1) PB_RETURN_ERROR(stream, "size too large"); + + /* Space for null terminator */ + alloc_size = (size_t)(size + 1); + + if (alloc_size < size) PB_RETURN_ERROR(stream, "size too large"); + + if (PB_ATYPE(field->type) == PB_ATYPE_POINTER) { +#ifndef PB_ENABLE_MALLOC + PB_RETURN_ERROR(stream, "no malloc support"); +#else + if (stream->bytes_left < size) PB_RETURN_ERROR(stream, "end-of-stream"); + + if (!allocate_field(stream, field->pData, alloc_size, 1)) return false; + dest = *(pb_byte_t **)field->pData; +#endif + } else { + if (alloc_size > field->data_size) PB_RETURN_ERROR(stream, "string overflow"); + } + + dest[size] = 0; + + if (!pb_read(stream, dest, (size_t)size)) return false; + +#ifdef PB_VALIDATE_UTF8 + if (!pb_validate_utf8((const char *)dest)) PB_RETURN_ERROR(stream, "invalid utf8"); +#endif + + return true; +} + +static bool checkreturn pb_dec_submessage(pb_istream_t *stream, const pb_field_iter_t *field) { + bool status = true; + bool submsg_consumed = false; + pb_istream_t substream; + + if (!pb_make_string_substream(stream, &substream)) return false; + + if (field->submsg_desc == NULL) PB_RETURN_ERROR(stream, "invalid field descriptor"); + + /* Submessages can have a separate message-level callback that is called + * before decoding the message. Typically it is used to set callback fields + * inside oneofs. */ + if (PB_LTYPE(field->type) == PB_LTYPE_SUBMSG_W_CB && field->pSize != NULL) { + /* Message callback is stored right before pSize. */ + pb_callback_t *callback = (pb_callback_t *)field->pSize - 1; + if (callback->funcs.decode) { + status = callback->funcs.decode(&substream, field, &callback->arg); + + if (substream.bytes_left == 0) { + submsg_consumed = true; + } + } + } + + /* Now decode the submessage contents */ + if (status && !submsg_consumed) { + unsigned int flags = 0; + + /* Static required/optional fields are already initialized by top-level + * pb_decode(), no need to initialize them again. */ + if (PB_ATYPE(field->type) == PB_ATYPE_STATIC && PB_HTYPE(field->type) != PB_HTYPE_REPEATED) { + flags = PB_DECODE_NOINIT; + } + + status = pb_decode_inner(&substream, field->submsg_desc, field->pData, flags); + } + + if (!pb_close_string_substream(stream, &substream)) return false; + + return status; +} + +static bool checkreturn pb_dec_fixed_length_bytes(pb_istream_t *stream, const pb_field_iter_t *field) { + uint32_t size; + + if (!pb_decode_varint32(stream, &size)) return false; + + if (size > PB_SIZE_MAX) PB_RETURN_ERROR(stream, "bytes overflow"); + + if (size == 0) { + /* As a special case, treat empty bytes string as all zeros for fixed_length_bytes. */ + memset(field->pData, 0, (size_t)field->data_size); + return true; + } + + if (size != field->data_size) PB_RETURN_ERROR(stream, "incorrect fixed length bytes size"); + + return pb_read(stream, (pb_byte_t *)field->pData, (size_t)field->data_size); +} + +#ifdef PB_CONVERT_DOUBLE_FLOAT +bool pb_decode_double_as_float(pb_istream_t *stream, float *dest) { + uint_least8_t sign; + int exponent; + uint32_t mantissa; + uint64_t value; + union { + float f; + uint32_t i; + } out; + + if (!pb_decode_fixed64(stream, &value)) return false; + + /* Decompose input value */ + sign = (uint_least8_t)((value >> 63) & 1); + exponent = (int)((value >> 52) & 0x7FF) - 1023; + mantissa = (value >> 28) & 0xFFFFFF; /* Highest 24 bits */ + + /* Figure if value is in range representable by floats. */ + if (exponent == 1024) { + /* Special value */ + exponent = 128; + mantissa >>= 1; + } else { + if (exponent > 127) { + /* Too large, convert to infinity */ + exponent = 128; + mantissa = 0; + } else if (exponent < -150) { + /* Too small, convert to zero */ + exponent = -127; + mantissa = 0; + } else if (exponent < -126) { + /* Denormalized */ + mantissa |= 0x1000000; + mantissa >>= (-126 - exponent); + exponent = -127; + } + + /* Round off mantissa */ + mantissa = (mantissa + 1) >> 1; + + /* Check if mantissa went over 2.0 */ + if (mantissa & 0x800000) { + exponent += 1; + mantissa &= 0x7FFFFF; + mantissa >>= 1; + } + } + + /* Combine fields */ + out.i = mantissa; + out.i |= (uint32_t)(exponent + 127) << 23; + out.i |= (uint32_t)sign << 31; + + *dest = out.f; + return true; +} +#endif diff --git a/app/src/nanopb_tiny/pb_decode.h b/app/src/nanopb_tiny/pb_decode.h new file mode 100644 index 0000000..1679925 --- /dev/null +++ b/app/src/nanopb_tiny/pb_decode.h @@ -0,0 +1,209 @@ +/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c. + * The main function is pb_decode. You also need an input stream, and the + * field descriptions created by nanopb_generator.py. + */ + +#ifndef PB_DECODE_H_INCLUDED +#define PB_DECODE_H_INCLUDED + +#include "pb.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Structure for defining custom input streams. You will need to provide + * a callback function to read the bytes from your storage, which can be + * for example a file or a network socket. + * + * The callback must conform to these rules: + * + * 1) Return false on IO errors. This will cause decoding to abort. + * 2) You can use state to store your own data (e.g. buffer pointer), + * and rely on pb_read to verify that no-body reads past bytes_left. + * 3) Your callback may be used with substreams, in which case bytes_left + * is different than from the main stream. Don't use bytes_left to compute + * any pointers. + */ +struct pb_istream_s { +#ifdef PB_BUFFER_ONLY + /* Callback pointer is not used in buffer-only configuration. + * Having an int pointer here allows binary compatibility but + * gives an error if someone tries to assign callback function. + */ + int *callback; +#else + + bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count); + +#endif + + void *state; /* Free field for use by callback implementation */ + size_t bytes_left; + +#ifndef PB_NO_ERRMSG + const char *errmsg; +#endif +}; + +#ifndef PB_NO_ERRMSG +#define PB_ISTREAM_EMPTY \ + { 0, 0, 0, 0 } +#else +#define PB_ISTREAM_EMPTY \ + { 0, 0, 0 } +#endif + +/*************************** + * Main decoding functions * + ***************************/ + +/* Decode a single protocol buffers message from input stream into a C structure. + * Returns true on success, false on any failure. + * The actual struct pointed to by dest must match the description in fields. + * Callback fields of the destination structure must be initialized by caller. + * All other fields will be initialized by this function. + * + * Example usage: + * MyMessage msg = {}; + * uint8_t buffer[64]; + * pb_istream_t stream; + * + * // ... read some data into buffer ... + * + * stream = pb_istream_from_buffer(buffer, count); + * pb_decode(&stream, MyMessage_fields, &msg); + */ +bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct); + +/* Extended version of pb_decode, with several options to control + * the decoding process: + * + * PB_DECODE_NOINIT: Do not initialize the fields to default values. + * This is slightly faster if you do not need the default + * values and instead initialize the structure to 0 using + * e.g. memset(). This can also be used for merging two + * messages, i.e. combine already existing data with new + * values. + * + * PB_DECODE_DELIMITED: Input message starts with the message size as varint. + * Corresponds to parseDelimitedFrom() in Google's + * protobuf API. + * + * PB_DECODE_NULLTERMINATED: Stop reading when field tag is read as 0. This allows + * reading null terminated messages. + * NOTE: Until nanopb-0.4.0, pb_decode() also allows + * null-termination. This behaviour is not supported in + * most other protobuf implementations, so PB_DECODE_DELIMITED + * is a better option for compatibility. + * + * Multiple flags can be combined with bitwise or (| operator) + */ +#define PB_DECODE_NOINIT 0x01U +#define PB_DECODE_DELIMITED 0x02U +#define PB_DECODE_NULLTERMINATED 0x04U + +bool pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags); + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define pb_decode_noinit(s, f, d) pb_decode_ex(s, f, d, PB_DECODE_NOINIT) +#define pb_decode_delimited(s, f, d) pb_decode_ex(s, f, d, PB_DECODE_DELIMITED) +#define pb_decode_delimited_noinit(s, f, d) pb_decode_ex(s, f, d, PB_DECODE_DELIMITED | PB_DECODE_NOINIT) +#define pb_decode_nullterminated(s, f, d) pb_decode_ex(s, f, d, PB_DECODE_NULLTERMINATED) + +#ifdef PB_ENABLE_MALLOC +/* Release any allocated pointer fields. If you use dynamic allocation, you should + * call this for any successfully decoded message when you are done with it. If + * pb_decode() returns with an error, the message is already released. + */ +void pb_release(const pb_msgdesc_t *fields, void *dest_struct); +#else +/* Allocation is not supported, so release is no-op */ +#define pb_release(fields, dest_struct) \ + PB_UNUSED(fields); \ + PB_UNUSED(dest_struct); +#endif + +/************************************** + * Functions for manipulating streams * + **************************************/ + +/* Create an input stream for reading from a memory buffer. + * + * msglen should be the actual length of the message, not the full size of + * allocated buffer. + * + * Alternatively, you can use a custom stream that reads directly from e.g. + * a file or a network socket. + */ +pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen); + +/* Function to read from a pb_istream_t. You can use this if you need to + * read some custom header data, or to read data in field callbacks. + */ +bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count); + +/************************************************ + * Helper functions for writing field callbacks * + ************************************************/ + +/* Decode the tag for the next field in the stream. Gives the wire type and + * field tag. At end of the message, returns false and sets eof to true. */ +bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof); + +/* Skip the field payload data, given the wire type. */ +bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type); + +/* Decode an integer in the varint format. This works for enum, int32, + * int64, uint32 and uint64 field types. */ +#ifndef PB_WITHOUT_64BIT + +bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest); + +#else +#define pb_decode_varint pb_decode_varint32 +#endif + +/* Decode an integer in the varint format. This works for enum, int32, + * and uint32 field types. */ +bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest); + +/* Decode a bool value in varint format. */ +bool pb_decode_bool(pb_istream_t *stream, bool *dest); + +/* Decode an integer in the zig-zagged svarint format. This works for sint32 + * and sint64. */ +#ifndef PB_WITHOUT_64BIT + +bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest); + +#else +bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest); +#endif + +/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to + * a 4-byte wide C variable. */ +bool pb_decode_fixed32(pb_istream_t *stream, void *dest); + +#ifndef PB_WITHOUT_64BIT +/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to + * a 8-byte wide C variable. */ +bool pb_decode_fixed64(pb_istream_t *stream, void *dest); + +#endif + +#ifdef PB_CONVERT_DOUBLE_FLOAT +/* Decode a double value into float variable. */ +bool pb_decode_double_as_float(pb_istream_t *stream, float *dest); +#endif + +/* Make a limited-length substream for reading a PB_WT_STRING field. */ +bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream); + +bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/parser.c b/app/src/parser.c new file mode 100644 index 0000000..b53a429 --- /dev/null +++ b/app/src/parser.c @@ -0,0 +1,122 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "parser.h" + +#include +#include +#include +#include + +#include "coin.h" +#include "crypto.h" +#include "parser_common.h" +#include "parser_impl.h" + +parser_error_t parser_init_context(parser_context_t *ctx, const uint8_t *buffer, uint16_t bufferSize) { + ctx->offset = 0; + ctx->buffer = NULL; + ctx->bufferLen = 0; + + if (bufferSize == 0 || buffer == NULL) { + // Not available, use defaults + return parser_init_context_empty; + } + + ctx->buffer = buffer; + ctx->bufferLen = bufferSize; + return parser_ok; +} + +parser_error_t parser_parse(parser_context_t *ctx, const uint8_t *data, size_t dataLen, parser_tx_t *tx_obj) { + CHECK_ERROR(parser_init_context(ctx, data, dataLen)) + ctx->tx_obj = tx_obj; + return _read(ctx, tx_obj); +} + +parser_error_t parser_validate(parser_context_t *ctx) { + // Iterate through all items to check that all can be shown and are valid + uint8_t numItems = 0; + CHECK_ERROR(parser_getNumItems(ctx, &numItems)) + + char tmpKey[40] = {0}; + char tmpVal[40] = {0}; + + for (uint8_t idx = 0; idx < numItems; idx++) { + uint8_t pageCount = 0; + CHECK_ERROR(parser_getItem(ctx, idx, tmpKey, sizeof(tmpKey), tmpVal, sizeof(tmpVal), 0, &pageCount)) + } + return parser_ok; +} + +parser_error_t parser_getNumItems(const parser_context_t *ctx, uint8_t *num_items) { + // #{TODO} --> function to retrieve num Items + // *num_items = _getNumItems(); + UNUSED(ctx); + *num_items = 1; + if (*num_items == 0) { + return parser_unexpected_number_items; + } + return parser_ok; +} + +static void cleanOutput(char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen) { + MEMZERO(outKey, outKeyLen); + MEMZERO(outVal, outValLen); + snprintf(outKey, outKeyLen, "?"); + snprintf(outVal, outValLen, " "); +} + +static parser_error_t checkSanity(uint8_t numItems, uint8_t displayIdx) { + if (displayIdx >= numItems) { + return parser_display_idx_out_of_range; + } + return parser_ok; +} + +parser_error_t parser_getItem(const parser_context_t *ctx, uint8_t displayIdx, char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, uint8_t pageIdx, uint8_t *pageCount) { + UNUSED(pageIdx); + *pageCount = 1; + uint8_t numItems = 0; + CHECK_ERROR(parser_getNumItems(ctx, &numItems)) + CHECK_APP_CANARY() + + CHECK_ERROR(checkSanity(numItems, displayIdx)) + cleanOutput(outKey, outKeyLen, outVal, outValLen); + + switch (displayIdx) { + case 0: + // Display Item 0 + snprintf(outKey, outKeyLen, "Title #0"); + snprintf(outVal, outValLen, "Value #0"); + return parser_ok; + case 1: + // Display Item 1 + snprintf(outKey, outKeyLen, "Title #1"); + snprintf(outVal, outValLen, "Value #1"); + return parser_ok; + case 10: + // Display Item 10 + snprintf(outKey, outKeyLen, "Title #N"); + snprintf(outVal, outValLen, "Value #N"); + return parser_ok; + default: + break; + } + + return parser_display_idx_out_of_range; +} diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c new file mode 100644 index 0000000..24bb272 --- /dev/null +++ b/app/src/parser_impl.c @@ -0,0 +1,376 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "parser_impl.h" + +#include "parser_interface.h" +#include "pb_common.h" +#include "pb_decode.h" +#include "protobuf/penumbra/core/transaction/v1/transaction.pb.h" +#include "zxformat.h" + +static bool decode_field(pb_istream_t *stream, const pb_field_t *field, void **arg); +static bool decode_action(pb_istream_t *stream, const pb_field_t *field, void **arg); +static bool decode_detection_data(pb_istream_t *stream, const pb_field_t *field, void **arg); +static void setup_decode_field(pb_callback_t *callback, decode_memo_field_arg_t *arg, Bytes_t *bytes, uint16_t expected_size, + bool check_size); +static parser_error_t extract_data_from_tag(Bytes_t *in, Bytes_t *out, uint32_t tag); + +static uint16_t actions_qty = 0; +static uint16_t detection_data_qty = 0; + +void print_buffer(Bytes_t *buffer, const char *title) { +#if defined(LEDGER_SPECIFIC) + ZEMU_LOGF(50, "%s\n", title); + char print[1000] = {0}; + array_to_hexstr(print, sizeof(print), buffer->ptr, buffer->len); + ZEMU_LOGF(1000, "%s\n", print); +#else + printf("%s %d: ", title, buffer->len); + for (uint16_t i = 0; i < buffer->len; i++) { + printf("%02x", buffer->ptr[i]); + } + printf("\n"); +#endif +} + +void print_string(const char *str) { +#if defined(LEDGER_SPECIFIC) + ZEMU_LOGF(100, "%s\n", str); +#else + printf("%s\n", str); +#endif +} + +bool decode_field(pb_istream_t *stream, const pb_field_t *field, void **arg) { + if (stream->bytes_left == 0 || arg == NULL) return false; + + decode_memo_field_arg_t *decode_arg = (decode_memo_field_arg_t *)*arg; + if (decode_arg == NULL || decode_arg->bytes == NULL) { + return false; + } + + if (decode_arg->check_size && stream->bytes_left != decode_arg->expected_size) { + return false; + } + + const uint8_t *first_byte = stream->state; + uint16_t data_size = stream->bytes_left; + + decode_arg->bytes->ptr = first_byte; + decode_arg->bytes->len = data_size; + + return true; +} + +void setup_decode_field(pb_callback_t *callback, decode_memo_field_arg_t *arg, Bytes_t *bytes, uint16_t expected_size, + bool check_size) { + arg->bytes = bytes; + arg->expected_size = expected_size; + arg->check_size = check_size; + callback->funcs.decode = &decode_field; + callback->arg = arg; +} + +bool decode_action(pb_istream_t *stream, const pb_field_t *field, void **arg) { + penumbra_core_transaction_v1_ActionPlan action = penumbra_core_transaction_v1_ActionPlan_init_default; + + action_t *decode_arg = (action_t *)*arg; + if (decode_arg == NULL) { + return false; + } + + if (actions_qty >= ACTIONS_QTY) { + return false; + } + + const uint8_t *first_byte = stream->state; + uint16_t data_size = stream->bytes_left; + decode_arg[actions_qty].action.ptr = first_byte + 2; + decode_arg[actions_qty].action.len = data_size - 2; + + if (!pb_decode(stream, penumbra_core_transaction_v1_ActionPlan_fields, &action)) { + return false; + } + decode_arg[actions_qty].action_type = action.which_action; + switch (action.which_action) { + case penumbra_core_transaction_v1_ActionPlan_spend_tag: + print_string("Spend action detected \n"); + break; + case penumbra_core_transaction_v1_ActionPlan_output_tag: + print_string("Output action detected\n"); + break; + case penumbra_core_transaction_v1_ActionPlan_swap_tag: + print_string("Swap action detected\n"); + break; + case penumbra_core_transaction_v1_ActionPlan_swap_claim_tag: + print_string("SwapClaim action detected\n"); + break; + case penumbra_core_transaction_v1_ActionPlan_validator_definition_tag: + print_string("Delegate action detected\n"); + break; + case penumbra_core_transaction_v1_ActionPlan_ibc_relay_action_tag: + print_string("Undelegate action detected\n"); + break; + case penumbra_core_transaction_v1_ActionPlan_proposal_submit_tag: + print_string("UndelegateClaim action detected\n"); + break; + default: + print_string("Unknown action detected\n"); + return false; + } + actions_qty++; + + return true; +} + +bool decode_detection_data(pb_istream_t *stream, const pb_field_t *field, void **arg) { + if (stream->bytes_left == 0 || arg == NULL) return false; + + if (detection_data_qty >= DETECTION_DATA_QTY) { + return false; + } + + penumbra_core_transaction_v1_CluePlan cluePlan = penumbra_core_transaction_v1_CluePlan_init_default; + decode_memo_field_arg_t rseed_arg, address_inner_arg, address_alt_bech32m_arg; + clue_plan_t *clue_plan_arg = (clue_plan_t *)*arg; + + setup_decode_field(&cluePlan.rseed, &rseed_arg, &clue_plan_arg[detection_data_qty].rseed, RSEED_SIZE, true); + setup_decode_field(&cluePlan.address.inner, &address_inner_arg, &clue_plan_arg[detection_data_qty].address.inner, + MEMO_ADDRESS_INNER_SIZE, true); + setup_decode_field(&cluePlan.address.alt_bech32m, &address_alt_bech32m_arg, + &clue_plan_arg[detection_data_qty].address.alt_bech32m, 0, false); + + if (!pb_decode(stream, penumbra_core_transaction_v1_CluePlan_fields, &cluePlan)) { + return false; + } + + clue_plan_arg[detection_data_qty].precision_bits = cluePlan.precision_bits; + + detection_data_qty++; + return true; +} + +parser_error_t extract_data_from_tag(Bytes_t *in, Bytes_t *out, uint32_t tag) { + const uint8_t *start = NULL; + const uint8_t *end = NULL; + bool eof = false; + + pb_istream_t scan_stream = pb_istream_from_buffer(in->ptr, in->len); + pb_wire_type_t wire_type; + uint32_t tag_internal; + while (pb_decode_tag(&scan_stream, &wire_type, &tag_internal, &eof) && !eof) { + if (tag_internal == tag) { + start = scan_stream.state; + if (!pb_skip_field(&scan_stream, wire_type)) { + return parser_unexpected_error; + } + end = scan_stream.state; + break; + } else { + if (!pb_skip_field(&scan_stream, wire_type)) { + return parser_unexpected_error; + } + } + } + + if (!start || !end) { + return parser_unexpected_error; + } + + out->ptr = start + 1; + out->len = end - start - 1; + + return parser_ok; +} + +// parser_error_t extract_data_array_from_tag(Bytes_t *in, Bytes_t out[], uint32_t tag) { +// const uint8_t *start = NULL; +// const uint8_t *end = NULL; +// bool eof = false; + +// pb_istream_t scan_stream = pb_istream_from_buffer(in->ptr, in->len); +// pb_wire_type_t wire_type; +// uint32_t tag_internal; +// size_t out_index = 0; + +// while (pb_decode_tag(&scan_stream, &wire_type, &tag_internal, &eof) && !eof) { +// if (tag_internal == tag) { +// start = scan_stream.state; +// if (!pb_skip_field(&scan_stream, wire_type)) { +// return parser_unexpected_error; +// } +// end = scan_stream.state; + +// if (!start || !end) { +// return parser_unexpected_error; +// } + +// out[out_index].ptr = start + 1; +// out[out_index].len = end - start - 1; +// out_index++; +// } else { +// if (!pb_skip_field(&scan_stream, wire_type)) { +// return parser_unexpected_error; +// } +// } +// } + +// return parser_ok; +// } + +// parser_error_t compute_detection_data(Bytes_t *detection_data, parser_tx_t *v) { +// uint16_t detection_data_bytes = DETECTION_DATA_SIZE; +// uint16_t clue_plans = detection_data->len / detection_data_bytes; + +// if (clue_plans > 1) { +// if ((detection_data->ptr[0] + 1 == clue_plans) || (clue_plans * detection_data_bytes + 1 == detection_data->len)) +// { +// for (uint16_t i = 0; i < clue_plans; i++) { +// v->plan.detection_data.clue_plans[i].ptr = detection_data->ptr + (i * detection_data_bytes + 1); +// v->plan.detection_data.clue_plans[i].len = DETECTION_DATA_SIZE; +// } +// } else { +// return parser_unexpected_error; +// } +// } else { +// v->plan.detection_data.clue_plans[0].ptr = detection_data->ptr; +// v->plan.detection_data.clue_plans[0].len = detection_data->len; +// } + +// return parser_ok; +// } + +// parser_error_t compute_actions(Bytes_t actions[], parser_tx_t *v) { +// for (uint16_t i = 0; i < ACTIONS_QTY; i++) { +// if (actions[i].len > 2) { +// v->plan.actions[i].action_type = actions[i].ptr[1] >> 3; +// // TODO: check if we have to parser each action +// v->plan.actions[i].action.ptr = actions[i].ptr + 2; +// v->plan.actions[i].action.len = actions[i].len - 2; +// } +// } + +// return parser_ok; +// } + +parser_error_t _read(parser_context_t *c, parser_tx_t *v) { + Bytes_t data; + data.ptr = c->buffer; + data.len = c->bufferLen; + actions_qty = 0; + detection_data_qty = 0; + + penumbra_core_transaction_v1_TransactionPlan request = penumbra_core_transaction_v1_TransactionPlan_init_default; + decode_memo_field_arg_t memo_key_arg, memo_text_arg, memo_return_address_inner_arg, memo_return_address_alt_bech32m_arg; + + // memo callbacks + setup_decode_field(&request.memo.key, &memo_key_arg, &v->plan.memo.key, MEMO_KEY_SIZE, true); + setup_decode_field(&request.memo.plaintext.text, &memo_text_arg, &v->plan.memo.plaintext.text, 0, false); + setup_decode_field(&request.memo.plaintext.return_address.inner, &memo_return_address_inner_arg, + &v->plan.memo.plaintext.return_address.inner, MEMO_ADDRESS_INNER_SIZE, true); + setup_decode_field(&request.memo.plaintext.return_address.alt_bech32m, &memo_return_address_alt_bech32m_arg, + &v->plan.memo.plaintext.return_address.alt_bech32m, 0, false); + + // actions callbacks + request.actions.funcs.decode = &decode_action; + request.actions.arg = &v->plan.actions; + + // detection data callbacks + request.detection_data.clue_plans.funcs.decode = &decode_detection_data; + request.detection_data.clue_plans.arg = &v->plan.detection_data.clue_plans; + + pb_istream_t stream = pb_istream_from_buffer(c->buffer, c->bufferLen); + CHECK_APP_CANARY() + const bool status = pb_decode(&stream, penumbra_core_transaction_v1_TransactionPlan_fields, &request); + if (!status) { + // TODO: improve handling errors from callbacks + if (actions_qty == ACTIONS_QTY) { + return parser_actions_overflow; + } + if (detection_data_qty == DETECTION_DATA_QTY) { + return parser_detection_data_overflow; + } + return parser_unexpected_error; + } + + // get transaction parameters + extract_data_from_tag(&data, &v->plan.transaction_parameters.parameters, + penumbra_core_transaction_v1_TransactionPlan_transaction_parameters_tag); + print_buffer(&v->plan.transaction_parameters.parameters, "real transaction parameters"); + + // print detection data + for (uint16_t i = 0; i < DETECTION_DATA_QTY; i++) { + print_buffer(&v->plan.detection_data.clue_plans[i].address.inner, "real detection data address inner"); + print_buffer(&v->plan.detection_data.clue_plans[i].address.alt_bech32m, "real detection data address alt bech32m"); + print_buffer(&v->plan.detection_data.clue_plans[i].rseed, "real detection data rseed"); + // printf("precision bits: %lu\n", v->plan.detection_data.clue_plans[i].precision_bits); + } + + // print actions + for (uint16_t i = 0; i < ACTIONS_QTY; i++) { + print_buffer(&v->plan.actions[i].action, "real actions"); + } + + // print memo + print_buffer(&v->plan.memo.key, "real memo key"); + print_buffer(&v->plan.memo.plaintext.text, "real memo plaintext text"); + print_buffer(&v->plan.memo.plaintext.return_address.inner, "real memo return address inner"); + print_buffer(&v->plan.memo.plaintext.return_address.alt_bech32m, "real memo return address alt bech32m"); + + compute_transaction_plan(&v->plan); + + return parser_unexpected_error; +} + +const char *parser_getErrorDescription(parser_error_t err) { + switch (err) { + case parser_ok: + return "No error"; + case parser_no_data: + return "No more data"; + case parser_init_context_empty: + return "Initialized empty context"; + case parser_unexpected_buffer_end: + return "Unexpected buffer end"; + case parser_unexpected_version: + return "Unexpected version"; + case parser_unexpected_characters: + return "Unexpected characters"; + case parser_unexpected_field: + return "Unexpected field"; + case parser_duplicated_field: + return "Unexpected duplicated field"; + case parser_value_out_of_range: + return "Value out of range"; + case parser_unexpected_chain: + return "Unexpected chain"; + case parser_missing_field: + return "missing field"; + + case parser_display_idx_out_of_range: + return "display index out of range"; + case parser_display_page_out_of_range: + return "display page out of range"; + case parser_actions_overflow: + return "actions overflow"; + case parser_detection_data_overflow: + return "detection data overflow"; + + default: + return "Unrecognized error code"; + } +} diff --git a/app/src/parser_impl.h b/app/src/parser_impl.h new file mode 100644 index 0000000..e55d364 --- /dev/null +++ b/app/src/parser_impl.h @@ -0,0 +1,39 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#include +#include + +#include "parser_common.h" +#include "parser_txdef.h" +#include "zxtypes.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + Bytes_t *bytes; + uint16_t expected_size; + bool check_size; +} decode_memo_field_arg_t; + +parser_error_t _read(parser_context_t *c, parser_tx_t *v); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/parser_interface.c b/app/src/parser_interface.c new file mode 100644 index 0000000..fe0abfd --- /dev/null +++ b/app/src/parser_interface.c @@ -0,0 +1,54 @@ +/******************************************************************************* + * (c) 2018 - 2024 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#include "parser_interface.h" + +#include + +#include "keys_def.h" +#include "rslib.h" +#include "zxformat.h" + +void print_buffer_interface(Bytes_t *buffer, const char *title) { +#if defined(LEDGER_SPECIFIC) + ZEMU_LOGF(50, "%s\n", title); + char print[700] = {0}; + array_to_hexstr(print, sizeof(print), buffer->ptr, buffer->len); + ZEMU_LOGF(700, "%s\n", print); +#else + printf("%s: ", title); + for (uint16_t i = 0; i < buffer->len; i++) { + printf("%02x", buffer->ptr[i]); + } + printf("\n"); +#endif +} + +parser_error_t compute_transaction_plan(transaction_plan_t *plan) { + if (plan == NULL) return parser_unexpected_error; + + uint8_t output[300] = {0}; + if (rs_compute_transaction_plan(plan, output, sizeof(output)) != parser_ok) { + return parser_unexpected_error; + } + + // TODO: only for testing + Bytes_t output_bytes; + output_bytes.ptr = output; + output_bytes.len = 300; + print_buffer_interface(&output_bytes, "output_bytes"); + + return parser_ok; +} diff --git a/app/src/parser_interface.h b/app/src/parser_interface.h new file mode 100644 index 0000000..134207c --- /dev/null +++ b/app/src/parser_interface.h @@ -0,0 +1,35 @@ +/******************************************************************************* + * (c) 2018 - 2024 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#include "keys_def.h" +#include "parser_common.h" +#include "zxerror.h" +#include "zxmacros.h" + +parser_error_t compute_transaction_plan(transaction_plan_t *plan); + +#ifdef __cplusplus +} +#endif diff --git a/app/src/parser_pb_utils.c b/app/src/parser_pb_utils.c new file mode 100644 index 0000000..9f48bd1 --- /dev/null +++ b/app/src/parser_pb_utils.c @@ -0,0 +1,54 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "parser_impl.h" + +#include "parser_interface.h" +#include "zxformat.h" +#include "parser_pb_utils.h" + + +bool decode_fixed_field(pb_istream_t *stream, const pb_field_t *field, void **arg) +{ + if (stream->bytes_left == 0 || arg == NULL) + return false; + + fixed_size_field_t *decode_arg = (fixed_size_field_t *)*arg; + if (decode_arg == NULL || decode_arg->bytes == NULL) { + return false; + } + + if (decode_arg->check_size && stream->bytes_left != decode_arg->expected_size) { + return false; + } + + const uint8_t *first_byte = stream->state; + uint16_t data_size = stream->bytes_left; + + decode_arg->bytes->ptr = first_byte; + decode_arg->bytes->len = data_size; + + return true; +} + +void setup_decode_fixed_field(pb_callback_t *callback, fixed_size_field_t *arg, Bytes_t *bytes, uint16_t expected_size, bool check_size) { + arg->bytes = bytes; + arg->expected_size = expected_size; + arg->check_size = check_size; + callback->funcs.decode = &decode_fixed_field; + callback->arg = arg; +} + diff --git a/app/src/parser_pb_utils.h b/app/src/parser_pb_utils.h new file mode 100644 index 0000000..01d678c --- /dev/null +++ b/app/src/parser_pb_utils.h @@ -0,0 +1,54 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include +#include + +#include "parser_common.h" +#include "parser_txdef.h" +#include "zxtypes.h" + +#include "pb_common.h" +#include "pb_decode.h" +#include "protobuf/penumbra/core/transaction/v1/transaction.pb.h" + +typedef struct { + Bytes_t *bytes; + uint16_t expected_size; + bool check_size; +} fixed_size_field_t; + +// Callback to parse binding fields in spend plans. all those fields are just +// 32-bytes data array that later in rust can be converted into +// Fq, Fr types +bool decode_fixed_field(pb_istream_t *stream, const pb_field_t *field, void **arg); + +void setup_decode_fixed_field(pb_callback_t *callback, fixed_size_field_t *arg, Bytes_t *bytes, uint16_t expected_size, bool check_size); + + +#ifdef __cplusplus +} +#endif + + diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h new file mode 100644 index 0000000..5d570e7 --- /dev/null +++ b/app/src/parser_txdef.h @@ -0,0 +1,122 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#define MEMO_KEY_SIZE 32 +#define MEMO_ADDRESS_INNER_SIZE 80 +#define DETECTION_DATA_SIZE 122 +#define RSEED_SIZE 32 + +// TODO: check size +#define DETECTION_DATA_QTY 16 +#define ACTIONS_QTY 16 + +#define ASSET_ID_LEN 32 +#define RSEED_LEN 32 + +typedef struct { + const uint8_t *ptr; + uint16_t len; +} Bytes_t; + +typedef struct { + uint64_t lo; + uint64_t hi; +} amount_t; + +typedef struct { + Bytes_t inner; +} asset_id_t; + +typedef struct { + amount_t amount; + asset_id_t asset_id; +} value_t; + +typedef struct { + Bytes_t inner; + // Field bellow is a sort of optional + // and is a shortcut for the case address is already + // bech32m encoded + Bytes_t alt_bech32m; +} address_plan_t; + +typedef struct { + value_t value; + Bytes_t rseed; + address_plan_t address; +} note_t; + +typedef struct { + note_t note; + uint64_t position; + Bytes_t randomizer; + Bytes_t value_blinding; + Bytes_t proof_blinding_r; + Bytes_t proof_blinding_s; +} spend_plan_t; + + +typedef struct { + Bytes_t parameters; +} transaction_parameters_t; + +typedef struct { + address_plan_t return_address; + Bytes_t text; +} memo_plain_text_t; + +typedef struct { + memo_plain_text_t plaintext; + Bytes_t key; +} memo_plan_t; + +typedef struct { + address_plan_t address; + Bytes_t rseed; + uint64_t precision_bits; +} clue_plan_t; + +typedef struct { + clue_plan_t clue_plans[DETECTION_DATA_QTY]; +} detection_data_t; + +typedef struct { + uint8_t action_type; + Bytes_t action; +} action_t; + +typedef struct { + action_t actions[ACTIONS_QTY]; + transaction_parameters_t transaction_parameters; + memo_plan_t memo; + detection_data_t detection_data; +} transaction_plan_t; + +typedef struct { + transaction_plan_t plan; +} parser_tx_t; + +#ifdef __cplusplus +} +#endif diff --git a/app/src/protobuf/amino/amino.pb.c b/app/src/protobuf/amino/amino.pb.c new file mode 100644 index 0000000..a5e7d91 --- /dev/null +++ b/app/src/protobuf/amino/amino.pb.c @@ -0,0 +1,7 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "amino/amino.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif diff --git a/app/src/protobuf/amino/amino.pb.h b/app/src/protobuf/amino/amino.pb.h new file mode 100644 index 0000000..84f7a70 --- /dev/null +++ b/app/src/protobuf/amino/amino.pb.h @@ -0,0 +1,34 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_AMINO_AMINO_AMINO_PB_H_INCLUDED +#define PB_AMINO_AMINO_AMINO_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +/* Extension field amino_name was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field amino_message_encoding was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field amino_encoding was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field amino_field_name was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field amino_dont_omitempty was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field amino_oneof_name was skipped because only "optional" + type of extension fields is currently supported. */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/capability/v1/capability.pb.c b/app/src/protobuf/capability/v1/capability.pb.c new file mode 100644 index 0000000..10b6b4e --- /dev/null +++ b/app/src/protobuf/capability/v1/capability.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "capability/v1/capability.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(capability_v1_Capability, capability_v1_Capability, AUTO) + +PB_BIND(capability_v1_Owner, capability_v1_Owner, AUTO) + +PB_BIND(capability_v1_CapabilityOwners, capability_v1_CapabilityOwners, AUTO) diff --git a/app/src/protobuf/capability/v1/capability.pb.h b/app/src/protobuf/capability/v1/capability.pb.h new file mode 100644 index 0000000..5ad8c8c --- /dev/null +++ b/app/src/protobuf/capability/v1/capability.pb.h @@ -0,0 +1,102 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_CAPABILITY_V1_CAPABILITY_V1_CAPABILITY_PB_H_INCLUDED +#define PB_CAPABILITY_V1_CAPABILITY_V1_CAPABILITY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Capability defines an implementation of an object capability. The index + provided to a Capability must be globally unique. */ +typedef struct _capability_v1_Capability { + uint64_t index; +} capability_v1_Capability; + +/* Owner defines a single capability owner. An owner is defined by the name of + capability and the module name. */ +typedef struct _capability_v1_Owner { + pb_callback_t module; + pb_callback_t name; +} capability_v1_Owner; + +/* CapabilityOwners defines a set of owners of a single Capability. The set of + owners must be unique. */ +typedef struct _capability_v1_CapabilityOwners { + pb_callback_t owners; +} capability_v1_CapabilityOwners; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define capability_v1_Capability_init_default \ + { 0 } +#define capability_v1_Owner_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define capability_v1_CapabilityOwners_init_default \ + { \ + { {NULL}, NULL } \ + } +#define capability_v1_Capability_init_zero \ + { 0 } +#define capability_v1_Owner_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define capability_v1_CapabilityOwners_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define capability_v1_Capability_index_tag 1 +#define capability_v1_Owner_module_tag 1 +#define capability_v1_Owner_name_tag 2 +#define capability_v1_CapabilityOwners_owners_tag 1 + +/* Struct field encoding specification for nanopb */ +#define capability_v1_Capability_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, index, 1) +#define capability_v1_Capability_CALLBACK NULL +#define capability_v1_Capability_DEFAULT NULL + +#define capability_v1_Owner_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, module, 1) \ + X(a, CALLBACK, SINGULAR, STRING, name, 2) +#define capability_v1_Owner_CALLBACK pb_default_field_callback +#define capability_v1_Owner_DEFAULT NULL + +#define capability_v1_CapabilityOwners_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, owners, 1) +#define capability_v1_CapabilityOwners_CALLBACK pb_default_field_callback +#define capability_v1_CapabilityOwners_DEFAULT NULL +#define capability_v1_CapabilityOwners_owners_MSGTYPE capability_v1_Owner + +extern const pb_msgdesc_t capability_v1_Capability_msg; +extern const pb_msgdesc_t capability_v1_Owner_msg; +extern const pb_msgdesc_t capability_v1_CapabilityOwners_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define capability_v1_Capability_fields &capability_v1_Capability_msg +#define capability_v1_Owner_fields &capability_v1_Owner_msg +#define capability_v1_CapabilityOwners_fields &capability_v1_CapabilityOwners_msg + +/* Maximum encoded size of messages (where known) */ +/* capability_v1_Owner_size depends on runtime parameters */ +/* capability_v1_CapabilityOwners_size depends on runtime parameters */ +#define CAPABILITY_V1_CAPABILITY_V1_CAPABILITY_PB_H_MAX_SIZE capability_v1_Capability_size +#define capability_v1_Capability_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/capability/v1/genesis.pb.c b/app/src/protobuf/capability/v1/genesis.pb.c new file mode 100644 index 0000000..56a0bbb --- /dev/null +++ b/app/src/protobuf/capability/v1/genesis.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "capability/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(capability_v1_GenesisOwners, capability_v1_GenesisOwners, AUTO) + +PB_BIND(capability_v1_GenesisState, capability_v1_GenesisState, AUTO) diff --git a/app/src/protobuf/capability/v1/genesis.pb.h b/app/src/protobuf/capability/v1/genesis.pb.h new file mode 100644 index 0000000..811619d --- /dev/null +++ b/app/src/protobuf/capability/v1/genesis.pb.h @@ -0,0 +1,92 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_CAPABILITY_V1_CAPABILITY_V1_GENESIS_PB_H_INCLUDED +#define PB_CAPABILITY_V1_CAPABILITY_V1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "capability/v1/capability.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisOwners defines the capability owners with their corresponding index. */ +typedef struct _capability_v1_GenesisOwners { + /* index is the index of the capability owner. */ + uint64_t index; + /* index_owners are the owners at the given index. */ + bool has_index_owners; + capability_v1_CapabilityOwners index_owners; +} capability_v1_GenesisOwners; + +/* GenesisState defines the capability module's genesis state. */ +typedef struct _capability_v1_GenesisState { + /* index is the capability global index. */ + uint64_t index; + /* owners represents a map from index to owners of the capability index + index key is string to allow amino marshalling. */ + pb_callback_t owners; +} capability_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define capability_v1_GenesisOwners_init_default \ + { 0, false, capability_v1_CapabilityOwners_init_default } +#define capability_v1_GenesisState_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define capability_v1_GenesisOwners_init_zero \ + { 0, false, capability_v1_CapabilityOwners_init_zero } +#define capability_v1_GenesisState_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define capability_v1_GenesisOwners_index_tag 1 +#define capability_v1_GenesisOwners_index_owners_tag 2 +#define capability_v1_GenesisState_index_tag 1 +#define capability_v1_GenesisState_owners_tag 2 + +/* Struct field encoding specification for nanopb */ +#define capability_v1_GenesisOwners_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, index, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, index_owners, 2) +#define capability_v1_GenesisOwners_CALLBACK NULL +#define capability_v1_GenesisOwners_DEFAULT NULL +#define capability_v1_GenesisOwners_index_owners_MSGTYPE capability_v1_CapabilityOwners + +#define capability_v1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, index, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, owners, 2) +#define capability_v1_GenesisState_CALLBACK pb_default_field_callback +#define capability_v1_GenesisState_DEFAULT NULL +#define capability_v1_GenesisState_owners_MSGTYPE capability_v1_GenesisOwners + +extern const pb_msgdesc_t capability_v1_GenesisOwners_msg; +extern const pb_msgdesc_t capability_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define capability_v1_GenesisOwners_fields &capability_v1_GenesisOwners_msg +#define capability_v1_GenesisState_fields &capability_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* capability_v1_GenesisState_size depends on runtime parameters */ +#if defined(capability_v1_CapabilityOwners_size) +#define CAPABILITY_V1_CAPABILITY_V1_GENESIS_PB_H_MAX_SIZE capability_v1_GenesisOwners_size +#define capability_v1_GenesisOwners_size (17 + capability_v1_CapabilityOwners_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.c b/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.c new file mode 100644 index 0000000..d904215 --- /dev/null +++ b/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/app/runtime/v1alpha1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_app_runtime_v1alpha1_Module, cosmos_app_runtime_v1alpha1_Module, AUTO) + +PB_BIND(cosmos_app_runtime_v1alpha1_StoreKeyConfig, cosmos_app_runtime_v1alpha1_StoreKeyConfig, AUTO) diff --git a/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.h b/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.h new file mode 100644 index 0000000..6837c3a --- /dev/null +++ b/app/src/protobuf/cosmos/app/runtime/v1alpha1/module.pb.h @@ -0,0 +1,138 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_APP_RUNTIME_V1ALPHA1_COSMOS_APP_RUNTIME_V1ALPHA1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_APP_RUNTIME_V1ALPHA1_COSMOS_APP_RUNTIME_V1ALPHA1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object for the runtime module. */ +typedef struct _cosmos_app_runtime_v1alpha1_Module { + /* app_name is the name of the app. */ + pb_callback_t app_name; + /* begin_blockers specifies the module names of begin blockers + to call in the order in which they should be called. If this is left empty + no begin blocker will be registered. */ + pb_callback_t begin_blockers; + /* end_blockers specifies the module names of the end blockers + to call in the order in which they should be called. If this is left empty + no end blocker will be registered. */ + pb_callback_t end_blockers; + /* init_genesis specifies the module names of init genesis functions + to call in the order in which they should be called. If this is left empty + no init genesis function will be registered. */ + pb_callback_t init_genesis; + /* export_genesis specifies the order in which to export module genesis data. + If this is left empty, the init_genesis order will be used for export genesis + if it is specified. */ + pb_callback_t export_genesis; + /* override_store_keys is an optional list of overrides for the module store keys + to be used in keeper construction. */ + pb_callback_t override_store_keys; + /* order_migrations defines the order in which module migrations are performed. + If this is left empty, it uses the default migration order. + https://pkg.go.dev/github.com/cosmos/cosmos-sdk@v0.47.0-alpha2/types/module#DefaultMigrationsOrder */ + pb_callback_t order_migrations; + /* precommiters specifies the module names of the precommiters + to call in the order in which they should be called. If this is left empty + no precommit function will be registered. */ + pb_callback_t precommiters; + /* prepare_check_staters specifies the module names of the prepare_check_staters + to call in the order in which they should be called. If this is left empty + no preparecheckstate function will be registered. */ + pb_callback_t prepare_check_staters; +} cosmos_app_runtime_v1alpha1_Module; + +/* StoreKeyConfig may be supplied to override the default module store key, which + is the module name. */ +typedef struct _cosmos_app_runtime_v1alpha1_StoreKeyConfig { + /* name of the module to override the store key of */ + pb_callback_t module_name; + /* the kv store key to use instead of the module name. */ + pb_callback_t kv_store_key; +} cosmos_app_runtime_v1alpha1_StoreKeyConfig; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_app_runtime_v1alpha1_Module_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_runtime_v1alpha1_Module_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_app_runtime_v1alpha1_Module_app_name_tag 1 +#define cosmos_app_runtime_v1alpha1_Module_begin_blockers_tag 2 +#define cosmos_app_runtime_v1alpha1_Module_end_blockers_tag 3 +#define cosmos_app_runtime_v1alpha1_Module_init_genesis_tag 4 +#define cosmos_app_runtime_v1alpha1_Module_export_genesis_tag 5 +#define cosmos_app_runtime_v1alpha1_Module_override_store_keys_tag 6 +#define cosmos_app_runtime_v1alpha1_Module_order_migrations_tag 7 +#define cosmos_app_runtime_v1alpha1_Module_precommiters_tag 8 +#define cosmos_app_runtime_v1alpha1_Module_prepare_check_staters_tag 9 +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_module_name_tag 1 +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_kv_store_key_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_app_runtime_v1alpha1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, app_name, 1) \ + X(a, CALLBACK, REPEATED, STRING, begin_blockers, 2) \ + X(a, CALLBACK, REPEATED, STRING, end_blockers, 3) \ + X(a, CALLBACK, REPEATED, STRING, init_genesis, 4) \ + X(a, CALLBACK, REPEATED, STRING, export_genesis, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, override_store_keys, 6) \ + X(a, CALLBACK, REPEATED, STRING, order_migrations, 7) \ + X(a, CALLBACK, REPEATED, STRING, precommiters, 8) \ + X(a, CALLBACK, REPEATED, STRING, prepare_check_staters, 9) +#define cosmos_app_runtime_v1alpha1_Module_CALLBACK pb_default_field_callback +#define cosmos_app_runtime_v1alpha1_Module_DEFAULT NULL +#define cosmos_app_runtime_v1alpha1_Module_override_store_keys_MSGTYPE cosmos_app_runtime_v1alpha1_StoreKeyConfig + +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, module_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, kv_store_key, 2) +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_CALLBACK pb_default_field_callback +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_app_runtime_v1alpha1_Module_msg; +extern const pb_msgdesc_t cosmos_app_runtime_v1alpha1_StoreKeyConfig_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_app_runtime_v1alpha1_Module_fields &cosmos_app_runtime_v1alpha1_Module_msg +#define cosmos_app_runtime_v1alpha1_StoreKeyConfig_fields &cosmos_app_runtime_v1alpha1_StoreKeyConfig_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_app_runtime_v1alpha1_Module_size depends on runtime parameters */ +/* cosmos_app_runtime_v1alpha1_StoreKeyConfig_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/app/v1alpha1/config.pb.c b/app/src/protobuf/cosmos/app/v1alpha1/config.pb.c new file mode 100644 index 0000000..01a032b --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/config.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/app/v1alpha1/config.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_app_v1alpha1_Config, cosmos_app_v1alpha1_Config, AUTO) + +PB_BIND(cosmos_app_v1alpha1_ModuleConfig, cosmos_app_v1alpha1_ModuleConfig, AUTO) + +PB_BIND(cosmos_app_v1alpha1_GolangBinding, cosmos_app_v1alpha1_GolangBinding, AUTO) diff --git a/app/src/protobuf/cosmos/app/v1alpha1/config.pb.h b/app/src/protobuf/cosmos/app/v1alpha1/config.pb.h new file mode 100644 index 0000000..dd620b0 --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/config.pb.h @@ -0,0 +1,143 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_CONFIG_PB_H_INCLUDED +#define PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_CONFIG_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Config represents the configuration for a Cosmos SDK ABCI app. + It is intended that all state machine logic including the version of + baseapp and tx handlers (and possibly even Tendermint) that an app needs + can be described in a config object. For compatibility, the framework should + allow a mixture of declarative and imperative app wiring, however, apps + that strive for the maximum ease of maintainability should be able to describe + their state machine with a config object alone. */ +typedef struct _cosmos_app_v1alpha1_Config { + /* modules are the module configurations for the app. */ + pb_callback_t modules; + /* golang_bindings specifies explicit interface to implementation type bindings which + depinject uses to resolve interface inputs to provider functions. The scope of this + field's configuration is global (not module specific). */ + pb_callback_t golang_bindings; +} cosmos_app_v1alpha1_Config; + +/* ModuleConfig is a module configuration for an app. */ +typedef struct _cosmos_app_v1alpha1_ModuleConfig { + /* name is the unique name of the module within the app. It should be a name + that persists between different versions of a module so that modules + can be smoothly upgraded to new versions. + + For example, for the module cosmos.bank.module.v1.Module, we may chose + to simply name the module "bank" in the app. When we upgrade to + cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same + and the framework knows that the v2 module should receive all the same state + that the v1 module had. Note: modules should provide info on which versions + they can migrate from in the ModuleDescriptor.can_migration_from field. */ + pb_callback_t name; + /* config is the config object for the module. Module config messages should + define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension. */ + bool has_config; + google_protobuf_Any config; + /* golang_bindings specifies explicit interface to implementation type bindings which + depinject uses to resolve interface inputs to provider functions. The scope of this + field's configuration is module specific. */ + pb_callback_t golang_bindings; +} cosmos_app_v1alpha1_ModuleConfig; + +/* GolangBinding is an explicit interface type to implementing type binding for dependency injection. */ +typedef struct _cosmos_app_v1alpha1_GolangBinding { + /* interface_type is the interface type which will be bound to a specific implementation type */ + pb_callback_t interface_type; + /* implementation is the implementing type which will be supplied when an input of type interface is requested */ + pb_callback_t implementation; +} cosmos_app_v1alpha1_GolangBinding; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_app_v1alpha1_Config_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_ModuleConfig_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_GolangBinding_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_Config_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_ModuleConfig_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_GolangBinding_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_app_v1alpha1_Config_modules_tag 1 +#define cosmos_app_v1alpha1_Config_golang_bindings_tag 2 +#define cosmos_app_v1alpha1_ModuleConfig_name_tag 1 +#define cosmos_app_v1alpha1_ModuleConfig_config_tag 2 +#define cosmos_app_v1alpha1_ModuleConfig_golang_bindings_tag 3 +#define cosmos_app_v1alpha1_GolangBinding_interface_type_tag 1 +#define cosmos_app_v1alpha1_GolangBinding_implementation_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_app_v1alpha1_Config_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, modules, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, golang_bindings, 2) +#define cosmos_app_v1alpha1_Config_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_Config_DEFAULT NULL +#define cosmos_app_v1alpha1_Config_modules_MSGTYPE cosmos_app_v1alpha1_ModuleConfig +#define cosmos_app_v1alpha1_Config_golang_bindings_MSGTYPE cosmos_app_v1alpha1_GolangBinding + +#define cosmos_app_v1alpha1_ModuleConfig_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, config, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, golang_bindings, 3) +#define cosmos_app_v1alpha1_ModuleConfig_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_ModuleConfig_DEFAULT NULL +#define cosmos_app_v1alpha1_ModuleConfig_config_MSGTYPE google_protobuf_Any +#define cosmos_app_v1alpha1_ModuleConfig_golang_bindings_MSGTYPE cosmos_app_v1alpha1_GolangBinding + +#define cosmos_app_v1alpha1_GolangBinding_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, interface_type, 1) \ + X(a, CALLBACK, SINGULAR, STRING, implementation, 2) +#define cosmos_app_v1alpha1_GolangBinding_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_GolangBinding_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_app_v1alpha1_Config_msg; +extern const pb_msgdesc_t cosmos_app_v1alpha1_ModuleConfig_msg; +extern const pb_msgdesc_t cosmos_app_v1alpha1_GolangBinding_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_app_v1alpha1_Config_fields &cosmos_app_v1alpha1_Config_msg +#define cosmos_app_v1alpha1_ModuleConfig_fields &cosmos_app_v1alpha1_ModuleConfig_msg +#define cosmos_app_v1alpha1_GolangBinding_fields &cosmos_app_v1alpha1_GolangBinding_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_app_v1alpha1_Config_size depends on runtime parameters */ +/* cosmos_app_v1alpha1_ModuleConfig_size depends on runtime parameters */ +/* cosmos_app_v1alpha1_GolangBinding_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/app/v1alpha1/module.pb.c b/app/src/protobuf/cosmos/app/v1alpha1/module.pb.c new file mode 100644 index 0000000..5eadea3 --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/module.pb.c @@ -0,0 +1,25 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/app/v1alpha1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_app_v1alpha1_ModuleDescriptor, cosmos_app_v1alpha1_ModuleDescriptor, AUTO) + +PB_BIND(cosmos_app_v1alpha1_PackageReference, cosmos_app_v1alpha1_PackageReference, AUTO) + +PB_BIND(cosmos_app_v1alpha1_MigrateFromInfo, cosmos_app_v1alpha1_MigrateFromInfo, AUTO) + +/* Definition for extension field cosmos_app_v1alpha1_module */ +typedef struct _cosmos_app_v1alpha1_module_extmsg { + cosmos_app_v1alpha1_ModuleDescriptor module; +} cosmos_app_v1alpha1_module_extmsg; +#define cosmos_app_v1alpha1_module_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, MESSAGE, module, 1234) +#define cosmos_app_v1alpha1_module_extmsg_CALLBACK NULL +#define cosmos_app_v1alpha1_module_extmsg_DEFAULT NULL +#define cosmos_app_v1alpha1_module_extmsg_module_MSGTYPE cosmos_app_v1alpha1_ModuleDescriptor +pb_byte_t cosmos_app_v1alpha1_module_extmsg_default[] = {0x00}; +PB_BIND(cosmos_app_v1alpha1_module_extmsg, cosmos_app_v1alpha1_module_extmsg, 4) +const pb_extension_type_t cosmos_app_v1alpha1_module = {NULL, NULL, &cosmos_app_v1alpha1_module_extmsg_msg}; diff --git a/app/src/protobuf/cosmos/app/v1alpha1/module.pb.h b/app/src/protobuf/cosmos/app/v1alpha1/module.pb.h new file mode 100644 index 0000000..c10c954 --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/module.pb.h @@ -0,0 +1,160 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_MODULE_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ModuleDescriptor describes an app module. */ +typedef struct _cosmos_app_v1alpha1_ModuleDescriptor { + /* go_import names the package that should be imported by an app to load the + module in the runtime module registry. It is required to make debugging + of configuration errors easier for users. */ + pb_callback_t go_import; + /* use_package refers to a protobuf package that this module + uses and exposes to the world. In an app, only one module should "use" + or own a single protobuf package. It is assumed that the module uses + all of the .proto files in a single package. */ + pb_callback_t use_package; + /* can_migrate_from defines which module versions this module can migrate + state from. The framework will check that one module version is able to + migrate from a previous module version before attempting to update its + config. It is assumed that modules can transitively migrate from earlier + versions. For instance if v3 declares it can migrate from v2, and v2 + declares it can migrate from v1, the framework knows how to migrate + from v1 to v3, assuming all 3 module versions are registered at runtime. */ + pb_callback_t can_migrate_from; +} cosmos_app_v1alpha1_ModuleDescriptor; + +/* PackageReference is a reference to a protobuf package used by a module. */ +typedef struct _cosmos_app_v1alpha1_PackageReference { + /* name is the fully-qualified name of the package. */ + pb_callback_t name; + /* revision is the optional revision of the package that is being used. + Protobuf packages used in Cosmos should generally have a major version + as the last part of the package name, ex. foo.bar.baz.v1. + The revision of a package can be thought of as the minor version of a + package which has additional backwards compatible definitions that weren't + present in a previous version. + + A package should indicate its revision with a source code comment + above the package declaration in one of its files containing the + text "Revision N" where N is an integer revision. All packages start + at revision 0 the first time they are released in a module. + + When a new version of a module is released and items are added to existing + .proto files, these definitions should contain comments of the form + "Since: Revision N" where N is an integer revision. + + When the module runtime starts up, it will check the pinned proto + image and panic if there are runtime protobuf definitions that are not + in the pinned descriptor which do not have + a "Since Revision N" comment or have a "Since Revision N" comment where + N is <= to the revision specified here. This indicates that the protobuf + files have been updated, but the pinned file descriptor hasn't. + + If there are items in the pinned file descriptor with a revision + greater than the value indicated here, this will also cause a panic + as it may mean that the pinned descriptor for a legacy module has been + improperly updated or that there is some other versioning discrepancy. + Runtime protobuf definitions will also be checked for compatibility + with pinned file descriptors to make sure there are no incompatible changes. + + This behavior ensures that: + * pinned proto images are up-to-date + * protobuf files are carefully annotated with revision comments which + are important good client UX + * protobuf files are changed in backwards and forwards compatible ways */ + uint32_t revision; +} cosmos_app_v1alpha1_PackageReference; + +/* MigrateFromInfo is information on a module version that a newer module + can migrate from. */ +typedef struct _cosmos_app_v1alpha1_MigrateFromInfo { + /* module is the fully-qualified protobuf name of the module config object + for the previous module version, ex: "cosmos.group.module.v1.Module". */ + pb_callback_t module; +} cosmos_app_v1alpha1_MigrateFromInfo; + +/* Extensions */ +extern const pb_extension_type_t cosmos_app_v1alpha1_module; /* field type: cosmos_app_v1alpha1_ModuleDescriptor module; */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_app_v1alpha1_ModuleDescriptor_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_PackageReference_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_app_v1alpha1_MigrateFromInfo_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_ModuleDescriptor_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_app_v1alpha1_PackageReference_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_app_v1alpha1_MigrateFromInfo_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_app_v1alpha1_ModuleDescriptor_go_import_tag 1 +#define cosmos_app_v1alpha1_ModuleDescriptor_use_package_tag 2 +#define cosmos_app_v1alpha1_ModuleDescriptor_can_migrate_from_tag 3 +#define cosmos_app_v1alpha1_PackageReference_name_tag 1 +#define cosmos_app_v1alpha1_PackageReference_revision_tag 2 +#define cosmos_app_v1alpha1_MigrateFromInfo_module_tag 1 +#define cosmos_app_v1alpha1_module_tag 57193479 + +/* Struct field encoding specification for nanopb */ +#define cosmos_app_v1alpha1_ModuleDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, go_import, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, use_package, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, can_migrate_from, 3) +#define cosmos_app_v1alpha1_ModuleDescriptor_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_ModuleDescriptor_DEFAULT NULL +#define cosmos_app_v1alpha1_ModuleDescriptor_use_package_MSGTYPE cosmos_app_v1alpha1_PackageReference +#define cosmos_app_v1alpha1_ModuleDescriptor_can_migrate_from_MSGTYPE cosmos_app_v1alpha1_MigrateFromInfo + +#define cosmos_app_v1alpha1_PackageReference_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, SINGULAR, UINT32, revision, 2) +#define cosmos_app_v1alpha1_PackageReference_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_PackageReference_DEFAULT NULL + +#define cosmos_app_v1alpha1_MigrateFromInfo_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, module, 1) +#define cosmos_app_v1alpha1_MigrateFromInfo_CALLBACK pb_default_field_callback +#define cosmos_app_v1alpha1_MigrateFromInfo_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_app_v1alpha1_ModuleDescriptor_msg; +extern const pb_msgdesc_t cosmos_app_v1alpha1_PackageReference_msg; +extern const pb_msgdesc_t cosmos_app_v1alpha1_MigrateFromInfo_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_app_v1alpha1_ModuleDescriptor_fields &cosmos_app_v1alpha1_ModuleDescriptor_msg +#define cosmos_app_v1alpha1_PackageReference_fields &cosmos_app_v1alpha1_PackageReference_msg +#define cosmos_app_v1alpha1_MigrateFromInfo_fields &cosmos_app_v1alpha1_MigrateFromInfo_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_app_v1alpha1_ModuleDescriptor_size depends on runtime parameters */ +/* cosmos_app_v1alpha1_PackageReference_size depends on runtime parameters */ +/* cosmos_app_v1alpha1_MigrateFromInfo_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/app/v1alpha1/query.pb.c b/app/src/protobuf/cosmos/app/v1alpha1/query.pb.c new file mode 100644 index 0000000..aa1127b --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/query.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/app/v1alpha1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_app_v1alpha1_QueryConfigRequest, cosmos_app_v1alpha1_QueryConfigRequest, AUTO) + +PB_BIND(cosmos_app_v1alpha1_QueryConfigResponse, cosmos_app_v1alpha1_QueryConfigResponse, AUTO) diff --git a/app/src/protobuf/cosmos/app/v1alpha1/query.pb.h b/app/src/protobuf/cosmos/app/v1alpha1/query.pb.h new file mode 100644 index 0000000..51efe9f --- /dev/null +++ b/app/src/protobuf/cosmos/app/v1alpha1/query.pb.h @@ -0,0 +1,73 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/config.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryConfigRequest is the Query/Config request type. */ +typedef struct _cosmos_app_v1alpha1_QueryConfigRequest { + char dummy_field; +} cosmos_app_v1alpha1_QueryConfigRequest; + +/* QueryConfigRequest is the Query/Config response type. */ +typedef struct _cosmos_app_v1alpha1_QueryConfigResponse { + /* config is the current app config. */ + bool has_config; + cosmos_app_v1alpha1_Config config; +} cosmos_app_v1alpha1_QueryConfigResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_app_v1alpha1_QueryConfigRequest_init_default \ + { 0 } +#define cosmos_app_v1alpha1_QueryConfigResponse_init_default \ + { false, cosmos_app_v1alpha1_Config_init_default } +#define cosmos_app_v1alpha1_QueryConfigRequest_init_zero \ + { 0 } +#define cosmos_app_v1alpha1_QueryConfigResponse_init_zero \ + { false, cosmos_app_v1alpha1_Config_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_app_v1alpha1_QueryConfigResponse_config_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_app_v1alpha1_QueryConfigRequest_FIELDLIST(X, a) + +#define cosmos_app_v1alpha1_QueryConfigRequest_CALLBACK NULL +#define cosmos_app_v1alpha1_QueryConfigRequest_DEFAULT NULL + +#define cosmos_app_v1alpha1_QueryConfigResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, config, 1) +#define cosmos_app_v1alpha1_QueryConfigResponse_CALLBACK NULL +#define cosmos_app_v1alpha1_QueryConfigResponse_DEFAULT NULL +#define cosmos_app_v1alpha1_QueryConfigResponse_config_MSGTYPE cosmos_app_v1alpha1_Config + +extern const pb_msgdesc_t cosmos_app_v1alpha1_QueryConfigRequest_msg; +extern const pb_msgdesc_t cosmos_app_v1alpha1_QueryConfigResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_app_v1alpha1_QueryConfigRequest_fields &cosmos_app_v1alpha1_QueryConfigRequest_msg +#define cosmos_app_v1alpha1_QueryConfigResponse_fields &cosmos_app_v1alpha1_QueryConfigResponse_msg + +/* Maximum encoded size of messages (where known) */ +#define cosmos_app_v1alpha1_QueryConfigRequest_size 0 +#if defined(cosmos_app_v1alpha1_Config_size) +#define COSMOS_APP_V1ALPHA1_COSMOS_APP_V1ALPHA1_QUERY_PB_H_MAX_SIZE cosmos_app_v1alpha1_QueryConfigResponse_size +#define cosmos_app_v1alpha1_QueryConfigResponse_size (6 + cosmos_app_v1alpha1_Config_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/auth/module/v1/module.pb.c b/app/src/protobuf/cosmos/auth/module/v1/module.pb.c new file mode 100644 index 0000000..cf1b054 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/module/v1/module.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/auth/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_auth_module_v1_Module, cosmos_auth_module_v1_Module, AUTO) + +PB_BIND(cosmos_auth_module_v1_ModuleAccountPermission, cosmos_auth_module_v1_ModuleAccountPermission, AUTO) diff --git a/app/src/protobuf/cosmos/auth/module/v1/module.pb.h b/app/src/protobuf/cosmos/auth/module/v1/module.pb.h new file mode 100644 index 0000000..e9b8f8d --- /dev/null +++ b/app/src/protobuf/cosmos/auth/module/v1/module.pb.h @@ -0,0 +1,93 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTH_MODULE_V1_COSMOS_AUTH_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_AUTH_MODULE_V1_COSMOS_AUTH_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object for the auth module. */ +typedef struct _cosmos_auth_module_v1_Module { + /* bech32_prefix is the bech32 account prefix for the app. */ + pb_callback_t bech32_prefix; + /* module_account_permissions are module account permissions. */ + pb_callback_t module_account_permissions; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_auth_module_v1_Module; + +/* ModuleAccountPermission represents permissions for a module account. */ +typedef struct _cosmos_auth_module_v1_ModuleAccountPermission { + /* account is the name of the module. */ + pb_callback_t account; + /* permissions are the permissions this module has. Currently recognized + values are minter, burner and staking. */ + pb_callback_t permissions; +} cosmos_auth_module_v1_ModuleAccountPermission; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_auth_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_module_v1_ModuleAccountPermission_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_module_v1_ModuleAccountPermission_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_auth_module_v1_Module_bech32_prefix_tag 1 +#define cosmos_auth_module_v1_Module_module_account_permissions_tag 2 +#define cosmos_auth_module_v1_Module_authority_tag 3 +#define cosmos_auth_module_v1_ModuleAccountPermission_account_tag 1 +#define cosmos_auth_module_v1_ModuleAccountPermission_permissions_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_auth_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, bech32_prefix, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, module_account_permissions, 2) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 3) +#define cosmos_auth_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_auth_module_v1_Module_DEFAULT NULL +#define cosmos_auth_module_v1_Module_module_account_permissions_MSGTYPE cosmos_auth_module_v1_ModuleAccountPermission + +#define cosmos_auth_module_v1_ModuleAccountPermission_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, account, 1) \ + X(a, CALLBACK, REPEATED, STRING, permissions, 2) +#define cosmos_auth_module_v1_ModuleAccountPermission_CALLBACK pb_default_field_callback +#define cosmos_auth_module_v1_ModuleAccountPermission_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_auth_module_v1_Module_msg; +extern const pb_msgdesc_t cosmos_auth_module_v1_ModuleAccountPermission_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_auth_module_v1_Module_fields &cosmos_auth_module_v1_Module_msg +#define cosmos_auth_module_v1_ModuleAccountPermission_fields &cosmos_auth_module_v1_ModuleAccountPermission_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_auth_module_v1_Module_size depends on runtime parameters */ +/* cosmos_auth_module_v1_ModuleAccountPermission_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.c b/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.c new file mode 100644 index 0000000..2fae8f3 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/auth/v1beta1/auth.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_auth_v1beta1_BaseAccount, cosmos_auth_v1beta1_BaseAccount, AUTO) + +PB_BIND(cosmos_auth_v1beta1_ModuleAccount, cosmos_auth_v1beta1_ModuleAccount, AUTO) + +PB_BIND(cosmos_auth_v1beta1_ModuleCredential, cosmos_auth_v1beta1_ModuleCredential, AUTO) + +PB_BIND(cosmos_auth_v1beta1_Params, cosmos_auth_v1beta1_Params, AUTO) diff --git a/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.h b/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.h new file mode 100644 index 0000000..7ec6007 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/auth.pb.h @@ -0,0 +1,158 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_AUTH_PB_H_INCLUDED +#define PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_AUTH_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* BaseAccount defines a base account type. It contains all the necessary fields + for basic account functionality. Any custom account type should extend this + type for additional functionality (e.g. vesting). */ +typedef struct _cosmos_auth_v1beta1_BaseAccount { + pb_callback_t address; + bool has_pub_key; + google_protobuf_Any pub_key; + uint64_t account_number; + uint64_t sequence; +} cosmos_auth_v1beta1_BaseAccount; + +/* ModuleAccount defines an account for modules that holds coins on a pool. */ +typedef struct _cosmos_auth_v1beta1_ModuleAccount { + bool has_base_account; + cosmos_auth_v1beta1_BaseAccount base_account; + pb_callback_t name; + pb_callback_t permissions; +} cosmos_auth_v1beta1_ModuleAccount; + +/* ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_auth_v1beta1_ModuleCredential { + /* module_name is the name of the module used for address derivation (passed into address.Module). */ + pb_callback_t module_name; + /* derivation_keys is for deriving a module account address (passed into address.Module) + adding more keys creates sub-account addresses (passed into address.Derive) */ + pb_callback_t derivation_keys; +} cosmos_auth_v1beta1_ModuleCredential; + +/* Params defines the parameters for the auth module. */ +typedef struct _cosmos_auth_v1beta1_Params { + uint64_t max_memo_characters; + uint64_t tx_sig_limit; + uint64_t tx_size_cost_per_byte; + uint64_t sig_verify_cost_ed25519; + uint64_t sig_verify_cost_secp256k1; +} cosmos_auth_v1beta1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_auth_v1beta1_BaseAccount_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default, 0, 0 } +#define cosmos_auth_v1beta1_ModuleAccount_init_default \ + { \ + false, cosmos_auth_v1beta1_BaseAccount_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_ModuleCredential_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_Params_init_default \ + { 0, 0, 0, 0, 0 } +#define cosmos_auth_v1beta1_BaseAccount_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero, 0, 0 } +#define cosmos_auth_v1beta1_ModuleAccount_init_zero \ + { \ + false, cosmos_auth_v1beta1_BaseAccount_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_ModuleCredential_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_Params_init_zero \ + { 0, 0, 0, 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_auth_v1beta1_BaseAccount_address_tag 1 +#define cosmos_auth_v1beta1_BaseAccount_pub_key_tag 2 +#define cosmos_auth_v1beta1_BaseAccount_account_number_tag 3 +#define cosmos_auth_v1beta1_BaseAccount_sequence_tag 4 +#define cosmos_auth_v1beta1_ModuleAccount_base_account_tag 1 +#define cosmos_auth_v1beta1_ModuleAccount_name_tag 2 +#define cosmos_auth_v1beta1_ModuleAccount_permissions_tag 3 +#define cosmos_auth_v1beta1_ModuleCredential_module_name_tag 1 +#define cosmos_auth_v1beta1_ModuleCredential_derivation_keys_tag 2 +#define cosmos_auth_v1beta1_Params_max_memo_characters_tag 1 +#define cosmos_auth_v1beta1_Params_tx_sig_limit_tag 2 +#define cosmos_auth_v1beta1_Params_tx_size_cost_per_byte_tag 3 +#define cosmos_auth_v1beta1_Params_sig_verify_cost_ed25519_tag 4 +#define cosmos_auth_v1beta1_Params_sig_verify_cost_secp256k1_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_auth_v1beta1_BaseAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 2) \ + X(a, STATIC, SINGULAR, UINT64, account_number, 3) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 4) +#define cosmos_auth_v1beta1_BaseAccount_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_BaseAccount_DEFAULT NULL +#define cosmos_auth_v1beta1_BaseAccount_pub_key_MSGTYPE google_protobuf_Any + +#define cosmos_auth_v1beta1_ModuleAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_account, 1) \ + X(a, CALLBACK, SINGULAR, STRING, name, 2) \ + X(a, CALLBACK, REPEATED, STRING, permissions, 3) +#define cosmos_auth_v1beta1_ModuleAccount_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_ModuleAccount_DEFAULT NULL +#define cosmos_auth_v1beta1_ModuleAccount_base_account_MSGTYPE cosmos_auth_v1beta1_BaseAccount + +#define cosmos_auth_v1beta1_ModuleCredential_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, module_name, 1) \ + X(a, CALLBACK, REPEATED, BYTES, derivation_keys, 2) +#define cosmos_auth_v1beta1_ModuleCredential_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_ModuleCredential_DEFAULT NULL + +#define cosmos_auth_v1beta1_Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, max_memo_characters, 1) \ + X(a, STATIC, SINGULAR, UINT64, tx_sig_limit, 2) \ + X(a, STATIC, SINGULAR, UINT64, tx_size_cost_per_byte, 3) \ + X(a, STATIC, SINGULAR, UINT64, sig_verify_cost_ed25519, 4) \ + X(a, STATIC, SINGULAR, UINT64, sig_verify_cost_secp256k1, 5) +#define cosmos_auth_v1beta1_Params_CALLBACK NULL +#define cosmos_auth_v1beta1_Params_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_auth_v1beta1_BaseAccount_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_ModuleAccount_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_ModuleCredential_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_auth_v1beta1_BaseAccount_fields &cosmos_auth_v1beta1_BaseAccount_msg +#define cosmos_auth_v1beta1_ModuleAccount_fields &cosmos_auth_v1beta1_ModuleAccount_msg +#define cosmos_auth_v1beta1_ModuleCredential_fields &cosmos_auth_v1beta1_ModuleCredential_msg +#define cosmos_auth_v1beta1_Params_fields &cosmos_auth_v1beta1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_auth_v1beta1_BaseAccount_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_ModuleAccount_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_ModuleCredential_size depends on runtime parameters */ +#define COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_AUTH_PB_H_MAX_SIZE cosmos_auth_v1beta1_Params_size +#define cosmos_auth_v1beta1_Params_size 55 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.c new file mode 100644 index 0000000..a6fa766 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/auth/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_auth_v1beta1_GenesisState, cosmos_auth_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.h new file mode 100644 index 0000000..d029f95 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/genesis.pb.h @@ -0,0 +1,66 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/auth/v1beta1/auth.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the auth module's genesis state. */ +typedef struct _cosmos_auth_v1beta1_GenesisState { + /* params defines all the parameters of the module. */ + bool has_params; + cosmos_auth_v1beta1_Params params; + /* accounts are the accounts present at genesis. */ + pb_callback_t accounts; +} cosmos_auth_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_auth_v1beta1_GenesisState_init_default \ + { \ + false, cosmos_auth_v1beta1_Params_init_default, { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_GenesisState_init_zero \ + { \ + false, cosmos_auth_v1beta1_Params_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_auth_v1beta1_GenesisState_params_tag 1 +#define cosmos_auth_v1beta1_GenesisState_accounts_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_auth_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, accounts, 2) +#define cosmos_auth_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_auth_v1beta1_GenesisState_params_MSGTYPE cosmos_auth_v1beta1_Params +#define cosmos_auth_v1beta1_GenesisState_accounts_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t cosmos_auth_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_auth_v1beta1_GenesisState_fields &cosmos_auth_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_auth_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/auth/v1beta1/query.pb.c b/app/src/protobuf/cosmos/auth/v1beta1/query.pb.c new file mode 100644 index 0000000..4de802d --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/query.pb.c @@ -0,0 +1,47 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/auth/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_auth_v1beta1_QueryAccountsRequest, cosmos_auth_v1beta1_QueryAccountsRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountsResponse, cosmos_auth_v1beta1_QueryAccountsResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountRequest, cosmos_auth_v1beta1_QueryAccountRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountResponse, cosmos_auth_v1beta1_QueryAccountResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryParamsRequest, cosmos_auth_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryParamsResponse, cosmos_auth_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryModuleAccountsRequest, cosmos_auth_v1beta1_QueryModuleAccountsRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryModuleAccountsResponse, cosmos_auth_v1beta1_QueryModuleAccountsResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryModuleAccountByNameRequest, cosmos_auth_v1beta1_QueryModuleAccountByNameRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryModuleAccountByNameResponse, cosmos_auth_v1beta1_QueryModuleAccountByNameResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_Bech32PrefixRequest, cosmos_auth_v1beta1_Bech32PrefixRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_Bech32PrefixResponse, cosmos_auth_v1beta1_Bech32PrefixResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_AddressBytesToStringRequest, cosmos_auth_v1beta1_AddressBytesToStringRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_AddressBytesToStringResponse, cosmos_auth_v1beta1_AddressBytesToStringResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_AddressStringToBytesRequest, cosmos_auth_v1beta1_AddressStringToBytesRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_AddressStringToBytesResponse, cosmos_auth_v1beta1_AddressStringToBytesResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountAddressByIDRequest, cosmos_auth_v1beta1_QueryAccountAddressByIDRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountAddressByIDResponse, cosmos_auth_v1beta1_QueryAccountAddressByIDResponse, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountInfoRequest, cosmos_auth_v1beta1_QueryAccountInfoRequest, AUTO) + +PB_BIND(cosmos_auth_v1beta1_QueryAccountInfoResponse, cosmos_auth_v1beta1_QueryAccountInfoResponse, AUTO) diff --git a/app/src/protobuf/cosmos/auth/v1beta1/query.pb.h b/app/src/protobuf/cosmos/auth/v1beta1/query.pb.h new file mode 100644 index 0000000..1f814f1 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/query.pb.h @@ -0,0 +1,493 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/auth/v1beta1/auth.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/query/v1/query.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryAccountsRequest is the request type for the Query/Accounts RPC method. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountsRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_auth_v1beta1_QueryAccountsRequest; + +/* QueryAccountsResponse is the response type for the Query/Accounts RPC method. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountsResponse { + /* accounts are the existing accounts */ + pb_callback_t accounts; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_auth_v1beta1_QueryAccountsResponse; + +/* QueryAccountRequest is the request type for the Query/Account RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryAccountRequest { + /* address defines the address to query for. */ + pb_callback_t address; +} cosmos_auth_v1beta1_QueryAccountRequest; + +/* QueryAccountResponse is the response type for the Query/Account RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryAccountResponse { + /* account defines the account of the corresponding address. */ + bool has_account; + google_protobuf_Any account; +} cosmos_auth_v1beta1_QueryAccountResponse; + +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_auth_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + cosmos_auth_v1beta1_Params params; +} cosmos_auth_v1beta1_QueryParamsResponse; + +/* QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_QueryModuleAccountsRequest { + char dummy_field; +} cosmos_auth_v1beta1_QueryModuleAccountsRequest; + +/* QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_QueryModuleAccountsResponse { + pb_callback_t accounts; +} cosmos_auth_v1beta1_QueryModuleAccountsResponse; + +/* QueryModuleAccountByNameRequest is the request type for the Query/ModuleAccountByName RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryModuleAccountByNameRequest { + pb_callback_t name; +} cosmos_auth_v1beta1_QueryModuleAccountByNameRequest; + +/* QueryModuleAccountByNameResponse is the response type for the Query/ModuleAccountByName RPC method. */ +typedef struct _cosmos_auth_v1beta1_QueryModuleAccountByNameResponse { + bool has_account; + google_protobuf_Any account; +} cosmos_auth_v1beta1_QueryModuleAccountByNameResponse; + +/* Bech32PrefixRequest is the request type for Bech32Prefix rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_Bech32PrefixRequest { + char dummy_field; +} cosmos_auth_v1beta1_Bech32PrefixRequest; + +/* Bech32PrefixResponse is the response type for Bech32Prefix rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_Bech32PrefixResponse { + pb_callback_t bech32_prefix; +} cosmos_auth_v1beta1_Bech32PrefixResponse; + +/* AddressBytesToStringRequest is the request type for AddressString rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_AddressBytesToStringRequest { + pb_callback_t address_bytes; +} cosmos_auth_v1beta1_AddressBytesToStringRequest; + +/* AddressBytesToStringResponse is the response type for AddressString rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_AddressBytesToStringResponse { + pb_callback_t address_string; +} cosmos_auth_v1beta1_AddressBytesToStringResponse; + +/* AddressStringToBytesRequest is the request type for AccountBytes rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_AddressStringToBytesRequest { + pb_callback_t address_string; +} cosmos_auth_v1beta1_AddressStringToBytesRequest; + +/* AddressStringToBytesResponse is the response type for AddressBytes rpc method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_auth_v1beta1_AddressStringToBytesResponse { + pb_callback_t address_bytes; +} cosmos_auth_v1beta1_AddressStringToBytesResponse; + +/* QueryAccountAddressByIDRequest is the request type for AccountAddressByID rpc method + + Since: cosmos-sdk 0.46.2 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountAddressByIDRequest { + /* Deprecated, use account_id instead + + id is the account number of the address to be queried. This field + should have been an uint64 (like all account numbers), and will be + updated to uint64 in a future version of the auth query. */ + int64_t id; + /* account_id is the account number of the address to be queried. + + Since: cosmos-sdk 0.47 */ + uint64_t account_id; +} cosmos_auth_v1beta1_QueryAccountAddressByIDRequest; + +/* QueryAccountAddressByIDResponse is the response type for AccountAddressByID rpc method + + Since: cosmos-sdk 0.46.2 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountAddressByIDResponse { + pb_callback_t account_address; +} cosmos_auth_v1beta1_QueryAccountAddressByIDResponse; + +/* QueryAccountInfoRequest is the Query/AccountInfo request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountInfoRequest { + /* address is the account address string. */ + pb_callback_t address; +} cosmos_auth_v1beta1_QueryAccountInfoRequest; + +/* QueryAccountInfoResponse is the Query/AccountInfo response type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_auth_v1beta1_QueryAccountInfoResponse { + /* info is the account info which is represented by BaseAccount. */ + bool has_info; + cosmos_auth_v1beta1_BaseAccount info; +} cosmos_auth_v1beta1_QueryAccountInfoResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_auth_v1beta1_QueryAccountsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_auth_v1beta1_QueryAccountsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_auth_v1beta1_QueryAccountRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define cosmos_auth_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_auth_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_auth_v1beta1_Params_init_default } +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_init_default \ + { 0 } +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define cosmos_auth_v1beta1_Bech32PrefixRequest_init_default \ + { 0 } +#define cosmos_auth_v1beta1_Bech32PrefixResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_init_default \ + { 0, 0 } +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_init_default \ + { false, cosmos_auth_v1beta1_BaseAccount_init_default } +#define cosmos_auth_v1beta1_QueryAccountsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_auth_v1beta1_QueryAccountsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_auth_v1beta1_QueryAccountRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountResponse_init_zero \ + { false, google_protobuf_Any_init_zero } +#define cosmos_auth_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_auth_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_auth_v1beta1_Params_init_zero } +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_init_zero \ + { 0 } +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_init_zero \ + { false, google_protobuf_Any_init_zero } +#define cosmos_auth_v1beta1_Bech32PrefixRequest_init_zero \ + { 0 } +#define cosmos_auth_v1beta1_Bech32PrefixResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_init_zero \ + { 0, 0 } +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_init_zero \ + { false, cosmos_auth_v1beta1_BaseAccount_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_auth_v1beta1_QueryAccountsRequest_pagination_tag 1 +#define cosmos_auth_v1beta1_QueryAccountsResponse_accounts_tag 1 +#define cosmos_auth_v1beta1_QueryAccountsResponse_pagination_tag 2 +#define cosmos_auth_v1beta1_QueryAccountRequest_address_tag 1 +#define cosmos_auth_v1beta1_QueryAccountResponse_account_tag 1 +#define cosmos_auth_v1beta1_QueryParamsResponse_params_tag 1 +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_accounts_tag 1 +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_name_tag 1 +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_account_tag 1 +#define cosmos_auth_v1beta1_Bech32PrefixResponse_bech32_prefix_tag 1 +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_address_bytes_tag 1 +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_address_string_tag 1 +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_address_string_tag 1 +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_address_bytes_tag 1 +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_id_tag 1 +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_account_id_tag 2 +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_account_address_tag 1 +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_address_tag 1 +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_info_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_auth_v1beta1_QueryAccountsRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_auth_v1beta1_QueryAccountsRequest_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryAccountsRequest_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryAccountsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_auth_v1beta1_QueryAccountsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, accounts, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_auth_v1beta1_QueryAccountsResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryAccountsResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryAccountsResponse_accounts_MSGTYPE google_protobuf_Any +#define cosmos_auth_v1beta1_QueryAccountsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_auth_v1beta1_QueryAccountRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_auth_v1beta1_QueryAccountRequest_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryAccountRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryAccountResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, account, 1) +#define cosmos_auth_v1beta1_QueryAccountResponse_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryAccountResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryAccountResponse_account_MSGTYPE google_protobuf_Any + +#define cosmos_auth_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_auth_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_auth_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_auth_v1beta1_Params + +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_FIELDLIST(X, a) + +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, accounts, 1) +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_accounts_MSGTYPE google_protobuf_Any + +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, name, 1) +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, account, 1) +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_account_MSGTYPE google_protobuf_Any + +#define cosmos_auth_v1beta1_Bech32PrefixRequest_FIELDLIST(X, a) + +#define cosmos_auth_v1beta1_Bech32PrefixRequest_CALLBACK NULL +#define cosmos_auth_v1beta1_Bech32PrefixRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_Bech32PrefixResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, bech32_prefix, 1) +#define cosmos_auth_v1beta1_Bech32PrefixResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_Bech32PrefixResponse_DEFAULT NULL + +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, address_bytes, 1) +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address_string, 1) +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_DEFAULT NULL + +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address_string, 1) +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, address_bytes, 1) +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, id, 1) \ + X(a, STATIC, SINGULAR, UINT64, account_id, 2) +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, account_address, 1) +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_DEFAULT NULL + +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, info, 1) +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_CALLBACK NULL +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_DEFAULT NULL +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_info_MSGTYPE cosmos_auth_v1beta1_BaseAccount + +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountsRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountsResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryModuleAccountsRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryModuleAccountsResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_Bech32PrefixRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_Bech32PrefixResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_AddressBytesToStringRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_AddressBytesToStringResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_AddressStringToBytesRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_AddressStringToBytesResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountInfoRequest_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_QueryAccountInfoResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_auth_v1beta1_QueryAccountsRequest_fields &cosmos_auth_v1beta1_QueryAccountsRequest_msg +#define cosmos_auth_v1beta1_QueryAccountsResponse_fields &cosmos_auth_v1beta1_QueryAccountsResponse_msg +#define cosmos_auth_v1beta1_QueryAccountRequest_fields &cosmos_auth_v1beta1_QueryAccountRequest_msg +#define cosmos_auth_v1beta1_QueryAccountResponse_fields &cosmos_auth_v1beta1_QueryAccountResponse_msg +#define cosmos_auth_v1beta1_QueryParamsRequest_fields &cosmos_auth_v1beta1_QueryParamsRequest_msg +#define cosmos_auth_v1beta1_QueryParamsResponse_fields &cosmos_auth_v1beta1_QueryParamsResponse_msg +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_fields &cosmos_auth_v1beta1_QueryModuleAccountsRequest_msg +#define cosmos_auth_v1beta1_QueryModuleAccountsResponse_fields &cosmos_auth_v1beta1_QueryModuleAccountsResponse_msg +#define cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_fields &cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_msg +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_fields &cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_msg +#define cosmos_auth_v1beta1_Bech32PrefixRequest_fields &cosmos_auth_v1beta1_Bech32PrefixRequest_msg +#define cosmos_auth_v1beta1_Bech32PrefixResponse_fields &cosmos_auth_v1beta1_Bech32PrefixResponse_msg +#define cosmos_auth_v1beta1_AddressBytesToStringRequest_fields &cosmos_auth_v1beta1_AddressBytesToStringRequest_msg +#define cosmos_auth_v1beta1_AddressBytesToStringResponse_fields &cosmos_auth_v1beta1_AddressBytesToStringResponse_msg +#define cosmos_auth_v1beta1_AddressStringToBytesRequest_fields &cosmos_auth_v1beta1_AddressStringToBytesRequest_msg +#define cosmos_auth_v1beta1_AddressStringToBytesResponse_fields &cosmos_auth_v1beta1_AddressStringToBytesResponse_msg +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_fields &cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_msg +#define cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_fields &cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_msg +#define cosmos_auth_v1beta1_QueryAccountInfoRequest_fields &cosmos_auth_v1beta1_QueryAccountInfoRequest_msg +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_fields &cosmos_auth_v1beta1_QueryAccountInfoResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_auth_v1beta1_QueryAccountsResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_QueryAccountRequest_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_QueryModuleAccountsResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_QueryModuleAccountByNameRequest_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_Bech32PrefixResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_AddressBytesToStringRequest_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_AddressBytesToStringResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_AddressStringToBytesRequest_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_AddressStringToBytesResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_QueryAccountAddressByIDResponse_size depends on runtime parameters */ +/* cosmos_auth_v1beta1_QueryAccountInfoRequest_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_auth_v1beta1_QueryAccountsRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(google_protobuf_Any_size) +#define cosmos_auth_v1beta1_QueryAccountResponse_size (6 + google_protobuf_Any_size) +#define cosmos_auth_v1beta1_QueryModuleAccountByNameResponse_size (6 + google_protobuf_Any_size) +#endif +#define COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_auth_v1beta1_QueryParamsResponse_size +#define cosmos_auth_v1beta1_Bech32PrefixRequest_size 0 +#define cosmos_auth_v1beta1_QueryAccountAddressByIDRequest_size 22 +#define cosmos_auth_v1beta1_QueryModuleAccountsRequest_size 0 +#define cosmos_auth_v1beta1_QueryParamsRequest_size 0 +#define cosmos_auth_v1beta1_QueryParamsResponse_size 57 +#if defined(cosmos_auth_v1beta1_BaseAccount_size) +#define cosmos_auth_v1beta1_QueryAccountInfoResponse_size (6 + cosmos_auth_v1beta1_BaseAccount_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.c new file mode 100644 index 0000000..52ac87f --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/auth/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_auth_v1beta1_MsgUpdateParams, cosmos_auth_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_auth_v1beta1_MsgUpdateParamsResponse, cosmos_auth_v1beta1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.h new file mode 100644 index 0000000..daa68e9 --- /dev/null +++ b/app/src/protobuf/cosmos/auth/v1beta1/tx.pb.h @@ -0,0 +1,86 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_AUTH_V1BETA1_COSMOS_AUTH_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/auth/v1beta1/auth.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_auth_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/auth parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_auth_v1beta1_Params params; +} cosmos_auth_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_auth_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_auth_v1beta1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_auth_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_auth_v1beta1_Params_init_default } +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_auth_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_auth_v1beta1_Params_init_zero } +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_auth_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_auth_v1beta1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_auth_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_auth_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_auth_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_auth_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_auth_v1beta1_Params + +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_auth_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_auth_v1beta1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_auth_v1beta1_MsgUpdateParams_fields &cosmos_auth_v1beta1_MsgUpdateParams_msg +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_fields &cosmos_auth_v1beta1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_auth_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_auth_v1beta1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/module/v1/module.pb.c b/app/src/protobuf/cosmos/authz/module/v1/module.pb.c new file mode 100644 index 0000000..4ceefae --- /dev/null +++ b/app/src/protobuf/cosmos/authz/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_module_v1_Module, cosmos_authz_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/authz/module/v1/module.pb.h b/app/src/protobuf/cosmos/authz/module/v1/module.pb.h new file mode 100644 index 0000000..0cb7799 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_MODULE_V1_COSMOS_AUTHZ_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_MODULE_V1_COSMOS_AUTHZ_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the authz module. */ +typedef struct _cosmos_authz_module_v1_Module { + char dummy_field; +} cosmos_authz_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_module_v1_Module_init_default \ + { 0 } +#define cosmos_authz_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_authz_module_v1_Module_CALLBACK NULL +#define cosmos_authz_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_authz_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_module_v1_Module_fields &cosmos_authz_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_AUTHZ_MODULE_V1_COSMOS_AUTHZ_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_authz_module_v1_Module_size +#define cosmos_authz_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.c b/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.c new file mode 100644 index 0000000..3e6e528 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/v1beta1/authz.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_v1beta1_GenericAuthorization, cosmos_authz_v1beta1_GenericAuthorization, AUTO) + +PB_BIND(cosmos_authz_v1beta1_Grant, cosmos_authz_v1beta1_Grant, AUTO) + +PB_BIND(cosmos_authz_v1beta1_GrantAuthorization, cosmos_authz_v1beta1_GrantAuthorization, AUTO) + +PB_BIND(cosmos_authz_v1beta1_GrantQueueItem, cosmos_authz_v1beta1_GrantQueueItem, AUTO) diff --git a/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.h b/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.h new file mode 100644 index 0000000..a5a1b45 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/authz.pb.h @@ -0,0 +1,149 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_AUTHZ_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_AUTHZ_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenericAuthorization gives the grantee unrestricted permissions to execute + the provided method on behalf of the granter's account. */ +typedef struct _cosmos_authz_v1beta1_GenericAuthorization { + /* Msg, identified by it's type URL, to grant unrestricted permissions to execute */ + pb_callback_t msg; +} cosmos_authz_v1beta1_GenericAuthorization; + +/* Grant gives permissions to execute + the provide method with expiration time. */ +typedef struct _cosmos_authz_v1beta1_Grant { + bool has_authorization; + google_protobuf_Any authorization; + /* time when the grant will expire and will be pruned. If null, then the grant + doesn't have a time expiration (other conditions in `authorization` + may apply to invalidate the grant) */ + bool has_expiration; + google_protobuf_Timestamp expiration; +} cosmos_authz_v1beta1_Grant; + +/* GrantAuthorization extends a grant with both the addresses of the grantee and granter. + It is used in genesis.proto and query.proto */ +typedef struct _cosmos_authz_v1beta1_GrantAuthorization { + pb_callback_t granter; + pb_callback_t grantee; + bool has_authorization; + google_protobuf_Any authorization; + bool has_expiration; + google_protobuf_Timestamp expiration; +} cosmos_authz_v1beta1_GrantAuthorization; + +/* GrantQueueItem contains the list of TypeURL of a sdk.Msg. */ +typedef struct _cosmos_authz_v1beta1_GrantQueueItem { + /* msg_type_urls contains the list of TypeURL of a sdk.Msg. */ + pb_callback_t msg_type_urls; +} cosmos_authz_v1beta1_GrantQueueItem; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_v1beta1_GenericAuthorization_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_Grant_init_default \ + { false, google_protobuf_Any_init_default, false, google_protobuf_Timestamp_init_default } +#define cosmos_authz_v1beta1_GrantAuthorization_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default, false, \ + google_protobuf_Timestamp_init_default \ + } +#define cosmos_authz_v1beta1_GrantQueueItem_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_GenericAuthorization_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_Grant_init_zero \ + { false, google_protobuf_Any_init_zero, false, google_protobuf_Timestamp_init_zero } +#define cosmos_authz_v1beta1_GrantAuthorization_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero, false, google_protobuf_Timestamp_init_zero } +#define cosmos_authz_v1beta1_GrantQueueItem_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_authz_v1beta1_GenericAuthorization_msg_tag 1 +#define cosmos_authz_v1beta1_Grant_authorization_tag 1 +#define cosmos_authz_v1beta1_Grant_expiration_tag 2 +#define cosmos_authz_v1beta1_GrantAuthorization_granter_tag 1 +#define cosmos_authz_v1beta1_GrantAuthorization_grantee_tag 2 +#define cosmos_authz_v1beta1_GrantAuthorization_authorization_tag 3 +#define cosmos_authz_v1beta1_GrantAuthorization_expiration_tag 4 +#define cosmos_authz_v1beta1_GrantQueueItem_msg_type_urls_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_v1beta1_GenericAuthorization_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, msg, 1) +#define cosmos_authz_v1beta1_GenericAuthorization_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_GenericAuthorization_DEFAULT NULL + +#define cosmos_authz_v1beta1_Grant_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, authorization, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, expiration, 2) +#define cosmos_authz_v1beta1_Grant_CALLBACK NULL +#define cosmos_authz_v1beta1_Grant_DEFAULT NULL +#define cosmos_authz_v1beta1_Grant_authorization_MSGTYPE google_protobuf_Any +#define cosmos_authz_v1beta1_Grant_expiration_MSGTYPE google_protobuf_Timestamp + +#define cosmos_authz_v1beta1_GrantAuthorization_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, authorization, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, expiration, 4) +#define cosmos_authz_v1beta1_GrantAuthorization_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_GrantAuthorization_DEFAULT NULL +#define cosmos_authz_v1beta1_GrantAuthorization_authorization_MSGTYPE google_protobuf_Any +#define cosmos_authz_v1beta1_GrantAuthorization_expiration_MSGTYPE google_protobuf_Timestamp + +#define cosmos_authz_v1beta1_GrantQueueItem_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, msg_type_urls, 1) +#define cosmos_authz_v1beta1_GrantQueueItem_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_GrantQueueItem_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_authz_v1beta1_GenericAuthorization_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_Grant_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_GrantAuthorization_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_GrantQueueItem_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_v1beta1_GenericAuthorization_fields &cosmos_authz_v1beta1_GenericAuthorization_msg +#define cosmos_authz_v1beta1_Grant_fields &cosmos_authz_v1beta1_Grant_msg +#define cosmos_authz_v1beta1_GrantAuthorization_fields &cosmos_authz_v1beta1_GrantAuthorization_msg +#define cosmos_authz_v1beta1_GrantQueueItem_fields &cosmos_authz_v1beta1_GrantQueueItem_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_authz_v1beta1_GenericAuthorization_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_GrantAuthorization_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_GrantQueueItem_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_AUTHZ_PB_H_MAX_SIZE cosmos_authz_v1beta1_Grant_size +#define cosmos_authz_v1beta1_Grant_size (30 + google_protobuf_Any_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/v1beta1/event.pb.c b/app/src/protobuf/cosmos/authz/v1beta1/event.pb.c new file mode 100644 index 0000000..0922633 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/event.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/v1beta1/event.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_v1beta1_EventGrant, cosmos_authz_v1beta1_EventGrant, AUTO) + +PB_BIND(cosmos_authz_v1beta1_EventRevoke, cosmos_authz_v1beta1_EventRevoke, AUTO) diff --git a/app/src/protobuf/cosmos/authz/v1beta1/event.pb.h b/app/src/protobuf/cosmos/authz/v1beta1/event.pb.h new file mode 100644 index 0000000..a9f3fc2 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/event.pb.h @@ -0,0 +1,95 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_EVENT_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_EVENT_PB_H_INCLUDED +#include + +#include "cosmos_proto/cosmos.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* EventGrant is emitted on Msg/Grant */ +typedef struct _cosmos_authz_v1beta1_EventGrant { + /* Msg type URL for which an autorization is granted */ + pb_callback_t msg_type_url; + /* Granter account address */ + pb_callback_t granter; + /* Grantee account address */ + pb_callback_t grantee; +} cosmos_authz_v1beta1_EventGrant; + +/* EventRevoke is emitted on Msg/Revoke */ +typedef struct _cosmos_authz_v1beta1_EventRevoke { + /* Msg type URL for which an autorization is revoked */ + pb_callback_t msg_type_url; + /* Granter account address */ + pb_callback_t granter; + /* Grantee account address */ + pb_callback_t grantee; +} cosmos_authz_v1beta1_EventRevoke; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_v1beta1_EventGrant_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_EventRevoke_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_EventGrant_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_EventRevoke_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_authz_v1beta1_EventGrant_msg_type_url_tag 2 +#define cosmos_authz_v1beta1_EventGrant_granter_tag 3 +#define cosmos_authz_v1beta1_EventGrant_grantee_tag 4 +#define cosmos_authz_v1beta1_EventRevoke_msg_type_url_tag 2 +#define cosmos_authz_v1beta1_EventRevoke_granter_tag 3 +#define cosmos_authz_v1beta1_EventRevoke_grantee_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_v1beta1_EventGrant_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, msg_type_url, 2) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 3) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 4) +#define cosmos_authz_v1beta1_EventGrant_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_EventGrant_DEFAULT NULL + +#define cosmos_authz_v1beta1_EventRevoke_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, msg_type_url, 2) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 3) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 4) +#define cosmos_authz_v1beta1_EventRevoke_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_EventRevoke_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_authz_v1beta1_EventGrant_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_EventRevoke_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_v1beta1_EventGrant_fields &cosmos_authz_v1beta1_EventGrant_msg +#define cosmos_authz_v1beta1_EventRevoke_fields &cosmos_authz_v1beta1_EventRevoke_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_authz_v1beta1_EventGrant_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_EventRevoke_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.c new file mode 100644 index 0000000..13b8c4f --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_v1beta1_GenesisState, cosmos_authz_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.h new file mode 100644 index 0000000..1c036fe --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/genesis.pb.h @@ -0,0 +1,57 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/authz/v1beta1/authz.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the authz module's genesis state. */ +typedef struct _cosmos_authz_v1beta1_GenesisState { + pb_callback_t authorization; +} cosmos_authz_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_v1beta1_GenesisState_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_GenesisState_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_authz_v1beta1_GenesisState_authorization_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_v1beta1_GenesisState_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, authorization, 1) +#define cosmos_authz_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_authz_v1beta1_GenesisState_authorization_MSGTYPE cosmos_authz_v1beta1_GrantAuthorization + +extern const pb_msgdesc_t cosmos_authz_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_v1beta1_GenesisState_fields &cosmos_authz_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_authz_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/v1beta1/query.pb.c b/app/src/protobuf/cosmos/authz/v1beta1/query.pb.c new file mode 100644 index 0000000..30469cf --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/query.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_v1beta1_QueryGrantsRequest, cosmos_authz_v1beta1_QueryGrantsRequest, AUTO) + +PB_BIND(cosmos_authz_v1beta1_QueryGrantsResponse, cosmos_authz_v1beta1_QueryGrantsResponse, AUTO) + +PB_BIND(cosmos_authz_v1beta1_QueryGranterGrantsRequest, cosmos_authz_v1beta1_QueryGranterGrantsRequest, AUTO) + +PB_BIND(cosmos_authz_v1beta1_QueryGranterGrantsResponse, cosmos_authz_v1beta1_QueryGranterGrantsResponse, AUTO) + +PB_BIND(cosmos_authz_v1beta1_QueryGranteeGrantsRequest, cosmos_authz_v1beta1_QueryGranteeGrantsRequest, AUTO) + +PB_BIND(cosmos_authz_v1beta1_QueryGranteeGrantsResponse, cosmos_authz_v1beta1_QueryGranteeGrantsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/authz/v1beta1/query.pb.h b/app/src/protobuf/cosmos/authz/v1beta1/query.pb.h new file mode 100644 index 0000000..bebcd67 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/query.pb.h @@ -0,0 +1,193 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/authz/v1beta1/authz.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryGrantsRequest is the request type for the Query/Grants RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGrantsRequest { + pb_callback_t granter; + pb_callback_t grantee; + /* Optional, msg_type_url, when set, will query only grants matching given msg type. */ + pb_callback_t msg_type_url; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_authz_v1beta1_QueryGrantsRequest; + +/* QueryGrantsResponse is the response type for the Query/Authorizations RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGrantsResponse { + /* authorizations is a list of grants granted for grantee by granter. */ + pb_callback_t grants; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_authz_v1beta1_QueryGrantsResponse; + +/* QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGranterGrantsRequest { + pb_callback_t granter; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_authz_v1beta1_QueryGranterGrantsRequest; + +/* QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGranterGrantsResponse { + /* grants is a list of grants granted by the granter. */ + pb_callback_t grants; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_authz_v1beta1_QueryGranterGrantsResponse; + +/* QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGranteeGrantsRequest { + pb_callback_t grantee; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_authz_v1beta1_QueryGranteeGrantsRequest; + +/* QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. */ +typedef struct _cosmos_authz_v1beta1_QueryGranteeGrantsResponse { + /* grants is a list of grants granted to the grantee. */ + pb_callback_t grants; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_authz_v1beta1_QueryGranteeGrantsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_v1beta1_QueryGrantsRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_authz_v1beta1_QueryGrantsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_authz_v1beta1_QueryGrantsRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_authz_v1beta1_QueryGrantsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_authz_v1beta1_QueryGrantsRequest_granter_tag 1 +#define cosmos_authz_v1beta1_QueryGrantsRequest_grantee_tag 2 +#define cosmos_authz_v1beta1_QueryGrantsRequest_msg_type_url_tag 3 +#define cosmos_authz_v1beta1_QueryGrantsRequest_pagination_tag 4 +#define cosmos_authz_v1beta1_QueryGrantsResponse_grants_tag 1 +#define cosmos_authz_v1beta1_QueryGrantsResponse_pagination_tag 2 +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_granter_tag 1 +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_pagination_tag 2 +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_grants_tag 1 +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_pagination_tag 2 +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_grantee_tag 1 +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_pagination_tag 2 +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_grants_tag 1 +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_v1beta1_QueryGrantsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, CALLBACK, SINGULAR, STRING, msg_type_url, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_authz_v1beta1_QueryGrantsRequest_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGrantsRequest_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGrantsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_authz_v1beta1_QueryGrantsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, grants, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_authz_v1beta1_QueryGrantsResponse_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGrantsResponse_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGrantsResponse_grants_MSGTYPE cosmos_authz_v1beta1_Grant +#define cosmos_authz_v1beta1_QueryGrantsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, grants, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_grants_MSGTYPE cosmos_authz_v1beta1_GrantAuthorization +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, grants, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_DEFAULT NULL +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_grants_MSGTYPE cosmos_authz_v1beta1_GrantAuthorization +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGrantsRequest_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGrantsResponse_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGranterGrantsRequest_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGranterGrantsResponse_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGranteeGrantsRequest_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_QueryGranteeGrantsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_v1beta1_QueryGrantsRequest_fields &cosmos_authz_v1beta1_QueryGrantsRequest_msg +#define cosmos_authz_v1beta1_QueryGrantsResponse_fields &cosmos_authz_v1beta1_QueryGrantsResponse_msg +#define cosmos_authz_v1beta1_QueryGranterGrantsRequest_fields &cosmos_authz_v1beta1_QueryGranterGrantsRequest_msg +#define cosmos_authz_v1beta1_QueryGranterGrantsResponse_fields &cosmos_authz_v1beta1_QueryGranterGrantsResponse_msg +#define cosmos_authz_v1beta1_QueryGranteeGrantsRequest_fields &cosmos_authz_v1beta1_QueryGranteeGrantsRequest_msg +#define cosmos_authz_v1beta1_QueryGranteeGrantsResponse_fields &cosmos_authz_v1beta1_QueryGranteeGrantsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_authz_v1beta1_QueryGrantsRequest_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_QueryGrantsResponse_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_QueryGranterGrantsRequest_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_QueryGranterGrantsResponse_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_QueryGranteeGrantsRequest_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_QueryGranteeGrantsResponse_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.c new file mode 100644 index 0000000..de874f2 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/authz/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_authz_v1beta1_MsgGrant, cosmos_authz_v1beta1_MsgGrant, AUTO) + +PB_BIND(cosmos_authz_v1beta1_MsgExecResponse, cosmos_authz_v1beta1_MsgExecResponse, AUTO) + +PB_BIND(cosmos_authz_v1beta1_MsgExec, cosmos_authz_v1beta1_MsgExec, AUTO) + +PB_BIND(cosmos_authz_v1beta1_MsgGrantResponse, cosmos_authz_v1beta1_MsgGrantResponse, AUTO) + +PB_BIND(cosmos_authz_v1beta1_MsgRevoke, cosmos_authz_v1beta1_MsgRevoke, AUTO) + +PB_BIND(cosmos_authz_v1beta1_MsgRevokeResponse, cosmos_authz_v1beta1_MsgRevokeResponse, AUTO) diff --git a/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.h new file mode 100644 index 0000000..e973873 --- /dev/null +++ b/app/src/protobuf/cosmos/authz/v1beta1/tx.pb.h @@ -0,0 +1,180 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_AUTHZ_V1BETA1_COSMOS_AUTHZ_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/authz/v1beta1/authz.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgGrant is a request type for Grant method. It declares authorization to the grantee + on behalf of the granter with the provided expiration time. */ +typedef struct _cosmos_authz_v1beta1_MsgGrant { + pb_callback_t granter; + pb_callback_t grantee; + bool has_grant; + cosmos_authz_v1beta1_Grant grant; +} cosmos_authz_v1beta1_MsgGrant; + +/* MsgExecResponse defines the Msg/MsgExecResponse response type. */ +typedef struct _cosmos_authz_v1beta1_MsgExecResponse { + pb_callback_t results; +} cosmos_authz_v1beta1_MsgExecResponse; + +/* MsgExec attempts to execute the provided messages using + authorizations granted to the grantee. Each message should have only + one signer corresponding to the granter of the authorization. */ +typedef struct _cosmos_authz_v1beta1_MsgExec { + pb_callback_t grantee; + /* Execute Msg. + The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg)) + triple and validate it. */ + pb_callback_t msgs; +} cosmos_authz_v1beta1_MsgExec; + +/* MsgGrantResponse defines the Msg/MsgGrant response type. */ +typedef struct _cosmos_authz_v1beta1_MsgGrantResponse { + char dummy_field; +} cosmos_authz_v1beta1_MsgGrantResponse; + +/* MsgRevoke revokes any authorization with the provided sdk.Msg type on the + granter's account with that has been granted to the grantee. */ +typedef struct _cosmos_authz_v1beta1_MsgRevoke { + pb_callback_t granter; + pb_callback_t grantee; + pb_callback_t msg_type_url; +} cosmos_authz_v1beta1_MsgRevoke; + +/* MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. */ +typedef struct _cosmos_authz_v1beta1_MsgRevokeResponse { + char dummy_field; +} cosmos_authz_v1beta1_MsgRevokeResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_authz_v1beta1_MsgGrant_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_authz_v1beta1_Grant_init_default } +#define cosmos_authz_v1beta1_MsgExecResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgExec_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgGrantResponse_init_default \ + { 0 } +#define cosmos_authz_v1beta1_MsgRevoke_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgRevokeResponse_init_default \ + { 0 } +#define cosmos_authz_v1beta1_MsgGrant_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_authz_v1beta1_Grant_init_zero } +#define cosmos_authz_v1beta1_MsgExecResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgExec_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgGrantResponse_init_zero \ + { 0 } +#define cosmos_authz_v1beta1_MsgRevoke_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_authz_v1beta1_MsgRevokeResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_authz_v1beta1_MsgGrant_granter_tag 1 +#define cosmos_authz_v1beta1_MsgGrant_grantee_tag 2 +#define cosmos_authz_v1beta1_MsgGrant_grant_tag 3 +#define cosmos_authz_v1beta1_MsgExecResponse_results_tag 1 +#define cosmos_authz_v1beta1_MsgExec_grantee_tag 1 +#define cosmos_authz_v1beta1_MsgExec_msgs_tag 2 +#define cosmos_authz_v1beta1_MsgRevoke_granter_tag 1 +#define cosmos_authz_v1beta1_MsgRevoke_grantee_tag 2 +#define cosmos_authz_v1beta1_MsgRevoke_msg_type_url_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_authz_v1beta1_MsgGrant_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, grant, 3) +#define cosmos_authz_v1beta1_MsgGrant_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_MsgGrant_DEFAULT NULL +#define cosmos_authz_v1beta1_MsgGrant_grant_MSGTYPE cosmos_authz_v1beta1_Grant + +#define cosmos_authz_v1beta1_MsgExecResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, results, 1) +#define cosmos_authz_v1beta1_MsgExecResponse_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_MsgExecResponse_DEFAULT NULL + +#define cosmos_authz_v1beta1_MsgExec_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, msgs, 2) +#define cosmos_authz_v1beta1_MsgExec_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_MsgExec_DEFAULT NULL +#define cosmos_authz_v1beta1_MsgExec_msgs_MSGTYPE google_protobuf_Any + +#define cosmos_authz_v1beta1_MsgGrantResponse_FIELDLIST(X, a) + +#define cosmos_authz_v1beta1_MsgGrantResponse_CALLBACK NULL +#define cosmos_authz_v1beta1_MsgGrantResponse_DEFAULT NULL + +#define cosmos_authz_v1beta1_MsgRevoke_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, CALLBACK, SINGULAR, STRING, msg_type_url, 3) +#define cosmos_authz_v1beta1_MsgRevoke_CALLBACK pb_default_field_callback +#define cosmos_authz_v1beta1_MsgRevoke_DEFAULT NULL + +#define cosmos_authz_v1beta1_MsgRevokeResponse_FIELDLIST(X, a) + +#define cosmos_authz_v1beta1_MsgRevokeResponse_CALLBACK NULL +#define cosmos_authz_v1beta1_MsgRevokeResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgGrant_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgExecResponse_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgExec_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgGrantResponse_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgRevoke_msg; +extern const pb_msgdesc_t cosmos_authz_v1beta1_MsgRevokeResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_authz_v1beta1_MsgGrant_fields &cosmos_authz_v1beta1_MsgGrant_msg +#define cosmos_authz_v1beta1_MsgExecResponse_fields &cosmos_authz_v1beta1_MsgExecResponse_msg +#define cosmos_authz_v1beta1_MsgExec_fields &cosmos_authz_v1beta1_MsgExec_msg +#define cosmos_authz_v1beta1_MsgGrantResponse_fields &cosmos_authz_v1beta1_MsgGrantResponse_msg +#define cosmos_authz_v1beta1_MsgRevoke_fields &cosmos_authz_v1beta1_MsgRevoke_msg +#define cosmos_authz_v1beta1_MsgRevokeResponse_fields &cosmos_authz_v1beta1_MsgRevokeResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_authz_v1beta1_MsgGrant_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_MsgExecResponse_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_MsgExec_size depends on runtime parameters */ +/* cosmos_authz_v1beta1_MsgRevoke_size depends on runtime parameters */ +#define cosmos_authz_v1beta1_MsgGrantResponse_size 0 +#define cosmos_authz_v1beta1_MsgRevokeResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/autocli/v1/options.pb.c b/app/src/protobuf/cosmos/autocli/v1/options.pb.c new file mode 100644 index 0000000..4b39aef --- /dev/null +++ b/app/src/protobuf/cosmos/autocli/v1/options.pb.c @@ -0,0 +1,22 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/autocli/v1/options.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_autocli_v1_ModuleOptions, cosmos_autocli_v1_ModuleOptions, AUTO) + +PB_BIND(cosmos_autocli_v1_ServiceCommandDescriptor, cosmos_autocli_v1_ServiceCommandDescriptor, AUTO) + +PB_BIND(cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry, + cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry, AUTO) + +PB_BIND(cosmos_autocli_v1_RpcCommandOptions, cosmos_autocli_v1_RpcCommandOptions, AUTO) + +PB_BIND(cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry, cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry, AUTO) + +PB_BIND(cosmos_autocli_v1_FlagOptions, cosmos_autocli_v1_FlagOptions, AUTO) + +PB_BIND(cosmos_autocli_v1_PositionalArgDescriptor, cosmos_autocli_v1_PositionalArgDescriptor, AUTO) diff --git a/app/src/protobuf/cosmos/autocli/v1/options.pb.h b/app/src/protobuf/cosmos/autocli/v1/options.pb.h new file mode 100644 index 0000000..93634ca --- /dev/null +++ b/app/src/protobuf/cosmos/autocli/v1/options.pb.h @@ -0,0 +1,304 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTOCLI_V1_COSMOS_AUTOCLI_V1_OPTIONS_PB_H_INCLUDED +#define PB_COSMOS_AUTOCLI_V1_COSMOS_AUTOCLI_V1_OPTIONS_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ServiceCommandDescriptor describes a CLI command based on a protobuf service. */ +typedef struct _cosmos_autocli_v1_ServiceCommandDescriptor { + /* service is the fully qualified name of the protobuf service to build + the command from. It can be left empty if sub_commands are used instead + which may be the case if a module provides multiple tx and/or query services. */ + pb_callback_t service; + /* rpc_command_options are options for commands generated from rpc methods. + If no options are specified for a given rpc method on the service, a + command will be generated for that method with the default options. */ + pb_callback_t rpc_command_options; + /* sub_commands is a map of optional sub-commands for this command based on + different protobuf services. The map key is used as the name of the + sub-command. */ + pb_callback_t sub_commands; +} cosmos_autocli_v1_ServiceCommandDescriptor; + +/* ModuleOptions describes the CLI options for a Cosmos SDK module. */ +typedef struct _cosmos_autocli_v1_ModuleOptions { + /* tx describes the tx commands for the module. */ + bool has_tx; + cosmos_autocli_v1_ServiceCommandDescriptor tx; + /* query describes the queries commands for the module. */ + bool has_query; + cosmos_autocli_v1_ServiceCommandDescriptor query; +} cosmos_autocli_v1_ModuleOptions; + +typedef struct _cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry { + pb_callback_t key; + bool has_value; + cosmos_autocli_v1_ServiceCommandDescriptor value; +} cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry; + +/* RpcCommandOptions specifies options for commands generated from protobuf + rpc methods. */ +typedef struct _cosmos_autocli_v1_RpcCommandOptions { + /* rpc_method is short name of the protobuf rpc method that this command is + generated from. */ + pb_callback_t rpc_method; + /* use is the one-line usage method. It also allows specifying an alternate + name for the command as the first word of the usage text. + + By default the name of an rpc command is the kebab-case short name of the + rpc method. */ + pb_callback_t use; + /* long is the long message shown in the 'help ' output. */ + pb_callback_t long_; + /* short is the short description shown in the 'help' output. */ + pb_callback_t short_; + /* example is examples of how to use the command. */ + pb_callback_t example; + /* alias is an array of aliases that can be used instead of the first word in Use. */ + pb_callback_t alias; + /* suggest_for is an array of command names for which this command will be suggested - + similar to aliases but only suggests. */ + pb_callback_t suggest_for; + /* deprecated defines, if this command is deprecated and should print this string when used. */ + pb_callback_t deprecated; + /* version defines the version for this command. If this value is non-empty and the command does not + define a "version" flag, a "version" boolean flag will be added to the command and, if specified, + will print content of the "Version" variable. A shorthand "v" flag will also be added if the + command does not define one. */ + pb_callback_t version; + /* flag_options are options for flags generated from rpc request fields. + By default all request fields are configured as flags. They can + also be configured as positional args instead using positional_args. */ + pb_callback_t flag_options; + /* positional_args specifies positional arguments for the command. */ + pb_callback_t positional_args; + /* skip specifies whether to skip this rpc method when generating commands. */ + bool skip; +} cosmos_autocli_v1_RpcCommandOptions; + +/* FlagOptions are options for flags generated from rpc request fields. + By default, all request fields are configured as flags based on the + kebab-case name of the field. Fields can be turned into positional arguments + instead by using RpcCommandOptions.positional_args. */ +typedef struct _cosmos_autocli_v1_FlagOptions { + /* name is an alternate name to use for the field flag. */ + pb_callback_t name; + /* shorthand is a one-letter abbreviated flag. */ + pb_callback_t shorthand; + /* usage is the help message. */ + pb_callback_t usage; + /* default_value is the default value as text. */ + pb_callback_t default_value; + /* deprecated is the usage text to show if this flag is deprecated. */ + pb_callback_t deprecated; + /* shorthand_deprecated is the usage text to show if the shorthand of this flag is deprecated. */ + pb_callback_t shorthand_deprecated; + /* hidden hides the flag from help/usage text */ + bool hidden; +} cosmos_autocli_v1_FlagOptions; + +typedef struct _cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry { + pb_callback_t key; + bool has_value; + cosmos_autocli_v1_FlagOptions value; +} cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry; + +/* PositionalArgDescriptor describes a positional argument. */ +typedef struct _cosmos_autocli_v1_PositionalArgDescriptor { + /* proto_field specifies the proto field to use as the positional arg. Any + fields used as positional args will not have a flag generated. */ + pb_callback_t proto_field; + /* varargs makes a positional parameter a varargs parameter. This can only be + applied to last positional parameter and the proto_field must a repeated + field. */ + bool varargs; +} cosmos_autocli_v1_PositionalArgDescriptor; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_autocli_v1_ModuleOptions_init_default \ + { \ + false, cosmos_autocli_v1_ServiceCommandDescriptor_init_default, false, \ + cosmos_autocli_v1_ServiceCommandDescriptor_init_default \ + } +#define cosmos_autocli_v1_ServiceCommandDescriptor_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_init_default \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_ServiceCommandDescriptor_init_default } +#define cosmos_autocli_v1_RpcCommandOptions_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_init_default \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_FlagOptions_init_default } +#define cosmos_autocli_v1_FlagOptions_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_autocli_v1_PositionalArgDescriptor_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_autocli_v1_ModuleOptions_init_zero \ + { \ + false, cosmos_autocli_v1_ServiceCommandDescriptor_init_zero, false, \ + cosmos_autocli_v1_ServiceCommandDescriptor_init_zero \ + } +#define cosmos_autocli_v1_ServiceCommandDescriptor_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_init_zero \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_ServiceCommandDescriptor_init_zero } +#define cosmos_autocli_v1_RpcCommandOptions_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_init_zero \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_FlagOptions_init_zero } +#define cosmos_autocli_v1_FlagOptions_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_autocli_v1_PositionalArgDescriptor_init_zero \ + { {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_autocli_v1_ServiceCommandDescriptor_service_tag 1 +#define cosmos_autocli_v1_ServiceCommandDescriptor_rpc_command_options_tag 2 +#define cosmos_autocli_v1_ServiceCommandDescriptor_sub_commands_tag 3 +#define cosmos_autocli_v1_ModuleOptions_tx_tag 1 +#define cosmos_autocli_v1_ModuleOptions_query_tag 2 +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_key_tag 1 +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_value_tag 2 +#define cosmos_autocli_v1_RpcCommandOptions_rpc_method_tag 1 +#define cosmos_autocli_v1_RpcCommandOptions_use_tag 2 +#define cosmos_autocli_v1_RpcCommandOptions_long__tag 3 +#define cosmos_autocli_v1_RpcCommandOptions_short__tag 4 +#define cosmos_autocli_v1_RpcCommandOptions_example_tag 5 +#define cosmos_autocli_v1_RpcCommandOptions_alias_tag 6 +#define cosmos_autocli_v1_RpcCommandOptions_suggest_for_tag 7 +#define cosmos_autocli_v1_RpcCommandOptions_deprecated_tag 8 +#define cosmos_autocli_v1_RpcCommandOptions_version_tag 9 +#define cosmos_autocli_v1_RpcCommandOptions_flag_options_tag 10 +#define cosmos_autocli_v1_RpcCommandOptions_positional_args_tag 11 +#define cosmos_autocli_v1_RpcCommandOptions_skip_tag 12 +#define cosmos_autocli_v1_FlagOptions_name_tag 1 +#define cosmos_autocli_v1_FlagOptions_shorthand_tag 2 +#define cosmos_autocli_v1_FlagOptions_usage_tag 3 +#define cosmos_autocli_v1_FlagOptions_default_value_tag 4 +#define cosmos_autocli_v1_FlagOptions_deprecated_tag 6 +#define cosmos_autocli_v1_FlagOptions_shorthand_deprecated_tag 7 +#define cosmos_autocli_v1_FlagOptions_hidden_tag 8 +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_key_tag 1 +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_value_tag 2 +#define cosmos_autocli_v1_PositionalArgDescriptor_proto_field_tag 1 +#define cosmos_autocli_v1_PositionalArgDescriptor_varargs_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_autocli_v1_ModuleOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, query, 2) +#define cosmos_autocli_v1_ModuleOptions_CALLBACK NULL +#define cosmos_autocli_v1_ModuleOptions_DEFAULT NULL +#define cosmos_autocli_v1_ModuleOptions_tx_MSGTYPE cosmos_autocli_v1_ServiceCommandDescriptor +#define cosmos_autocli_v1_ModuleOptions_query_MSGTYPE cosmos_autocli_v1_ServiceCommandDescriptor + +#define cosmos_autocli_v1_ServiceCommandDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, service, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, rpc_command_options, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, sub_commands, 3) +#define cosmos_autocli_v1_ServiceCommandDescriptor_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_ServiceCommandDescriptor_DEFAULT NULL +#define cosmos_autocli_v1_ServiceCommandDescriptor_rpc_command_options_MSGTYPE cosmos_autocli_v1_RpcCommandOptions +#define cosmos_autocli_v1_ServiceCommandDescriptor_sub_commands_MSGTYPE \ + cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry + +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 2) +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_DEFAULT NULL +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_value_MSGTYPE cosmos_autocli_v1_ServiceCommandDescriptor + +#define cosmos_autocli_v1_RpcCommandOptions_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, rpc_method, 1) \ + X(a, CALLBACK, SINGULAR, STRING, use, 2) \ + X(a, CALLBACK, SINGULAR, STRING, long_, 3) \ + X(a, CALLBACK, SINGULAR, STRING, short_, 4) \ + X(a, CALLBACK, SINGULAR, STRING, example, 5) \ + X(a, CALLBACK, REPEATED, STRING, alias, 6) \ + X(a, CALLBACK, REPEATED, STRING, suggest_for, 7) \ + X(a, CALLBACK, SINGULAR, STRING, deprecated, 8) \ + X(a, CALLBACK, SINGULAR, STRING, version, 9) \ + X(a, CALLBACK, REPEATED, MESSAGE, flag_options, 10) \ + X(a, CALLBACK, REPEATED, MESSAGE, positional_args, 11) \ + X(a, STATIC, SINGULAR, BOOL, skip, 12) +#define cosmos_autocli_v1_RpcCommandOptions_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_RpcCommandOptions_DEFAULT NULL +#define cosmos_autocli_v1_RpcCommandOptions_flag_options_MSGTYPE cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry +#define cosmos_autocli_v1_RpcCommandOptions_positional_args_MSGTYPE cosmos_autocli_v1_PositionalArgDescriptor + +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 2) +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_DEFAULT NULL +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_value_MSGTYPE cosmos_autocli_v1_FlagOptions + +#define cosmos_autocli_v1_FlagOptions_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, shorthand, 2) \ + X(a, CALLBACK, SINGULAR, STRING, usage, 3) \ + X(a, CALLBACK, SINGULAR, STRING, default_value, 4) \ + X(a, CALLBACK, SINGULAR, STRING, deprecated, 6) \ + X(a, CALLBACK, SINGULAR, STRING, shorthand_deprecated, 7) \ + X(a, STATIC, SINGULAR, BOOL, hidden, 8) +#define cosmos_autocli_v1_FlagOptions_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_FlagOptions_DEFAULT NULL + +#define cosmos_autocli_v1_PositionalArgDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, proto_field, 1) \ + X(a, STATIC, SINGULAR, BOOL, varargs, 2) +#define cosmos_autocli_v1_PositionalArgDescriptor_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_PositionalArgDescriptor_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_autocli_v1_ModuleOptions_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_ServiceCommandDescriptor_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_RpcCommandOptions_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_FlagOptions_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_PositionalArgDescriptor_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_autocli_v1_ModuleOptions_fields &cosmos_autocli_v1_ModuleOptions_msg +#define cosmos_autocli_v1_ServiceCommandDescriptor_fields &cosmos_autocli_v1_ServiceCommandDescriptor_msg +#define cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_fields \ + &cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_msg +#define cosmos_autocli_v1_RpcCommandOptions_fields &cosmos_autocli_v1_RpcCommandOptions_msg +#define cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_fields &cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_msg +#define cosmos_autocli_v1_FlagOptions_fields &cosmos_autocli_v1_FlagOptions_msg +#define cosmos_autocli_v1_PositionalArgDescriptor_fields &cosmos_autocli_v1_PositionalArgDescriptor_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_autocli_v1_ModuleOptions_size depends on runtime parameters */ +/* cosmos_autocli_v1_ServiceCommandDescriptor_size depends on runtime parameters */ +/* cosmos_autocli_v1_ServiceCommandDescriptor_SubCommandsEntry_size depends on runtime parameters */ +/* cosmos_autocli_v1_RpcCommandOptions_size depends on runtime parameters */ +/* cosmos_autocli_v1_RpcCommandOptions_FlagOptionsEntry_size depends on runtime parameters */ +/* cosmos_autocli_v1_FlagOptions_size depends on runtime parameters */ +/* cosmos_autocli_v1_PositionalArgDescriptor_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/autocli/v1/query.pb.c b/app/src/protobuf/cosmos/autocli/v1/query.pb.c new file mode 100644 index 0000000..742efaa --- /dev/null +++ b/app/src/protobuf/cosmos/autocli/v1/query.pb.c @@ -0,0 +1,14 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/autocli/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_autocli_v1_AppOptionsRequest, cosmos_autocli_v1_AppOptionsRequest, AUTO) + +PB_BIND(cosmos_autocli_v1_AppOptionsResponse, cosmos_autocli_v1_AppOptionsResponse, AUTO) + +PB_BIND(cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry, cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry, + AUTO) diff --git a/app/src/protobuf/cosmos/autocli/v1/query.pb.h b/app/src/protobuf/cosmos/autocli/v1/query.pb.h new file mode 100644 index 0000000..5cc5112 --- /dev/null +++ b/app/src/protobuf/cosmos/autocli/v1/query.pb.h @@ -0,0 +1,98 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_AUTOCLI_V1_COSMOS_AUTOCLI_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_AUTOCLI_V1_COSMOS_AUTOCLI_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/autocli/v1/options.pb.h" +#include "cosmos/query/v1/query.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* AppOptionsRequest is the RemoteInfoService/AppOptions request type. */ +typedef struct _cosmos_autocli_v1_AppOptionsRequest { + char dummy_field; +} cosmos_autocli_v1_AppOptionsRequest; + +/* AppOptionsResponse is the RemoteInfoService/AppOptions response type. */ +typedef struct _cosmos_autocli_v1_AppOptionsResponse { + /* module_options is a map of module name to autocli module options. */ + pb_callback_t module_options; +} cosmos_autocli_v1_AppOptionsResponse; + +typedef struct _cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry { + pb_callback_t key; + bool has_value; + cosmos_autocli_v1_ModuleOptions value; +} cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_autocli_v1_AppOptionsRequest_init_default \ + { 0 } +#define cosmos_autocli_v1_AppOptionsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_init_default \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_ModuleOptions_init_default } +#define cosmos_autocli_v1_AppOptionsRequest_init_zero \ + { 0 } +#define cosmos_autocli_v1_AppOptionsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_init_zero \ + { {{NULL}, NULL}, false, cosmos_autocli_v1_ModuleOptions_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_autocli_v1_AppOptionsResponse_module_options_tag 1 +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_key_tag 1 +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_value_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_autocli_v1_AppOptionsRequest_FIELDLIST(X, a) + +#define cosmos_autocli_v1_AppOptionsRequest_CALLBACK NULL +#define cosmos_autocli_v1_AppOptionsRequest_DEFAULT NULL + +#define cosmos_autocli_v1_AppOptionsResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, module_options, 1) +#define cosmos_autocli_v1_AppOptionsResponse_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_AppOptionsResponse_DEFAULT NULL +#define cosmos_autocli_v1_AppOptionsResponse_module_options_MSGTYPE cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry + +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 2) +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_CALLBACK pb_default_field_callback +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_DEFAULT NULL +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_value_MSGTYPE cosmos_autocli_v1_ModuleOptions + +extern const pb_msgdesc_t cosmos_autocli_v1_AppOptionsRequest_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_AppOptionsResponse_msg; +extern const pb_msgdesc_t cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_autocli_v1_AppOptionsRequest_fields &cosmos_autocli_v1_AppOptionsRequest_msg +#define cosmos_autocli_v1_AppOptionsResponse_fields &cosmos_autocli_v1_AppOptionsResponse_msg +#define cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_fields \ + &cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_autocli_v1_AppOptionsResponse_size depends on runtime parameters */ +/* cosmos_autocli_v1_AppOptionsResponse_ModuleOptionsEntry_size depends on runtime parameters */ +#define COSMOS_AUTOCLI_V1_COSMOS_AUTOCLI_V1_QUERY_PB_H_MAX_SIZE cosmos_autocli_v1_AppOptionsRequest_size +#define cosmos_autocli_v1_AppOptionsRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/module/v1/module.pb.c b/app/src/protobuf/cosmos/bank/module/v1/module.pb.c new file mode 100644 index 0000000..e157322 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_module_v1_Module, cosmos_bank_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/bank/module/v1/module.pb.h b/app/src/protobuf/cosmos/bank/module/v1/module.pb.h new file mode 100644 index 0000000..ad81ff4 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/module/v1/module.pb.h @@ -0,0 +1,62 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_MODULE_V1_COSMOS_BANK_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_BANK_MODULE_V1_COSMOS_BANK_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the bank module. */ +typedef struct _cosmos_bank_module_v1_Module { + /* blocked_module_accounts configures exceptional module accounts which should be blocked from receiving funds. + If left empty it defaults to the list of account names supplied in the auth module configuration as + module_account_permissions */ + pb_callback_t blocked_module_accounts_override; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_bank_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_module_v1_Module_blocked_module_accounts_override_tag 1 +#define cosmos_bank_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, blocked_module_accounts_override, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_bank_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_bank_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_bank_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_module_v1_Module_fields &cosmos_bank_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.c b/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.c new file mode 100644 index 0000000..b4e5571 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/v1beta1/authz.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_v1beta1_SendAuthorization, cosmos_bank_v1beta1_SendAuthorization, AUTO) diff --git a/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.h b/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.h new file mode 100644 index 0000000..8a3e5b0 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/authz.pb.h @@ -0,0 +1,69 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_AUTHZ_PB_H_INCLUDED +#define PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_AUTHZ_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* SendAuthorization allows the grantee to spend up to spend_limit coins from + the granter's account. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_bank_v1beta1_SendAuthorization { + pb_callback_t spend_limit; + /* allow_list specifies an optional list of addresses to whom the grantee can send tokens on behalf of the + granter. If omitted, any recipient is allowed. + + Since: cosmos-sdk 0.47 */ + pb_callback_t allow_list; +} cosmos_bank_v1beta1_SendAuthorization; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_v1beta1_SendAuthorization_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_SendAuthorization_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_v1beta1_SendAuthorization_spend_limit_tag 1 +#define cosmos_bank_v1beta1_SendAuthorization_allow_list_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_v1beta1_SendAuthorization_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, spend_limit, 1) \ + X(a, CALLBACK, REPEATED, STRING, allow_list, 2) +#define cosmos_bank_v1beta1_SendAuthorization_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_SendAuthorization_DEFAULT NULL +#define cosmos_bank_v1beta1_SendAuthorization_spend_limit_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t cosmos_bank_v1beta1_SendAuthorization_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_v1beta1_SendAuthorization_fields &cosmos_bank_v1beta1_SendAuthorization_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_v1beta1_SendAuthorization_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.c b/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.c new file mode 100644 index 0000000..23a7b19 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/v1beta1/bank.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_v1beta1_Params, cosmos_bank_v1beta1_Params, AUTO) + +PB_BIND(cosmos_bank_v1beta1_SendEnabled, cosmos_bank_v1beta1_SendEnabled, AUTO) + +PB_BIND(cosmos_bank_v1beta1_Input, cosmos_bank_v1beta1_Input, AUTO) + +PB_BIND(cosmos_bank_v1beta1_Output, cosmos_bank_v1beta1_Output, AUTO) + +PB_BIND(cosmos_bank_v1beta1_Supply, cosmos_bank_v1beta1_Supply, AUTO) + +PB_BIND(cosmos_bank_v1beta1_DenomUnit, cosmos_bank_v1beta1_DenomUnit, AUTO) + +PB_BIND(cosmos_bank_v1beta1_Metadata, cosmos_bank_v1beta1_Metadata, AUTO) diff --git a/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.h b/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.h new file mode 100644 index 0000000..209dd23 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/bank.pb.h @@ -0,0 +1,265 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_BANK_PB_H_INCLUDED +#define PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_BANK_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Params defines the parameters for the bank module. */ +typedef struct _cosmos_bank_v1beta1_Params { + /* Deprecated: Use of SendEnabled in params is deprecated. + For genesis, use the newly added send_enabled field in the genesis object. + Storage, lookup, and manipulation of this information is now in the keeper. + + As of cosmos-sdk 0.47, this only exists for backwards compatibility of genesis files. */ + pb_callback_t send_enabled; + bool default_send_enabled; +} cosmos_bank_v1beta1_Params; + +/* SendEnabled maps coin denom to a send_enabled status (whether a denom is + sendable). */ +typedef struct _cosmos_bank_v1beta1_SendEnabled { + pb_callback_t denom; + bool enabled; +} cosmos_bank_v1beta1_SendEnabled; + +/* Input models transaction input. */ +typedef struct _cosmos_bank_v1beta1_Input { + pb_callback_t address; + pb_callback_t coins; +} cosmos_bank_v1beta1_Input; + +/* Output models transaction outputs. */ +typedef struct _cosmos_bank_v1beta1_Output { + pb_callback_t address; + pb_callback_t coins; +} cosmos_bank_v1beta1_Output; + +/* Supply represents a struct that passively keeps track of the total supply + amounts in the network. + This message is deprecated now that supply is indexed by denom. */ +typedef struct _cosmos_bank_v1beta1_Supply { + pb_callback_t total; +} cosmos_bank_v1beta1_Supply; + +/* DenomUnit represents a struct that describes a given + denomination unit of the basic token. */ +typedef struct _cosmos_bank_v1beta1_DenomUnit { + /* denom represents the string name of the given denom unit (e.g uatom). */ + pb_callback_t denom; + /* exponent represents power of 10 exponent that one must + raise the base_denom to in order to equal the given DenomUnit's denom + 1 denom = 10^exponent base_denom + (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + exponent = 6, thus: 1 atom = 10^6 uatom). */ + uint32_t exponent; + /* aliases is a list of string aliases for the given denom */ + pb_callback_t aliases; +} cosmos_bank_v1beta1_DenomUnit; + +/* Metadata represents a struct that describes + a basic token. */ +typedef struct _cosmos_bank_v1beta1_Metadata { + pb_callback_t description; + /* denom_units represents the list of DenomUnit's for a given coin */ + pb_callback_t denom_units; + /* base represents the base denom (should be the DenomUnit with exponent = 0). */ + pb_callback_t base; + /* display indicates the suggested denom that should be + displayed in clients. */ + pb_callback_t display; + /* name defines the name of the token (eg: Cosmos Atom) + + Since: cosmos-sdk 0.43 */ + pb_callback_t name; + /* symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + be the same as the display. + + Since: cosmos-sdk 0.43 */ + pb_callback_t symbol; + /* URI to a document (on or off-chain) that contains additional information. Optional. + + Since: cosmos-sdk 0.46 */ + pb_callback_t uri; + /* URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + the document didn't change. Optional. + + Since: cosmos-sdk 0.46 */ + pb_callback_t uri_hash; +} cosmos_bank_v1beta1_Metadata; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_v1beta1_Params_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_bank_v1beta1_SendEnabled_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_bank_v1beta1_Input_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Output_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Supply_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_DenomUnit_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Metadata_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_bank_v1beta1_Params_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_bank_v1beta1_SendEnabled_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_bank_v1beta1_Input_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Output_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Supply_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_DenomUnit_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Metadata_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_v1beta1_Params_send_enabled_tag 1 +#define cosmos_bank_v1beta1_Params_default_send_enabled_tag 2 +#define cosmos_bank_v1beta1_SendEnabled_denom_tag 1 +#define cosmos_bank_v1beta1_SendEnabled_enabled_tag 2 +#define cosmos_bank_v1beta1_Input_address_tag 1 +#define cosmos_bank_v1beta1_Input_coins_tag 2 +#define cosmos_bank_v1beta1_Output_address_tag 1 +#define cosmos_bank_v1beta1_Output_coins_tag 2 +#define cosmos_bank_v1beta1_Supply_total_tag 1 +#define cosmos_bank_v1beta1_DenomUnit_denom_tag 1 +#define cosmos_bank_v1beta1_DenomUnit_exponent_tag 2 +#define cosmos_bank_v1beta1_DenomUnit_aliases_tag 3 +#define cosmos_bank_v1beta1_Metadata_description_tag 1 +#define cosmos_bank_v1beta1_Metadata_denom_units_tag 2 +#define cosmos_bank_v1beta1_Metadata_base_tag 3 +#define cosmos_bank_v1beta1_Metadata_display_tag 4 +#define cosmos_bank_v1beta1_Metadata_name_tag 5 +#define cosmos_bank_v1beta1_Metadata_symbol_tag 6 +#define cosmos_bank_v1beta1_Metadata_uri_tag 7 +#define cosmos_bank_v1beta1_Metadata_uri_hash_tag 8 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_v1beta1_Params_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, send_enabled, 1) \ + X(a, STATIC, SINGULAR, BOOL, default_send_enabled, 2) +#define cosmos_bank_v1beta1_Params_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Params_DEFAULT NULL +#define cosmos_bank_v1beta1_Params_send_enabled_MSGTYPE cosmos_bank_v1beta1_SendEnabled + +#define cosmos_bank_v1beta1_SendEnabled_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, STATIC, SINGULAR, BOOL, enabled, 2) +#define cosmos_bank_v1beta1_SendEnabled_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_SendEnabled_DEFAULT NULL + +#define cosmos_bank_v1beta1_Input_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, coins, 2) +#define cosmos_bank_v1beta1_Input_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Input_DEFAULT NULL +#define cosmos_bank_v1beta1_Input_coins_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_Output_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, coins, 2) +#define cosmos_bank_v1beta1_Output_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Output_DEFAULT NULL +#define cosmos_bank_v1beta1_Output_coins_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_Supply_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, total, 1) +#define cosmos_bank_v1beta1_Supply_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Supply_DEFAULT NULL +#define cosmos_bank_v1beta1_Supply_total_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_DenomUnit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, STATIC, SINGULAR, UINT32, exponent, 2) \ + X(a, CALLBACK, REPEATED, STRING, aliases, 3) +#define cosmos_bank_v1beta1_DenomUnit_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_DenomUnit_DEFAULT NULL + +#define cosmos_bank_v1beta1_Metadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, description, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_units, 2) \ + X(a, CALLBACK, SINGULAR, STRING, base, 3) \ + X(a, CALLBACK, SINGULAR, STRING, display, 4) \ + X(a, CALLBACK, SINGULAR, STRING, name, 5) \ + X(a, CALLBACK, SINGULAR, STRING, symbol, 6) \ + X(a, CALLBACK, SINGULAR, STRING, uri, 7) \ + X(a, CALLBACK, SINGULAR, STRING, uri_hash, 8) +#define cosmos_bank_v1beta1_Metadata_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Metadata_DEFAULT NULL +#define cosmos_bank_v1beta1_Metadata_denom_units_MSGTYPE cosmos_bank_v1beta1_DenomUnit + +extern const pb_msgdesc_t cosmos_bank_v1beta1_Params_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_SendEnabled_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_Input_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_Output_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_Supply_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_DenomUnit_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_Metadata_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_v1beta1_Params_fields &cosmos_bank_v1beta1_Params_msg +#define cosmos_bank_v1beta1_SendEnabled_fields &cosmos_bank_v1beta1_SendEnabled_msg +#define cosmos_bank_v1beta1_Input_fields &cosmos_bank_v1beta1_Input_msg +#define cosmos_bank_v1beta1_Output_fields &cosmos_bank_v1beta1_Output_msg +#define cosmos_bank_v1beta1_Supply_fields &cosmos_bank_v1beta1_Supply_msg +#define cosmos_bank_v1beta1_DenomUnit_fields &cosmos_bank_v1beta1_DenomUnit_msg +#define cosmos_bank_v1beta1_Metadata_fields &cosmos_bank_v1beta1_Metadata_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_v1beta1_Params_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_SendEnabled_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_Input_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_Output_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_Supply_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_DenomUnit_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_Metadata_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.c new file mode 100644 index 0000000..679857a --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_v1beta1_GenesisState, cosmos_bank_v1beta1_GenesisState, AUTO) + +PB_BIND(cosmos_bank_v1beta1_Balance, cosmos_bank_v1beta1_Balance, AUTO) diff --git a/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.h new file mode 100644 index 0000000..7d4a02d --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/genesis.pb.h @@ -0,0 +1,114 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/bank/v1beta1/bank.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the bank module's genesis state. */ +typedef struct _cosmos_bank_v1beta1_GenesisState { + /* params defines all the parameters of the module. */ + bool has_params; + cosmos_bank_v1beta1_Params params; + /* balances is an array containing the balances of all the accounts. */ + pb_callback_t balances; + /* supply represents the total supply. If it is left empty, then supply will be calculated based on the provided + balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. */ + pb_callback_t supply; + /* denom_metadata defines the metadata of the different coins. */ + pb_callback_t denom_metadata; + /* send_enabled defines the denoms where send is enabled or disabled. + + Since: cosmos-sdk 0.47 */ + pb_callback_t send_enabled; +} cosmos_bank_v1beta1_GenesisState; + +/* Balance defines an account address and balance pair used in the bank module's + genesis state. */ +typedef struct _cosmos_bank_v1beta1_Balance { + /* address is the address of the balance holder. */ + pb_callback_t address; + /* coins defines the different coins this balance holds. */ + pb_callback_t coins; +} cosmos_bank_v1beta1_Balance; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_v1beta1_GenesisState_init_default \ + { \ + false, cosmos_bank_v1beta1_Params_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Balance_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_GenesisState_init_zero \ + { \ + false, cosmos_bank_v1beta1_Params_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_Balance_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_v1beta1_GenesisState_params_tag 1 +#define cosmos_bank_v1beta1_GenesisState_balances_tag 2 +#define cosmos_bank_v1beta1_GenesisState_supply_tag 3 +#define cosmos_bank_v1beta1_GenesisState_denom_metadata_tag 4 +#define cosmos_bank_v1beta1_GenesisState_send_enabled_tag 5 +#define cosmos_bank_v1beta1_Balance_address_tag 1 +#define cosmos_bank_v1beta1_Balance_coins_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, balances, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, supply, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_metadata, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, send_enabled, 5) +#define cosmos_bank_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_bank_v1beta1_GenesisState_params_MSGTYPE cosmos_bank_v1beta1_Params +#define cosmos_bank_v1beta1_GenesisState_balances_MSGTYPE cosmos_bank_v1beta1_Balance +#define cosmos_bank_v1beta1_GenesisState_supply_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_bank_v1beta1_GenesisState_denom_metadata_MSGTYPE cosmos_bank_v1beta1_Metadata +#define cosmos_bank_v1beta1_GenesisState_send_enabled_MSGTYPE cosmos_bank_v1beta1_SendEnabled + +#define cosmos_bank_v1beta1_Balance_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, coins, 2) +#define cosmos_bank_v1beta1_Balance_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_Balance_DEFAULT NULL +#define cosmos_bank_v1beta1_Balance_coins_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t cosmos_bank_v1beta1_GenesisState_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_Balance_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_v1beta1_GenesisState_fields &cosmos_bank_v1beta1_GenesisState_msg +#define cosmos_bank_v1beta1_Balance_fields &cosmos_bank_v1beta1_Balance_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_v1beta1_GenesisState_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_Balance_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/v1beta1/query.pb.c b/app/src/protobuf/cosmos/bank/v1beta1/query.pb.c new file mode 100644 index 0000000..78a702b --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/query.pb.c @@ -0,0 +1,55 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_v1beta1_QueryBalanceRequest, cosmos_bank_v1beta1_QueryBalanceRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryBalanceResponse, cosmos_bank_v1beta1_QueryBalanceResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryAllBalancesRequest, cosmos_bank_v1beta1_QueryAllBalancesRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryAllBalancesResponse, cosmos_bank_v1beta1_QueryAllBalancesResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySpendableBalancesRequest, cosmos_bank_v1beta1_QuerySpendableBalancesRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySpendableBalancesResponse, cosmos_bank_v1beta1_QuerySpendableBalancesResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest, cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest, + AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse, cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse, + AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryTotalSupplyRequest, cosmos_bank_v1beta1_QueryTotalSupplyRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryTotalSupplyResponse, cosmos_bank_v1beta1_QueryTotalSupplyResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySupplyOfRequest, cosmos_bank_v1beta1_QuerySupplyOfRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySupplyOfResponse, cosmos_bank_v1beta1_QuerySupplyOfResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryParamsRequest, cosmos_bank_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryParamsResponse, cosmos_bank_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomsMetadataRequest, cosmos_bank_v1beta1_QueryDenomsMetadataRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomsMetadataResponse, cosmos_bank_v1beta1_QueryDenomsMetadataResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomMetadataRequest, cosmos_bank_v1beta1_QueryDenomMetadataRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomMetadataResponse, cosmos_bank_v1beta1_QueryDenomMetadataResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomOwnersRequest, cosmos_bank_v1beta1_QueryDenomOwnersRequest, AUTO) + +PB_BIND(cosmos_bank_v1beta1_DenomOwner, cosmos_bank_v1beta1_DenomOwner, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QueryDenomOwnersResponse, cosmos_bank_v1beta1_QueryDenomOwnersResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_QuerySendEnabledRequest, cosmos_bank_v1beta1_QuerySendEnabledRequest, 2) + +PB_BIND(cosmos_bank_v1beta1_QuerySendEnabledResponse, cosmos_bank_v1beta1_QuerySendEnabledResponse, 2) diff --git a/app/src/protobuf/cosmos/bank/v1beta1/query.pb.h b/app/src/protobuf/cosmos/bank/v1beta1/query.pb.h new file mode 100644 index 0000000..30ed95e --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/query.pb.h @@ -0,0 +1,625 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/bank/v1beta1/bank.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/query/v1/query.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryBalanceRequest is the request type for the Query/Balance RPC method. */ +typedef struct _cosmos_bank_v1beta1_QueryBalanceRequest { + /* address is the address to query balances for. */ + pb_callback_t address; + /* denom is the coin denom to query balances for. */ + pb_callback_t denom; +} cosmos_bank_v1beta1_QueryBalanceRequest; + +/* QueryBalanceResponse is the response type for the Query/Balance RPC method. */ +typedef struct _cosmos_bank_v1beta1_QueryBalanceResponse { + /* balance is the balance of the coin. */ + bool has_balance; + cosmos_base_v1beta1_Coin balance; +} cosmos_bank_v1beta1_QueryBalanceResponse; + +/* QueryBalanceRequest is the request type for the Query/AllBalances RPC method. */ +typedef struct _cosmos_bank_v1beta1_QueryAllBalancesRequest { + /* address is the address to query balances for. */ + pb_callback_t address; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + /* resolve_denom is the flag to resolve the denom into a human-readable form from the metadata. + + Since: cosmos-sdk 0.48 */ + bool resolve_denom; +} cosmos_bank_v1beta1_QueryAllBalancesRequest; + +/* QueryAllBalancesResponse is the response type for the Query/AllBalances RPC + method. */ +typedef struct _cosmos_bank_v1beta1_QueryAllBalancesResponse { + /* balances is the balances of all the coins. */ + pb_callback_t balances; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QueryAllBalancesResponse; + +/* QuerySpendableBalancesRequest defines the gRPC request structure for querying + an account's spendable balances. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_bank_v1beta1_QuerySpendableBalancesRequest { + /* address is the address to query spendable balances for. */ + pb_callback_t address; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_bank_v1beta1_QuerySpendableBalancesRequest; + +/* QuerySpendableBalancesResponse defines the gRPC response structure for querying + an account's spendable balances. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_bank_v1beta1_QuerySpendableBalancesResponse { + /* balances is the spendable balances of all the coins. */ + pb_callback_t balances; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QuerySpendableBalancesResponse; + +/* QuerySpendableBalanceByDenomRequest defines the gRPC request structure for + querying an account's spendable balance for a specific denom. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest { + /* address is the address to query balances for. */ + pb_callback_t address; + /* denom is the coin denom to query balances for. */ + pb_callback_t denom; +} cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest; + +/* QuerySpendableBalanceByDenomResponse defines the gRPC response structure for + querying an account's spendable balance for a specific denom. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse { + /* balance is the balance of the coin. */ + bool has_balance; + cosmos_base_v1beta1_Coin balance; +} cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse; + +/* QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC + method. */ +typedef struct _cosmos_bank_v1beta1_QueryTotalSupplyRequest { + /* pagination defines an optional pagination for the request. + + Since: cosmos-sdk 0.43 */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_bank_v1beta1_QueryTotalSupplyRequest; + +/* QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC + method */ +typedef struct _cosmos_bank_v1beta1_QueryTotalSupplyResponse { + /* supply is the supply of the coins */ + pb_callback_t supply; + /* pagination defines the pagination in the response. + + Since: cosmos-sdk 0.43 */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QueryTotalSupplyResponse; + +/* QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. */ +typedef struct _cosmos_bank_v1beta1_QuerySupplyOfRequest { + /* denom is the coin denom to query balances for. */ + pb_callback_t denom; +} cosmos_bank_v1beta1_QuerySupplyOfRequest; + +/* QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. */ +typedef struct _cosmos_bank_v1beta1_QuerySupplyOfResponse { + /* amount is the supply of the coin. */ + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} cosmos_bank_v1beta1_QuerySupplyOfResponse; + +/* QueryParamsRequest defines the request type for querying x/bank parameters. */ +typedef struct _cosmos_bank_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_bank_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse defines the response type for querying x/bank parameters. */ +typedef struct _cosmos_bank_v1beta1_QueryParamsResponse { + bool has_params; + cosmos_bank_v1beta1_Params params; +} cosmos_bank_v1beta1_QueryParamsResponse; + +/* QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. */ +typedef struct _cosmos_bank_v1beta1_QueryDenomsMetadataRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_bank_v1beta1_QueryDenomsMetadataRequest; + +/* QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC + method. */ +typedef struct _cosmos_bank_v1beta1_QueryDenomsMetadataResponse { + /* metadata provides the client information for all the registered tokens. */ + pb_callback_t metadatas; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QueryDenomsMetadataResponse; + +/* QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. */ +typedef struct _cosmos_bank_v1beta1_QueryDenomMetadataRequest { + /* denom is the coin denom to query the metadata for. */ + pb_callback_t denom; +} cosmos_bank_v1beta1_QueryDenomMetadataRequest; + +/* QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC + method. */ +typedef struct _cosmos_bank_v1beta1_QueryDenomMetadataResponse { + /* metadata describes and provides all the client information for the requested token. */ + bool has_metadata; + cosmos_bank_v1beta1_Metadata metadata; +} cosmos_bank_v1beta1_QueryDenomMetadataResponse; + +/* QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, + which queries for a paginated set of all account holders of a particular + denomination. */ +typedef struct _cosmos_bank_v1beta1_QueryDenomOwnersRequest { + /* denom defines the coin denomination to query all account holders for. */ + pb_callback_t denom; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_bank_v1beta1_QueryDenomOwnersRequest; + +/* DenomOwner defines structure representing an account that owns or holds a + particular denominated token. It contains the account address and account + balance of the denominated token. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_bank_v1beta1_DenomOwner { + /* address defines the address that owns a particular denomination. */ + pb_callback_t address; + /* balance is the balance of the denominated coin for an account. */ + bool has_balance; + cosmos_base_v1beta1_Coin balance; +} cosmos_bank_v1beta1_DenomOwner; + +/* QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_bank_v1beta1_QueryDenomOwnersResponse { + pb_callback_t denom_owners; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QueryDenomOwnersResponse; + +/* QuerySendEnabledRequest defines the RPC request for looking up SendEnabled entries. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_QuerySendEnabledRequest { + /* denoms is the specific denoms you want look up. Leave empty to get all entries. */ + pb_callback_t denoms; + /* pagination defines an optional pagination for the request. This field is + only read if the denoms field is empty. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_bank_v1beta1_QuerySendEnabledRequest; + +/* QuerySendEnabledResponse defines the RPC response of a SendEnable query. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_QuerySendEnabledResponse { + pb_callback_t send_enabled; + /* pagination defines the pagination in the response. This field is only + populated if the denoms field in the request is empty. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_bank_v1beta1_QuerySendEnabledResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_v1beta1_QueryBalanceRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QueryBalanceResponse_init_default \ + { false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default, 0 } +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_init_default \ + { false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_init_default \ + { false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_bank_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_bank_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_bank_v1beta1_Params_init_default } +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_init_default \ + { false, cosmos_bank_v1beta1_Metadata_init_default } +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_bank_v1beta1_DenomOwner_init_default \ + { {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_bank_v1beta1_QueryBalanceRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QueryBalanceResponse_init_zero \ + { false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero, 0 } +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_init_zero \ + { false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_init_zero \ + { false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_bank_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_bank_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_bank_v1beta1_Params_init_zero } +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_init_zero \ + { false, cosmos_bank_v1beta1_Metadata_init_zero } +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_bank_v1beta1_DenomOwner_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_v1beta1_QueryBalanceRequest_address_tag 1 +#define cosmos_bank_v1beta1_QueryBalanceRequest_denom_tag 2 +#define cosmos_bank_v1beta1_QueryBalanceResponse_balance_tag 1 +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_address_tag 1 +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_pagination_tag 2 +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_resolve_denom_tag 3 +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_balances_tag 1 +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_pagination_tag 2 +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_address_tag 1 +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_pagination_tag 2 +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_balances_tag 1 +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_pagination_tag 2 +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_address_tag 1 +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_denom_tag 2 +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_balance_tag 1 +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_pagination_tag 1 +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_supply_tag 1 +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_pagination_tag 2 +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_denom_tag 1 +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_amount_tag 1 +#define cosmos_bank_v1beta1_QueryParamsResponse_params_tag 1 +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_pagination_tag 1 +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_metadatas_tag 1 +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_pagination_tag 2 +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_denom_tag 1 +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_metadata_tag 1 +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_denom_tag 1 +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_pagination_tag 2 +#define cosmos_bank_v1beta1_DenomOwner_address_tag 1 +#define cosmos_bank_v1beta1_DenomOwner_balance_tag 2 +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_denom_owners_tag 1 +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_pagination_tag 2 +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_denoms_tag 1 +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_pagination_tag 99 +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_send_enabled_tag 1 +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_pagination_tag 99 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_v1beta1_QueryBalanceRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 2) +#define cosmos_bank_v1beta1_QueryBalanceRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryBalanceRequest_DEFAULT NULL + +#define cosmos_bank_v1beta1_QueryBalanceResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, balance, 1) +#define cosmos_bank_v1beta1_QueryBalanceResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryBalanceResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryBalanceResponse_balance_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, SINGULAR, BOOL, resolve_denom, 3) +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, balances, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_balances_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, balances, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_balances_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 2) +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_DEFAULT NULL + +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, balance, 1) +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_balance_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, supply, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_supply_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, denom, 1) +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_DEFAULT NULL + +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_bank_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_bank_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_bank_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_bank_v1beta1_Params + +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, metadatas, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_metadatas_MSGTYPE cosmos_bank_v1beta1_Metadata +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, denom, 1) +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_DEFAULT NULL + +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, metadata, 1) +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_metadata_MSGTYPE cosmos_bank_v1beta1_Metadata + +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_DenomOwner_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance, 2) +#define cosmos_bank_v1beta1_DenomOwner_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_DenomOwner_DEFAULT NULL +#define cosmos_bank_v1beta1_DenomOwner_balance_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_owners, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_denom_owners_MSGTYPE cosmos_bank_v1beta1_DenomOwner +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, denoms, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 99) +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, send_enabled, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 99) +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_DEFAULT NULL +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_send_enabled_MSGTYPE cosmos_bank_v1beta1_SendEnabled +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryBalanceRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryBalanceResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryAllBalancesRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryAllBalancesResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySpendableBalancesRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySpendableBalancesResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryTotalSupplyRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryTotalSupplyResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySupplyOfRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySupplyOfResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomsMetadataRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomsMetadataResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomMetadataRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomMetadataResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomOwnersRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_DenomOwner_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QueryDenomOwnersResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySendEnabledRequest_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_QuerySendEnabledResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_v1beta1_QueryBalanceRequest_fields &cosmos_bank_v1beta1_QueryBalanceRequest_msg +#define cosmos_bank_v1beta1_QueryBalanceResponse_fields &cosmos_bank_v1beta1_QueryBalanceResponse_msg +#define cosmos_bank_v1beta1_QueryAllBalancesRequest_fields &cosmos_bank_v1beta1_QueryAllBalancesRequest_msg +#define cosmos_bank_v1beta1_QueryAllBalancesResponse_fields &cosmos_bank_v1beta1_QueryAllBalancesResponse_msg +#define cosmos_bank_v1beta1_QuerySpendableBalancesRequest_fields &cosmos_bank_v1beta1_QuerySpendableBalancesRequest_msg +#define cosmos_bank_v1beta1_QuerySpendableBalancesResponse_fields &cosmos_bank_v1beta1_QuerySpendableBalancesResponse_msg +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_fields \ + &cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_msg +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_fields \ + &cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_msg +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_fields &cosmos_bank_v1beta1_QueryTotalSupplyRequest_msg +#define cosmos_bank_v1beta1_QueryTotalSupplyResponse_fields &cosmos_bank_v1beta1_QueryTotalSupplyResponse_msg +#define cosmos_bank_v1beta1_QuerySupplyOfRequest_fields &cosmos_bank_v1beta1_QuerySupplyOfRequest_msg +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_fields &cosmos_bank_v1beta1_QuerySupplyOfResponse_msg +#define cosmos_bank_v1beta1_QueryParamsRequest_fields &cosmos_bank_v1beta1_QueryParamsRequest_msg +#define cosmos_bank_v1beta1_QueryParamsResponse_fields &cosmos_bank_v1beta1_QueryParamsResponse_msg +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_fields &cosmos_bank_v1beta1_QueryDenomsMetadataRequest_msg +#define cosmos_bank_v1beta1_QueryDenomsMetadataResponse_fields &cosmos_bank_v1beta1_QueryDenomsMetadataResponse_msg +#define cosmos_bank_v1beta1_QueryDenomMetadataRequest_fields &cosmos_bank_v1beta1_QueryDenomMetadataRequest_msg +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_fields &cosmos_bank_v1beta1_QueryDenomMetadataResponse_msg +#define cosmos_bank_v1beta1_QueryDenomOwnersRequest_fields &cosmos_bank_v1beta1_QueryDenomOwnersRequest_msg +#define cosmos_bank_v1beta1_DenomOwner_fields &cosmos_bank_v1beta1_DenomOwner_msg +#define cosmos_bank_v1beta1_QueryDenomOwnersResponse_fields &cosmos_bank_v1beta1_QueryDenomOwnersResponse_msg +#define cosmos_bank_v1beta1_QuerySendEnabledRequest_fields &cosmos_bank_v1beta1_QuerySendEnabledRequest_msg +#define cosmos_bank_v1beta1_QuerySendEnabledResponse_fields &cosmos_bank_v1beta1_QuerySendEnabledResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_v1beta1_QueryBalanceRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryAllBalancesRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryAllBalancesResponse_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySpendableBalancesRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySpendableBalancesResponse_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySpendableBalanceByDenomRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryTotalSupplyResponse_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySupplyOfRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryDenomsMetadataResponse_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryDenomMetadataRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryDenomOwnersRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_DenomOwner_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QueryDenomOwnersResponse_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySendEnabledRequest_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_QuerySendEnabledResponse_size depends on runtime parameters */ +#if defined(cosmos_base_v1beta1_Coin_size) +#define COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_bank_v1beta1_QueryBalanceResponse_size +#define cosmos_bank_v1beta1_QueryBalanceResponse_size (6 + cosmos_base_v1beta1_Coin_size) +#define cosmos_bank_v1beta1_QuerySpendableBalanceByDenomResponse_size (6 + cosmos_base_v1beta1_Coin_size) +#define cosmos_bank_v1beta1_QuerySupplyOfResponse_size (6 + cosmos_base_v1beta1_Coin_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_bank_v1beta1_QueryDenomsMetadataRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_bank_v1beta1_QueryTotalSupplyRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define cosmos_bank_v1beta1_QueryParamsRequest_size 0 +#if defined(cosmos_bank_v1beta1_Params_size) +#define cosmos_bank_v1beta1_QueryParamsResponse_size (6 + cosmos_bank_v1beta1_Params_size) +#endif +#if defined(cosmos_bank_v1beta1_Metadata_size) +#define cosmos_bank_v1beta1_QueryDenomMetadataResponse_size (6 + cosmos_bank_v1beta1_Metadata_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.c new file mode 100644 index 0000000..0129f26 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.c @@ -0,0 +1,23 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/bank/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_bank_v1beta1_MsgSend, cosmos_bank_v1beta1_MsgSend, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgSendResponse, cosmos_bank_v1beta1_MsgSendResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgMultiSend, cosmos_bank_v1beta1_MsgMultiSend, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgMultiSendResponse, cosmos_bank_v1beta1_MsgMultiSendResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgUpdateParams, cosmos_bank_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgUpdateParamsResponse, cosmos_bank_v1beta1_MsgUpdateParamsResponse, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgSetSendEnabled, cosmos_bank_v1beta1_MsgSetSendEnabled, AUTO) + +PB_BIND(cosmos_bank_v1beta1_MsgSetSendEnabledResponse, cosmos_bank_v1beta1_MsgSetSendEnabledResponse, AUTO) diff --git a/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.h new file mode 100644 index 0000000..2ad7dc0 --- /dev/null +++ b/app/src/protobuf/cosmos/bank/v1beta1/tx.pb.h @@ -0,0 +1,238 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_BANK_V1BETA1_COSMOS_BANK_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/bank/v1beta1/bank.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSend represents a message to send coins from one account to another. */ +typedef struct _cosmos_bank_v1beta1_MsgSend { + pb_callback_t from_address; + pb_callback_t to_address; + pb_callback_t amount; +} cosmos_bank_v1beta1_MsgSend; + +/* MsgSendResponse defines the Msg/Send response type. */ +typedef struct _cosmos_bank_v1beta1_MsgSendResponse { + char dummy_field; +} cosmos_bank_v1beta1_MsgSendResponse; + +/* MsgMultiSend represents an arbitrary multi-in, multi-out send message. */ +typedef struct _cosmos_bank_v1beta1_MsgMultiSend { + /* Inputs, despite being `repeated`, only allows one sender input. This is + checked in MsgMultiSend's ValidateBasic. */ + pb_callback_t inputs; + pb_callback_t outputs; +} cosmos_bank_v1beta1_MsgMultiSend; + +/* MsgMultiSendResponse defines the Msg/MultiSend response type. */ +typedef struct _cosmos_bank_v1beta1_MsgMultiSendResponse { + char dummy_field; +} cosmos_bank_v1beta1_MsgMultiSendResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/bank parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_bank_v1beta1_Params params; +} cosmos_bank_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_bank_v1beta1_MsgUpdateParamsResponse; + +/* MsgSetSendEnabled is the Msg/SetSendEnabled request type. + + Only entries to add/update/delete need to be included. + Existing SendEnabled entries that are not included in this + message are left unchanged. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_MsgSetSendEnabled { + pb_callback_t authority; + /* send_enabled is the list of entries to add or update. */ + pb_callback_t send_enabled; + /* use_default_for is a list of denoms that should use the params.default_send_enabled value. + Denoms listed here will have their SendEnabled entries deleted. + If a denom is included that doesn't have a SendEnabled entry, + it will be ignored. */ + pb_callback_t use_default_for; +} cosmos_bank_v1beta1_MsgSetSendEnabled; + +/* MsgSetSendEnabledResponse defines the Msg/SetSendEnabled response type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_bank_v1beta1_MsgSetSendEnabledResponse { + char dummy_field; +} cosmos_bank_v1beta1_MsgSetSendEnabledResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_bank_v1beta1_MsgSend_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgSendResponse_init_default \ + { 0 } +#define cosmos_bank_v1beta1_MsgMultiSend_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgMultiSendResponse_init_default \ + { 0 } +#define cosmos_bank_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_bank_v1beta1_Params_init_default } +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_bank_v1beta1_MsgSetSendEnabled_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_init_default \ + { 0 } +#define cosmos_bank_v1beta1_MsgSend_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgSendResponse_init_zero \ + { 0 } +#define cosmos_bank_v1beta1_MsgMultiSend_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgMultiSendResponse_init_zero \ + { 0 } +#define cosmos_bank_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_bank_v1beta1_Params_init_zero } +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } +#define cosmos_bank_v1beta1_MsgSetSendEnabled_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_bank_v1beta1_MsgSend_from_address_tag 1 +#define cosmos_bank_v1beta1_MsgSend_to_address_tag 2 +#define cosmos_bank_v1beta1_MsgSend_amount_tag 3 +#define cosmos_bank_v1beta1_MsgMultiSend_inputs_tag 1 +#define cosmos_bank_v1beta1_MsgMultiSend_outputs_tag 2 +#define cosmos_bank_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_bank_v1beta1_MsgUpdateParams_params_tag 2 +#define cosmos_bank_v1beta1_MsgSetSendEnabled_authority_tag 1 +#define cosmos_bank_v1beta1_MsgSetSendEnabled_send_enabled_tag 2 +#define cosmos_bank_v1beta1_MsgSetSendEnabled_use_default_for_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_bank_v1beta1_MsgSend_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, from_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, to_address, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_bank_v1beta1_MsgSend_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_MsgSend_DEFAULT NULL +#define cosmos_bank_v1beta1_MsgSend_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_bank_v1beta1_MsgSendResponse_FIELDLIST(X, a) + +#define cosmos_bank_v1beta1_MsgSendResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_MsgSendResponse_DEFAULT NULL + +#define cosmos_bank_v1beta1_MsgMultiSend_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, inputs, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, outputs, 2) +#define cosmos_bank_v1beta1_MsgMultiSend_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_MsgMultiSend_DEFAULT NULL +#define cosmos_bank_v1beta1_MsgMultiSend_inputs_MSGTYPE cosmos_bank_v1beta1_Input +#define cosmos_bank_v1beta1_MsgMultiSend_outputs_MSGTYPE cosmos_bank_v1beta1_Output + +#define cosmos_bank_v1beta1_MsgMultiSendResponse_FIELDLIST(X, a) + +#define cosmos_bank_v1beta1_MsgMultiSendResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_MsgMultiSendResponse_DEFAULT NULL + +#define cosmos_bank_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_bank_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_bank_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_bank_v1beta1_Params + +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +#define cosmos_bank_v1beta1_MsgSetSendEnabled_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, send_enabled, 2) \ + X(a, CALLBACK, REPEATED, STRING, use_default_for, 3) +#define cosmos_bank_v1beta1_MsgSetSendEnabled_CALLBACK pb_default_field_callback +#define cosmos_bank_v1beta1_MsgSetSendEnabled_DEFAULT NULL +#define cosmos_bank_v1beta1_MsgSetSendEnabled_send_enabled_MSGTYPE cosmos_bank_v1beta1_SendEnabled + +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_FIELDLIST(X, a) + +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_CALLBACK NULL +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgSend_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgSendResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgMultiSend_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgMultiSendResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgUpdateParamsResponse_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgSetSendEnabled_msg; +extern const pb_msgdesc_t cosmos_bank_v1beta1_MsgSetSendEnabledResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_bank_v1beta1_MsgSend_fields &cosmos_bank_v1beta1_MsgSend_msg +#define cosmos_bank_v1beta1_MsgSendResponse_fields &cosmos_bank_v1beta1_MsgSendResponse_msg +#define cosmos_bank_v1beta1_MsgMultiSend_fields &cosmos_bank_v1beta1_MsgMultiSend_msg +#define cosmos_bank_v1beta1_MsgMultiSendResponse_fields &cosmos_bank_v1beta1_MsgMultiSendResponse_msg +#define cosmos_bank_v1beta1_MsgUpdateParams_fields &cosmos_bank_v1beta1_MsgUpdateParams_msg +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_fields &cosmos_bank_v1beta1_MsgUpdateParamsResponse_msg +#define cosmos_bank_v1beta1_MsgSetSendEnabled_fields &cosmos_bank_v1beta1_MsgSetSendEnabled_msg +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_fields &cosmos_bank_v1beta1_MsgSetSendEnabledResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_bank_v1beta1_MsgSend_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_MsgMultiSend_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +/* cosmos_bank_v1beta1_MsgSetSendEnabled_size depends on runtime parameters */ +#define cosmos_bank_v1beta1_MsgMultiSendResponse_size 0 +#define cosmos_bank_v1beta1_MsgSendResponse_size 0 +#define cosmos_bank_v1beta1_MsgSetSendEnabledResponse_size 0 +#define cosmos_bank_v1beta1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.c b/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.c new file mode 100644 index 0000000..bb4bfae --- /dev/null +++ b/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.c @@ -0,0 +1,29 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/abci/v1beta1/abci.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_abci_v1beta1_TxResponse, cosmos_base_abci_v1beta1_TxResponse, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_ABCIMessageLog, cosmos_base_abci_v1beta1_ABCIMessageLog, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_StringEvent, cosmos_base_abci_v1beta1_StringEvent, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_Attribute, cosmos_base_abci_v1beta1_Attribute, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_GasInfo, cosmos_base_abci_v1beta1_GasInfo, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_Result, cosmos_base_abci_v1beta1_Result, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_SimulationResponse, cosmos_base_abci_v1beta1_SimulationResponse, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_MsgData, cosmos_base_abci_v1beta1_MsgData, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_TxMsgData, cosmos_base_abci_v1beta1_TxMsgData, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_SearchTxsResult, cosmos_base_abci_v1beta1_SearchTxsResult, AUTO) + +PB_BIND(cosmos_base_abci_v1beta1_SearchBlocksResult, cosmos_base_abci_v1beta1_SearchBlocksResult, AUTO) diff --git a/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.h b/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.h new file mode 100644 index 0000000..a172a45 --- /dev/null +++ b/app/src/protobuf/cosmos/base/abci/v1beta1/abci.pb.h @@ -0,0 +1,449 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_ABCI_V1BETA1_COSMOS_BASE_ABCI_V1BETA1_ABCI_PB_H_INCLUDED +#define PB_COSMOS_BASE_ABCI_V1BETA1_COSMOS_BASE_ABCI_V1BETA1_ABCI_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "tendermint/abci/types.pb.h" +#include "tendermint/types/block.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* TxResponse defines a structure containing relevant tx data and metadata. The + tags are stringified and the log is JSON decoded. */ +typedef struct _cosmos_base_abci_v1beta1_TxResponse { + /* The block height */ + int64_t height; + /* The transaction hash. */ + pb_callback_t txhash; + /* Namespace for the Code */ + pb_callback_t codespace; + /* Response code. */ + uint32_t code; + /* Result bytes, if any. */ + pb_callback_t data; + /* The output of the application's logger (raw string). May be + non-deterministic. */ + pb_callback_t raw_log; + /* The output of the application's logger (typed). May be non-deterministic. */ + pb_callback_t logs; + /* Additional information. May be non-deterministic. */ + pb_callback_t info; + /* Amount of gas requested for transaction. */ + int64_t gas_wanted; + /* Amount of gas consumed by transaction. */ + int64_t gas_used; + /* The request transaction bytes. */ + bool has_tx; + google_protobuf_Any tx; + /* Time of the previous block. For heights > 1, it's the weighted median of + the timestamps of the valid votes in the block.LastCommit. For height == 1, + it's genesis time. */ + pb_callback_t timestamp; + /* Events defines all the events emitted by processing a transaction. Note, + these events include those emitted by processing all the messages and those + emitted from the ante. Whereas Logs contains the events, with + additional metadata, emitted only by processing the messages. + + Since: cosmos-sdk 0.42.11, 0.44.5, 0.45 */ + pb_callback_t events; +} cosmos_base_abci_v1beta1_TxResponse; + +/* ABCIMessageLog defines a structure containing an indexed tx ABCI message log. */ +typedef struct _cosmos_base_abci_v1beta1_ABCIMessageLog { + uint32_t msg_index; + pb_callback_t log; + /* Events contains a slice of Event objects that were emitted during some + execution. */ + pb_callback_t events; +} cosmos_base_abci_v1beta1_ABCIMessageLog; + +/* StringEvent defines en Event object wrapper where all the attributes + contain key/value pairs that are strings instead of raw bytes. */ +typedef struct _cosmos_base_abci_v1beta1_StringEvent { + pb_callback_t type; + pb_callback_t attributes; +} cosmos_base_abci_v1beta1_StringEvent; + +/* Attribute defines an attribute wrapper where the key and value are + strings instead of raw bytes. */ +typedef struct _cosmos_base_abci_v1beta1_Attribute { + pb_callback_t key; + pb_callback_t value; +} cosmos_base_abci_v1beta1_Attribute; + +/* GasInfo defines tx execution gas context. */ +typedef struct _cosmos_base_abci_v1beta1_GasInfo { + /* GasWanted is the maximum units of work we allow this tx to perform. */ + uint64_t gas_wanted; + /* GasUsed is the amount of gas actually consumed. */ + uint64_t gas_used; +} cosmos_base_abci_v1beta1_GasInfo; + +/* Result is the union of ResponseFormat and ResponseCheckTx. */ +typedef struct _cosmos_base_abci_v1beta1_Result { + /* Data is any data returned from message or handler execution. It MUST be + length prefixed in order to separate data from multiple message executions. + Deprecated. This field is still populated, but prefer msg_response instead + because it also contains the Msg response typeURL. */ + pb_callback_t data; + /* Log contains the log information from message or handler execution. */ + pb_callback_t log; + /* Events contains a slice of Event objects that were emitted during message + or handler execution. */ + pb_callback_t events; + /* msg_responses contains the Msg handler responses type packed in Anys. + + Since: cosmos-sdk 0.46 */ + pb_callback_t msg_responses; +} cosmos_base_abci_v1beta1_Result; + +/* SimulationResponse defines the response generated when a transaction is + successfully simulated. */ +typedef struct _cosmos_base_abci_v1beta1_SimulationResponse { + bool has_gas_info; + cosmos_base_abci_v1beta1_GasInfo gas_info; + bool has_result; + cosmos_base_abci_v1beta1_Result result; +} cosmos_base_abci_v1beta1_SimulationResponse; + +/* MsgData defines the data returned in a Result object during message + execution. */ +typedef struct _cosmos_base_abci_v1beta1_MsgData { + pb_callback_t msg_type; + pb_callback_t data; +} cosmos_base_abci_v1beta1_MsgData; + +/* TxMsgData defines a list of MsgData. A transaction will have a MsgData object + for each message. */ +typedef struct _cosmos_base_abci_v1beta1_TxMsgData { + /* data field is deprecated and not populated. */ + pb_callback_t data; + /* msg_responses contains the Msg handler responses packed into Anys. + + Since: cosmos-sdk 0.46 */ + pb_callback_t msg_responses; +} cosmos_base_abci_v1beta1_TxMsgData; + +/* SearchTxsResult defines a structure for querying txs pageable */ +typedef struct _cosmos_base_abci_v1beta1_SearchTxsResult { + /* Count of all txs */ + uint64_t total_count; + /* Count of txs in current page */ + uint64_t count; + /* Index of current page, start from 1 */ + uint64_t page_number; + /* Count of total pages */ + uint64_t page_total; + /* Max count txs per page */ + uint64_t limit; + /* List of txs in current page */ + pb_callback_t txs; +} cosmos_base_abci_v1beta1_SearchTxsResult; + +/* SearchBlocksResult defines a structure for querying blocks pageable */ +typedef struct _cosmos_base_abci_v1beta1_SearchBlocksResult { + /* Count of all blocks */ + int64_t total_count; + /* Count of blocks in current page */ + int64_t count; + /* Index of current page, start from 1 */ + int64_t page_number; + /* Count of total pages */ + int64_t page_total; + /* Max count blocks per page */ + int64_t limit; + /* List of blocks in current page */ + pb_callback_t blocks; +} cosmos_base_abci_v1beta1_SearchBlocksResult; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_abci_v1beta1_TxResponse_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, false, \ + google_protobuf_Any_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_abci_v1beta1_ABCIMessageLog_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_StringEvent_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_Attribute_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_GasInfo_init_default \ + { 0, 0 } +#define cosmos_base_abci_v1beta1_Result_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SimulationResponse_init_default \ + { false, cosmos_base_abci_v1beta1_GasInfo_init_default, false, cosmos_base_abci_v1beta1_Result_init_default } +#define cosmos_base_abci_v1beta1_MsgData_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_TxMsgData_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SearchTxsResult_init_default \ + { \ + 0, 0, 0, 0, 0, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SearchBlocksResult_init_default \ + { \ + 0, 0, 0, 0, 0, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_TxResponse_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, false, \ + google_protobuf_Any_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_abci_v1beta1_ABCIMessageLog_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_StringEvent_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_Attribute_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_GasInfo_init_zero \ + { 0, 0 } +#define cosmos_base_abci_v1beta1_Result_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SimulationResponse_init_zero \ + { false, cosmos_base_abci_v1beta1_GasInfo_init_zero, false, cosmos_base_abci_v1beta1_Result_init_zero } +#define cosmos_base_abci_v1beta1_MsgData_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_TxMsgData_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SearchTxsResult_init_zero \ + { \ + 0, 0, 0, 0, 0, { {NULL}, NULL } \ + } +#define cosmos_base_abci_v1beta1_SearchBlocksResult_init_zero \ + { \ + 0, 0, 0, 0, 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_abci_v1beta1_TxResponse_height_tag 1 +#define cosmos_base_abci_v1beta1_TxResponse_txhash_tag 2 +#define cosmos_base_abci_v1beta1_TxResponse_codespace_tag 3 +#define cosmos_base_abci_v1beta1_TxResponse_code_tag 4 +#define cosmos_base_abci_v1beta1_TxResponse_data_tag 5 +#define cosmos_base_abci_v1beta1_TxResponse_raw_log_tag 6 +#define cosmos_base_abci_v1beta1_TxResponse_logs_tag 7 +#define cosmos_base_abci_v1beta1_TxResponse_info_tag 8 +#define cosmos_base_abci_v1beta1_TxResponse_gas_wanted_tag 9 +#define cosmos_base_abci_v1beta1_TxResponse_gas_used_tag 10 +#define cosmos_base_abci_v1beta1_TxResponse_tx_tag 11 +#define cosmos_base_abci_v1beta1_TxResponse_timestamp_tag 12 +#define cosmos_base_abci_v1beta1_TxResponse_events_tag 13 +#define cosmos_base_abci_v1beta1_ABCIMessageLog_msg_index_tag 1 +#define cosmos_base_abci_v1beta1_ABCIMessageLog_log_tag 2 +#define cosmos_base_abci_v1beta1_ABCIMessageLog_events_tag 3 +#define cosmos_base_abci_v1beta1_StringEvent_type_tag 1 +#define cosmos_base_abci_v1beta1_StringEvent_attributes_tag 2 +#define cosmos_base_abci_v1beta1_Attribute_key_tag 1 +#define cosmos_base_abci_v1beta1_Attribute_value_tag 2 +#define cosmos_base_abci_v1beta1_GasInfo_gas_wanted_tag 1 +#define cosmos_base_abci_v1beta1_GasInfo_gas_used_tag 2 +#define cosmos_base_abci_v1beta1_Result_data_tag 1 +#define cosmos_base_abci_v1beta1_Result_log_tag 2 +#define cosmos_base_abci_v1beta1_Result_events_tag 3 +#define cosmos_base_abci_v1beta1_Result_msg_responses_tag 4 +#define cosmos_base_abci_v1beta1_SimulationResponse_gas_info_tag 1 +#define cosmos_base_abci_v1beta1_SimulationResponse_result_tag 2 +#define cosmos_base_abci_v1beta1_MsgData_msg_type_tag 1 +#define cosmos_base_abci_v1beta1_MsgData_data_tag 2 +#define cosmos_base_abci_v1beta1_TxMsgData_data_tag 1 +#define cosmos_base_abci_v1beta1_TxMsgData_msg_responses_tag 2 +#define cosmos_base_abci_v1beta1_SearchTxsResult_total_count_tag 1 +#define cosmos_base_abci_v1beta1_SearchTxsResult_count_tag 2 +#define cosmos_base_abci_v1beta1_SearchTxsResult_page_number_tag 3 +#define cosmos_base_abci_v1beta1_SearchTxsResult_page_total_tag 4 +#define cosmos_base_abci_v1beta1_SearchTxsResult_limit_tag 5 +#define cosmos_base_abci_v1beta1_SearchTxsResult_txs_tag 6 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_total_count_tag 1 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_count_tag 2 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_page_number_tag 3 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_page_total_tag 4 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_limit_tag 5 +#define cosmos_base_abci_v1beta1_SearchBlocksResult_blocks_tag 6 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_abci_v1beta1_TxResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, CALLBACK, SINGULAR, STRING, txhash, 2) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 3) \ + X(a, STATIC, SINGULAR, UINT32, code, 4) \ + X(a, CALLBACK, SINGULAR, STRING, data, 5) \ + X(a, CALLBACK, SINGULAR, STRING, raw_log, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, logs, 7) \ + X(a, CALLBACK, SINGULAR, STRING, info, 8) \ + X(a, STATIC, SINGULAR, INT64, gas_wanted, 9) \ + X(a, STATIC, SINGULAR, INT64, gas_used, 10) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 11) \ + X(a, CALLBACK, SINGULAR, STRING, timestamp, 12) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 13) +#define cosmos_base_abci_v1beta1_TxResponse_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_TxResponse_DEFAULT NULL +#define cosmos_base_abci_v1beta1_TxResponse_logs_MSGTYPE cosmos_base_abci_v1beta1_ABCIMessageLog +#define cosmos_base_abci_v1beta1_TxResponse_tx_MSGTYPE google_protobuf_Any +#define cosmos_base_abci_v1beta1_TxResponse_events_MSGTYPE tendermint_abci_Event + +#define cosmos_base_abci_v1beta1_ABCIMessageLog_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, msg_index, 1) \ + X(a, CALLBACK, SINGULAR, STRING, log, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 3) +#define cosmos_base_abci_v1beta1_ABCIMessageLog_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_ABCIMessageLog_DEFAULT NULL +#define cosmos_base_abci_v1beta1_ABCIMessageLog_events_MSGTYPE cosmos_base_abci_v1beta1_StringEvent + +#define cosmos_base_abci_v1beta1_StringEvent_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, type, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, attributes, 2) +#define cosmos_base_abci_v1beta1_StringEvent_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_StringEvent_DEFAULT NULL +#define cosmos_base_abci_v1beta1_StringEvent_attributes_MSGTYPE cosmos_base_abci_v1beta1_Attribute + +#define cosmos_base_abci_v1beta1_Attribute_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, value, 2) +#define cosmos_base_abci_v1beta1_Attribute_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_Attribute_DEFAULT NULL + +#define cosmos_base_abci_v1beta1_GasInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, gas_wanted, 1) \ + X(a, STATIC, SINGULAR, UINT64, gas_used, 2) +#define cosmos_base_abci_v1beta1_GasInfo_CALLBACK NULL +#define cosmos_base_abci_v1beta1_GasInfo_DEFAULT NULL + +#define cosmos_base_abci_v1beta1_Result_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 1) \ + X(a, CALLBACK, SINGULAR, STRING, log, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, msg_responses, 4) +#define cosmos_base_abci_v1beta1_Result_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_Result_DEFAULT NULL +#define cosmos_base_abci_v1beta1_Result_events_MSGTYPE tendermint_abci_Event +#define cosmos_base_abci_v1beta1_Result_msg_responses_MSGTYPE google_protobuf_Any + +#define cosmos_base_abci_v1beta1_SimulationResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_info, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, result, 2) +#define cosmos_base_abci_v1beta1_SimulationResponse_CALLBACK NULL +#define cosmos_base_abci_v1beta1_SimulationResponse_DEFAULT NULL +#define cosmos_base_abci_v1beta1_SimulationResponse_gas_info_MSGTYPE cosmos_base_abci_v1beta1_GasInfo +#define cosmos_base_abci_v1beta1_SimulationResponse_result_MSGTYPE cosmos_base_abci_v1beta1_Result + +#define cosmos_base_abci_v1beta1_MsgData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, msg_type, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) +#define cosmos_base_abci_v1beta1_MsgData_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_MsgData_DEFAULT NULL + +#define cosmos_base_abci_v1beta1_TxMsgData_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, data, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, msg_responses, 2) +#define cosmos_base_abci_v1beta1_TxMsgData_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_TxMsgData_DEFAULT NULL +#define cosmos_base_abci_v1beta1_TxMsgData_data_MSGTYPE cosmos_base_abci_v1beta1_MsgData +#define cosmos_base_abci_v1beta1_TxMsgData_msg_responses_MSGTYPE google_protobuf_Any + +#define cosmos_base_abci_v1beta1_SearchTxsResult_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, total_count, 1) \ + X(a, STATIC, SINGULAR, UINT64, count, 2) \ + X(a, STATIC, SINGULAR, UINT64, page_number, 3) \ + X(a, STATIC, SINGULAR, UINT64, page_total, 4) \ + X(a, STATIC, SINGULAR, UINT64, limit, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, txs, 6) +#define cosmos_base_abci_v1beta1_SearchTxsResult_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_SearchTxsResult_DEFAULT NULL +#define cosmos_base_abci_v1beta1_SearchTxsResult_txs_MSGTYPE cosmos_base_abci_v1beta1_TxResponse + +#define cosmos_base_abci_v1beta1_SearchBlocksResult_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, total_count, 1) \ + X(a, STATIC, SINGULAR, INT64, count, 2) \ + X(a, STATIC, SINGULAR, INT64, page_number, 3) \ + X(a, STATIC, SINGULAR, INT64, page_total, 4) \ + X(a, STATIC, SINGULAR, INT64, limit, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, blocks, 6) +#define cosmos_base_abci_v1beta1_SearchBlocksResult_CALLBACK pb_default_field_callback +#define cosmos_base_abci_v1beta1_SearchBlocksResult_DEFAULT NULL +#define cosmos_base_abci_v1beta1_SearchBlocksResult_blocks_MSGTYPE tendermint_types_Block + +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_TxResponse_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_ABCIMessageLog_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_StringEvent_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_Attribute_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_GasInfo_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_Result_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_SimulationResponse_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_MsgData_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_TxMsgData_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_SearchTxsResult_msg; +extern const pb_msgdesc_t cosmos_base_abci_v1beta1_SearchBlocksResult_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_abci_v1beta1_TxResponse_fields &cosmos_base_abci_v1beta1_TxResponse_msg +#define cosmos_base_abci_v1beta1_ABCIMessageLog_fields &cosmos_base_abci_v1beta1_ABCIMessageLog_msg +#define cosmos_base_abci_v1beta1_StringEvent_fields &cosmos_base_abci_v1beta1_StringEvent_msg +#define cosmos_base_abci_v1beta1_Attribute_fields &cosmos_base_abci_v1beta1_Attribute_msg +#define cosmos_base_abci_v1beta1_GasInfo_fields &cosmos_base_abci_v1beta1_GasInfo_msg +#define cosmos_base_abci_v1beta1_Result_fields &cosmos_base_abci_v1beta1_Result_msg +#define cosmos_base_abci_v1beta1_SimulationResponse_fields &cosmos_base_abci_v1beta1_SimulationResponse_msg +#define cosmos_base_abci_v1beta1_MsgData_fields &cosmos_base_abci_v1beta1_MsgData_msg +#define cosmos_base_abci_v1beta1_TxMsgData_fields &cosmos_base_abci_v1beta1_TxMsgData_msg +#define cosmos_base_abci_v1beta1_SearchTxsResult_fields &cosmos_base_abci_v1beta1_SearchTxsResult_msg +#define cosmos_base_abci_v1beta1_SearchBlocksResult_fields &cosmos_base_abci_v1beta1_SearchBlocksResult_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_abci_v1beta1_TxResponse_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_ABCIMessageLog_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_StringEvent_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_Attribute_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_Result_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_SimulationResponse_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_MsgData_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_TxMsgData_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_SearchTxsResult_size depends on runtime parameters */ +/* cosmos_base_abci_v1beta1_SearchBlocksResult_size depends on runtime parameters */ +#define COSMOS_BASE_ABCI_V1BETA1_COSMOS_BASE_ABCI_V1BETA1_ABCI_PB_H_MAX_SIZE cosmos_base_abci_v1beta1_GasInfo_size +#define cosmos_base_abci_v1beta1_GasInfo_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.c b/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.c new file mode 100644 index 0000000..1510e57 --- /dev/null +++ b/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/node/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_node_v1beta1_ConfigRequest, cosmos_base_node_v1beta1_ConfigRequest, AUTO) + +PB_BIND(cosmos_base_node_v1beta1_ConfigResponse, cosmos_base_node_v1beta1_ConfigResponse, AUTO) + +PB_BIND(cosmos_base_node_v1beta1_StatusRequest, cosmos_base_node_v1beta1_StatusRequest, AUTO) + +PB_BIND(cosmos_base_node_v1beta1_StatusResponse, cosmos_base_node_v1beta1_StatusResponse, AUTO) diff --git a/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.h b/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.h new file mode 100644 index 0000000..e981d20 --- /dev/null +++ b/app/src/protobuf/cosmos/base/node/v1beta1/query.pb.h @@ -0,0 +1,135 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_NODE_V1BETA1_COSMOS_BASE_NODE_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_BASE_NODE_V1BETA1_COSMOS_BASE_NODE_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ConfigRequest defines the request structure for the Config gRPC query. */ +typedef struct _cosmos_base_node_v1beta1_ConfigRequest { + char dummy_field; +} cosmos_base_node_v1beta1_ConfigRequest; + +/* ConfigResponse defines the response structure for the Config gRPC query. */ +typedef struct _cosmos_base_node_v1beta1_ConfigResponse { + pb_callback_t minimum_gas_price; + /* pruning settings */ + pb_callback_t pruning_keep_recent; + pb_callback_t pruning_interval; +} cosmos_base_node_v1beta1_ConfigResponse; + +/* StateRequest defines the request structure for the status of a node. */ +typedef struct _cosmos_base_node_v1beta1_StatusRequest { + char dummy_field; +} cosmos_base_node_v1beta1_StatusRequest; + +/* StateResponse defines the response structure for the status of a node. */ +typedef struct _cosmos_base_node_v1beta1_StatusResponse { + uint64_t earliest_store_height; /* earliest block height available in the store */ + uint64_t height; /* current block height */ + bool has_timestamp; + google_protobuf_Timestamp timestamp; /* block height timestamp */ + pb_callback_t app_hash; /* app hash of the current block */ + pb_callback_t validator_hash; /* validator hash provided by the consensus header */ +} cosmos_base_node_v1beta1_StatusResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_node_v1beta1_ConfigRequest_init_default \ + { 0 } +#define cosmos_base_node_v1beta1_ConfigResponse_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_node_v1beta1_StatusRequest_init_default \ + { 0 } +#define cosmos_base_node_v1beta1_StatusResponse_init_default \ + { \ + 0, 0, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_node_v1beta1_ConfigRequest_init_zero \ + { 0 } +#define cosmos_base_node_v1beta1_ConfigResponse_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_node_v1beta1_StatusRequest_init_zero \ + { 0 } +#define cosmos_base_node_v1beta1_StatusResponse_init_zero \ + { \ + 0, 0, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_node_v1beta1_ConfigResponse_minimum_gas_price_tag 1 +#define cosmos_base_node_v1beta1_ConfigResponse_pruning_keep_recent_tag 2 +#define cosmos_base_node_v1beta1_ConfigResponse_pruning_interval_tag 3 +#define cosmos_base_node_v1beta1_StatusResponse_earliest_store_height_tag 1 +#define cosmos_base_node_v1beta1_StatusResponse_height_tag 2 +#define cosmos_base_node_v1beta1_StatusResponse_timestamp_tag 3 +#define cosmos_base_node_v1beta1_StatusResponse_app_hash_tag 4 +#define cosmos_base_node_v1beta1_StatusResponse_validator_hash_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_node_v1beta1_ConfigRequest_FIELDLIST(X, a) + +#define cosmos_base_node_v1beta1_ConfigRequest_CALLBACK NULL +#define cosmos_base_node_v1beta1_ConfigRequest_DEFAULT NULL + +#define cosmos_base_node_v1beta1_ConfigResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, minimum_gas_price, 1) \ + X(a, CALLBACK, SINGULAR, STRING, pruning_keep_recent, 2) \ + X(a, CALLBACK, SINGULAR, STRING, pruning_interval, 3) +#define cosmos_base_node_v1beta1_ConfigResponse_CALLBACK pb_default_field_callback +#define cosmos_base_node_v1beta1_ConfigResponse_DEFAULT NULL + +#define cosmos_base_node_v1beta1_StatusRequest_FIELDLIST(X, a) + +#define cosmos_base_node_v1beta1_StatusRequest_CALLBACK NULL +#define cosmos_base_node_v1beta1_StatusRequest_DEFAULT NULL + +#define cosmos_base_node_v1beta1_StatusResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, earliest_store_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, app_hash, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, validator_hash, 5) +#define cosmos_base_node_v1beta1_StatusResponse_CALLBACK pb_default_field_callback +#define cosmos_base_node_v1beta1_StatusResponse_DEFAULT NULL +#define cosmos_base_node_v1beta1_StatusResponse_timestamp_MSGTYPE google_protobuf_Timestamp + +extern const pb_msgdesc_t cosmos_base_node_v1beta1_ConfigRequest_msg; +extern const pb_msgdesc_t cosmos_base_node_v1beta1_ConfigResponse_msg; +extern const pb_msgdesc_t cosmos_base_node_v1beta1_StatusRequest_msg; +extern const pb_msgdesc_t cosmos_base_node_v1beta1_StatusResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_node_v1beta1_ConfigRequest_fields &cosmos_base_node_v1beta1_ConfigRequest_msg +#define cosmos_base_node_v1beta1_ConfigResponse_fields &cosmos_base_node_v1beta1_ConfigResponse_msg +#define cosmos_base_node_v1beta1_StatusRequest_fields &cosmos_base_node_v1beta1_StatusRequest_msg +#define cosmos_base_node_v1beta1_StatusResponse_fields &cosmos_base_node_v1beta1_StatusResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_node_v1beta1_ConfigResponse_size depends on runtime parameters */ +/* cosmos_base_node_v1beta1_StatusResponse_size depends on runtime parameters */ +#define COSMOS_BASE_NODE_V1BETA1_COSMOS_BASE_NODE_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_base_node_v1beta1_ConfigRequest_size +#define cosmos_base_node_v1beta1_ConfigRequest_size 0 +#define cosmos_base_node_v1beta1_StatusRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.c b/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.c new file mode 100644 index 0000000..b5bb330 --- /dev/null +++ b/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_query_v1beta1_PageRequest, cosmos_base_query_v1beta1_PageRequest, AUTO) + +PB_BIND(cosmos_base_query_v1beta1_PageResponse, cosmos_base_query_v1beta1_PageResponse, AUTO) diff --git a/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.h b/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.h new file mode 100644 index 0000000..39ece18 --- /dev/null +++ b/app/src/protobuf/cosmos/base/query/v1beta1/pagination.pb.h @@ -0,0 +1,114 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_QUERY_V1BETA1_COSMOS_BASE_QUERY_V1BETA1_PAGINATION_PB_H_INCLUDED +#define PB_COSMOS_BASE_QUERY_V1BETA1_COSMOS_BASE_QUERY_V1BETA1_PAGINATION_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PageRequest is to be embedded in gRPC request messages for efficient + pagination. Ex: + + message SomeRequest { + Foo some_parameter = 1; + PageRequest pagination = 2; + } */ +typedef struct _cosmos_base_query_v1beta1_PageRequest { + /* key is a value returned in PageResponse.next_key to begin + querying the next page most efficiently. Only one of offset or key + should be set. */ + pb_callback_t key; + /* offset is a numeric offset that can be used when key is unavailable. + It is less efficient than using key. Only one of offset or key should + be set. */ + uint64_t offset; + /* limit is the total number of results to be returned in the result page. + If left empty it will default to a value to be set by each app. */ + uint64_t limit; + /* count_total is set to true to indicate that the result set should include + a count of the total number of items available for pagination in UIs. + count_total is only respected when offset is used. It is ignored when key + is set. */ + bool count_total; + /* reverse is set to true if results are to be returned in the descending order. + + Since: cosmos-sdk 0.43 */ + bool reverse; +} cosmos_base_query_v1beta1_PageRequest; + +/* PageResponse is to be embedded in gRPC response messages where the + corresponding request message has used PageRequest. + + message SomeResponse { + repeated Bar results = 1; + PageResponse page = 2; + } */ +typedef struct _cosmos_base_query_v1beta1_PageResponse { + /* next_key is the key to be passed to PageRequest.key to + query the next page most efficiently. It will be empty if + there are no more results. */ + pb_callback_t next_key; + /* total is total number of results available if PageRequest.count_total + was set, its value is undefined otherwise */ + uint64_t total; +} cosmos_base_query_v1beta1_PageResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_query_v1beta1_PageRequest_init_default \ + { {{NULL}, NULL}, 0, 0, 0, 0 } +#define cosmos_base_query_v1beta1_PageResponse_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_base_query_v1beta1_PageRequest_init_zero \ + { {{NULL}, NULL}, 0, 0, 0, 0 } +#define cosmos_base_query_v1beta1_PageResponse_init_zero \ + { {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_query_v1beta1_PageRequest_key_tag 1 +#define cosmos_base_query_v1beta1_PageRequest_offset_tag 2 +#define cosmos_base_query_v1beta1_PageRequest_limit_tag 3 +#define cosmos_base_query_v1beta1_PageRequest_count_total_tag 4 +#define cosmos_base_query_v1beta1_PageRequest_reverse_tag 5 +#define cosmos_base_query_v1beta1_PageResponse_next_key_tag 1 +#define cosmos_base_query_v1beta1_PageResponse_total_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_query_v1beta1_PageRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, STATIC, SINGULAR, UINT64, offset, 2) \ + X(a, STATIC, SINGULAR, UINT64, limit, 3) \ + X(a, STATIC, SINGULAR, BOOL, count_total, 4) \ + X(a, STATIC, SINGULAR, BOOL, reverse, 5) +#define cosmos_base_query_v1beta1_PageRequest_CALLBACK pb_default_field_callback +#define cosmos_base_query_v1beta1_PageRequest_DEFAULT NULL + +#define cosmos_base_query_v1beta1_PageResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, next_key, 1) \ + X(a, STATIC, SINGULAR, UINT64, total, 2) +#define cosmos_base_query_v1beta1_PageResponse_CALLBACK pb_default_field_callback +#define cosmos_base_query_v1beta1_PageResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_base_query_v1beta1_PageRequest_msg; +extern const pb_msgdesc_t cosmos_base_query_v1beta1_PageResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_query_v1beta1_PageRequest_fields &cosmos_base_query_v1beta1_PageRequest_msg +#define cosmos_base_query_v1beta1_PageResponse_fields &cosmos_base_query_v1beta1_PageResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_query_v1beta1_PageRequest_size depends on runtime parameters */ +/* cosmos_base_query_v1beta1_PageResponse_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.c b/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.c new file mode 100644 index 0000000..b4f3ae0 --- /dev/null +++ b/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/reflection/v1beta1/reflection.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_reflection_v1beta1_ListAllInterfacesRequest, cosmos_base_reflection_v1beta1_ListAllInterfacesRequest, + AUTO) + +PB_BIND(cosmos_base_reflection_v1beta1_ListAllInterfacesResponse, cosmos_base_reflection_v1beta1_ListAllInterfacesResponse, + AUTO) + +PB_BIND(cosmos_base_reflection_v1beta1_ListImplementationsRequest, cosmos_base_reflection_v1beta1_ListImplementationsRequest, + AUTO) + +PB_BIND(cosmos_base_reflection_v1beta1_ListImplementationsResponse, + cosmos_base_reflection_v1beta1_ListImplementationsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.h b/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.h new file mode 100644 index 0000000..91b33c1 --- /dev/null +++ b/app/src/protobuf/cosmos/base/reflection/v1beta1/reflection.pb.h @@ -0,0 +1,126 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_REFLECTION_V1BETA1_COSMOS_BASE_REFLECTION_V1BETA1_REFLECTION_PB_H_INCLUDED +#define PB_COSMOS_BASE_REFLECTION_V1BETA1_COSMOS_BASE_REFLECTION_V1BETA1_REFLECTION_PB_H_INCLUDED +#include + +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. */ +typedef struct _cosmos_base_reflection_v1beta1_ListAllInterfacesRequest { + char dummy_field; +} cosmos_base_reflection_v1beta1_ListAllInterfacesRequest; + +/* ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. */ +typedef struct _cosmos_base_reflection_v1beta1_ListAllInterfacesResponse { + /* interface_names is an array of all the registered interfaces. */ + pb_callback_t interface_names; +} cosmos_base_reflection_v1beta1_ListAllInterfacesResponse; + +/* ListImplementationsRequest is the request type of the ListImplementations + RPC. */ +typedef struct _cosmos_base_reflection_v1beta1_ListImplementationsRequest { + /* interface_name defines the interface to query the implementations for. */ + pb_callback_t interface_name; +} cosmos_base_reflection_v1beta1_ListImplementationsRequest; + +/* ListImplementationsResponse is the response type of the ListImplementations + RPC. */ +typedef struct _cosmos_base_reflection_v1beta1_ListImplementationsResponse { + pb_callback_t implementation_message_names; +} cosmos_base_reflection_v1beta1_ListImplementationsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_interface_names_tag 1 +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_interface_name_tag 1 +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_implementation_message_names_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_CALLBACK NULL +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_DEFAULT NULL + +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, interface_names, 1) +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_DEFAULT NULL + +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, interface_name, 1) +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_DEFAULT NULL + +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, implementation_message_names, 1) +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v1beta1_ListImplementationsRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v1beta1_ListImplementationsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_fields \ + &cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_msg +#define cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_fields \ + &cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_msg +#define cosmos_base_reflection_v1beta1_ListImplementationsRequest_fields \ + &cosmos_base_reflection_v1beta1_ListImplementationsRequest_msg +#define cosmos_base_reflection_v1beta1_ListImplementationsResponse_fields \ + &cosmos_base_reflection_v1beta1_ListImplementationsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_reflection_v1beta1_ListAllInterfacesResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v1beta1_ListImplementationsRequest_size depends on runtime parameters */ +/* cosmos_base_reflection_v1beta1_ListImplementationsResponse_size depends on runtime parameters */ +#define COSMOS_BASE_REFLECTION_V1BETA1_COSMOS_BASE_REFLECTION_V1BETA1_REFLECTION_PB_H_MAX_SIZE \ + cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_size +#define cosmos_base_reflection_v1beta1_ListAllInterfacesRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.c b/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.c new file mode 100644 index 0000000..d86a948 --- /dev/null +++ b/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.c @@ -0,0 +1,74 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/reflection/v2alpha1/reflection.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_reflection_v2alpha1_AppDescriptor, cosmos_base_reflection_v2alpha1_AppDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_TxDescriptor, cosmos_base_reflection_v2alpha1_TxDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_AuthnDescriptor, cosmos_base_reflection_v2alpha1_AuthnDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_SigningModeDescriptor, cosmos_base_reflection_v2alpha1_SigningModeDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_ChainDescriptor, cosmos_base_reflection_v2alpha1_ChainDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_CodecDescriptor, cosmos_base_reflection_v2alpha1_CodecDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_InterfaceDescriptor, cosmos_base_reflection_v2alpha1_InterfaceDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor, + cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor, + cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_ConfigurationDescriptor, cosmos_base_reflection_v2alpha1_ConfigurationDescriptor, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_MsgDescriptor, cosmos_base_reflection_v2alpha1_MsgDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest, cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse, + cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest, cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse, + cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest, cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse, + cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest, + cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse, + cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest, + cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse, + cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest, cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse, cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_QueryServicesDescriptor, cosmos_base_reflection_v2alpha1_QueryServicesDescriptor, + AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_QueryServiceDescriptor, cosmos_base_reflection_v2alpha1_QueryServiceDescriptor, AUTO) + +PB_BIND(cosmos_base_reflection_v2alpha1_QueryMethodDescriptor, cosmos_base_reflection_v2alpha1_QueryMethodDescriptor, AUTO) diff --git a/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.h b/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.h new file mode 100644 index 0000000..2d7ebf2 --- /dev/null +++ b/app/src/protobuf/cosmos/base/reflection/v2alpha1/reflection.pb.h @@ -0,0 +1,715 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_REFLECTION_V2ALPHA1_COSMOS_BASE_REFLECTION_V2ALPHA1_REFLECTION_PB_H_INCLUDED +#define PB_COSMOS_BASE_REFLECTION_V2ALPHA1_COSMOS_BASE_REFLECTION_V2ALPHA1_REFLECTION_PB_H_INCLUDED +#include + +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* TxDescriptor describes the accepted transaction type */ +typedef struct _cosmos_base_reflection_v2alpha1_TxDescriptor { + /* fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type) + it is not meant to support polymorphism of transaction types, it is supposed to be used by + reflection clients to understand if they can handle a specific transaction type in an application. */ + pb_callback_t fullname; + /* msgs lists the accepted application messages (sdk.Msg) */ + pb_callback_t msgs; +} cosmos_base_reflection_v2alpha1_TxDescriptor; + +/* AuthnDescriptor provides information on how to sign transactions without relying + on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures */ +typedef struct _cosmos_base_reflection_v2alpha1_AuthnDescriptor { + /* sign_modes defines the supported signature algorithm */ + pb_callback_t sign_modes; +} cosmos_base_reflection_v2alpha1_AuthnDescriptor; + +/* SigningModeDescriptor provides information on a signing flow of the application + NOTE(fdymylja): here we could go as far as providing an entire flow on how + to sign a message given a SigningModeDescriptor, but it's better to think about + this another time */ +typedef struct _cosmos_base_reflection_v2alpha1_SigningModeDescriptor { + /* name defines the unique name of the signing mode */ + pb_callback_t name; + /* number is the unique int32 identifier for the sign_mode enum */ + int32_t number; + /* authn_info_provider_method_fullname defines the fullname of the method to call to get + the metadata required to authenticate using the provided sign_modes */ + pb_callback_t authn_info_provider_method_fullname; +} cosmos_base_reflection_v2alpha1_SigningModeDescriptor; + +/* ChainDescriptor describes chain information of the application */ +typedef struct _cosmos_base_reflection_v2alpha1_ChainDescriptor { + /* id is the chain id */ + pb_callback_t id; +} cosmos_base_reflection_v2alpha1_ChainDescriptor; + +/* CodecDescriptor describes the registered interfaces and provides metadata information on the types */ +typedef struct _cosmos_base_reflection_v2alpha1_CodecDescriptor { + /* interfaces is a list of the registerted interfaces descriptors */ + pb_callback_t interfaces; +} cosmos_base_reflection_v2alpha1_CodecDescriptor; + +/* InterfaceDescriptor describes the implementation of an interface */ +typedef struct _cosmos_base_reflection_v2alpha1_InterfaceDescriptor { + /* fullname is the name of the interface */ + pb_callback_t fullname; + /* interface_accepting_messages contains information regarding the proto messages which contain the interface as + google.protobuf.Any field */ + pb_callback_t interface_accepting_messages; + /* interface_implementers is a list of the descriptors of the interface implementers */ + pb_callback_t interface_implementers; +} cosmos_base_reflection_v2alpha1_InterfaceDescriptor; + +/* InterfaceImplementerDescriptor describes an interface implementer */ +typedef struct _cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor { + /* fullname is the protobuf queryable name of the interface implementer */ + pb_callback_t fullname; + /* type_url defines the type URL used when marshalling the type as any + this is required so we can provide type safe google.protobuf.Any marshalling and + unmarshalling, making sure that we don't accept just 'any' type + in our interface fields */ + pb_callback_t type_url; +} cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor; + +/* InterfaceAcceptingMessageDescriptor describes a protobuf message which contains + an interface represented as a google.protobuf.Any */ +typedef struct _cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor { + /* fullname is the protobuf fullname of the type containing the interface */ + pb_callback_t fullname; + /* field_descriptor_names is a list of the protobuf name (not fullname) of the field + which contains the interface as google.protobuf.Any (the interface is the same, but + it can be in multiple fields of the same proto message) */ + pb_callback_t field_descriptor_names; +} cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor; + +/* ConfigurationDescriptor contains metadata information on the sdk.Config */ +typedef struct _cosmos_base_reflection_v2alpha1_ConfigurationDescriptor { + /* bech32_account_address_prefix is the account address prefix */ + pb_callback_t bech32_account_address_prefix; +} cosmos_base_reflection_v2alpha1_ConfigurationDescriptor; + +/* MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction */ +typedef struct _cosmos_base_reflection_v2alpha1_MsgDescriptor { + /* msg_type_url contains the TypeURL of a sdk.Msg. */ + pb_callback_t msg_type_url; +} cosmos_base_reflection_v2alpha1_MsgDescriptor; + +/* GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest; + +/* GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse { + /* authn describes how to authenticate to the application when sending transactions */ + bool has_authn; + cosmos_base_reflection_v2alpha1_AuthnDescriptor authn; +} cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse; + +/* GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest; + +/* GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse { + /* chain describes application chain information */ + bool has_chain; + cosmos_base_reflection_v2alpha1_ChainDescriptor chain; +} cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse; + +/* GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest; + +/* GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse { + /* codec describes the application codec such as registered interfaces and implementations */ + bool has_codec; + cosmos_base_reflection_v2alpha1_CodecDescriptor codec; +} cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse; + +/* GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest; + +/* GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse { + /* config describes the application's sdk.Config */ + bool has_config; + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor config; +} cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse; + +/* GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest; + +/* GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest { + char dummy_field; +} cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest; + +/* GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse { + /* tx provides information on msgs that can be forwarded to the application + alongside the accepted transaction protobuf type */ + bool has_tx; + cosmos_base_reflection_v2alpha1_TxDescriptor tx; +} cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse; + +/* QueryServicesDescriptor contains the list of cosmos-sdk queriable services */ +typedef struct _cosmos_base_reflection_v2alpha1_QueryServicesDescriptor { + /* query_services is a list of cosmos-sdk QueryServiceDescriptor */ + pb_callback_t query_services; +} cosmos_base_reflection_v2alpha1_QueryServicesDescriptor; + +/* AppDescriptor describes a cosmos-sdk based application */ +typedef struct _cosmos_base_reflection_v2alpha1_AppDescriptor { + /* AuthnDescriptor provides information on how to authenticate transactions on the application + NOTE: experimental and subject to change in future releases. */ + bool has_authn; + cosmos_base_reflection_v2alpha1_AuthnDescriptor authn; + /* chain provides the chain descriptor */ + bool has_chain; + cosmos_base_reflection_v2alpha1_ChainDescriptor chain; + /* codec provides metadata information regarding codec related types */ + bool has_codec; + cosmos_base_reflection_v2alpha1_CodecDescriptor codec; + /* configuration provides metadata information regarding the sdk.Config type */ + bool has_configuration; + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor configuration; + /* query_services provides metadata information regarding the available queriable endpoints */ + bool has_query_services; + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor query_services; + /* tx provides metadata information regarding how to send transactions to the given application */ + bool has_tx; + cosmos_base_reflection_v2alpha1_TxDescriptor tx; +} cosmos_base_reflection_v2alpha1_AppDescriptor; + +/* GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC */ +typedef struct _cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse { + /* queries provides information on the available queryable services */ + bool has_queries; + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor queries; +} cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse; + +/* QueryServiceDescriptor describes a cosmos-sdk queryable service */ +typedef struct _cosmos_base_reflection_v2alpha1_QueryServiceDescriptor { + /* fullname is the protobuf fullname of the service descriptor */ + pb_callback_t fullname; + /* is_module describes if this service is actually exposed by an application's module */ + bool is_module; + /* methods provides a list of query service methods */ + pb_callback_t methods; +} cosmos_base_reflection_v2alpha1_QueryServiceDescriptor; + +/* QueryMethodDescriptor describes a queryable method of a query service + no other info is provided beside method name and tendermint queryable path + because it would be redundant with the grpc reflection service */ +typedef struct _cosmos_base_reflection_v2alpha1_QueryMethodDescriptor { + /* name is the protobuf name (not fullname) of the method */ + pb_callback_t name; + /* full_query_path is the path that can be used to query + this method via tendermint abci.Query */ + pb_callback_t full_query_path; +} cosmos_base_reflection_v2alpha1_QueryMethodDescriptor; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_reflection_v2alpha1_AppDescriptor_init_default \ + { \ + false, cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_default, false, \ + cosmos_base_reflection_v2alpha1_ChainDescriptor_init_default, false, \ + cosmos_base_reflection_v2alpha1_CodecDescriptor_init_default, false, \ + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_default, false, \ + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_default, false, \ + cosmos_base_reflection_v2alpha1_TxDescriptor_init_default \ + } +#define cosmos_base_reflection_v2alpha1_TxDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_ChainDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_CodecDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_init_default \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_init_default \ + { false, cosmos_base_reflection_v2alpha1_TxDescriptor_init_default } +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_AppDescriptor_init_zero \ + { \ + false, cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_zero, false, \ + cosmos_base_reflection_v2alpha1_ChainDescriptor_init_zero, false, \ + cosmos_base_reflection_v2alpha1_CodecDescriptor_init_zero, false, \ + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_zero, false, \ + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_zero, false, \ + cosmos_base_reflection_v2alpha1_TxDescriptor_init_zero \ + } +#define cosmos_base_reflection_v2alpha1_TxDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_AuthnDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_ChainDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_CodecDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_init_zero \ + { 0 } +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_init_zero \ + { false, cosmos_base_reflection_v2alpha1_TxDescriptor_init_zero } +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_reflection_v2alpha1_TxDescriptor_fullname_tag 1 +#define cosmos_base_reflection_v2alpha1_TxDescriptor_msgs_tag 2 +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_sign_modes_tag 1 +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_name_tag 1 +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_number_tag 2 +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_authn_info_provider_method_fullname_tag 3 +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_id_tag 1 +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_interfaces_tag 1 +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_fullname_tag 1 +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_interface_accepting_messages_tag 2 +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_interface_implementers_tag 3 +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_fullname_tag 1 +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_type_url_tag 2 +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_fullname_tag 1 +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_field_descriptor_names_tag 2 +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_bech32_account_address_prefix_tag 1 +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_msg_type_url_tag 1 +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_authn_tag 1 +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_chain_tag 1 +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_codec_tag 1 +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_config_tag 1 +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_tx_tag 1 +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_query_services_tag 1 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_authn_tag 1 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_chain_tag 2 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_codec_tag 3 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_configuration_tag 4 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_query_services_tag 5 +#define cosmos_base_reflection_v2alpha1_AppDescriptor_tx_tag 6 +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_queries_tag 1 +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_fullname_tag 1 +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_is_module_tag 2 +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_methods_tag 3 +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_name_tag 1 +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_full_query_path_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_reflection_v2alpha1_AppDescriptor_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, authn, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, chain, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, codec, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, configuration, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, query_services, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 6) +#define cosmos_base_reflection_v2alpha1_AppDescriptor_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_AppDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_AppDescriptor_authn_MSGTYPE cosmos_base_reflection_v2alpha1_AuthnDescriptor +#define cosmos_base_reflection_v2alpha1_AppDescriptor_chain_MSGTYPE cosmos_base_reflection_v2alpha1_ChainDescriptor +#define cosmos_base_reflection_v2alpha1_AppDescriptor_codec_MSGTYPE cosmos_base_reflection_v2alpha1_CodecDescriptor +#define cosmos_base_reflection_v2alpha1_AppDescriptor_configuration_MSGTYPE \ + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor +#define cosmos_base_reflection_v2alpha1_AppDescriptor_query_services_MSGTYPE \ + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor +#define cosmos_base_reflection_v2alpha1_AppDescriptor_tx_MSGTYPE cosmos_base_reflection_v2alpha1_TxDescriptor + +#define cosmos_base_reflection_v2alpha1_TxDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fullname, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, msgs, 2) +#define cosmos_base_reflection_v2alpha1_TxDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_TxDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_TxDescriptor_msgs_MSGTYPE cosmos_base_reflection_v2alpha1_MsgDescriptor + +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, sign_modes, 1) +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_sign_modes_MSGTYPE \ + cosmos_base_reflection_v2alpha1_SigningModeDescriptor + +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, SINGULAR, INT32, number, 2) \ + X(a, CALLBACK, SINGULAR, STRING, authn_info_provider_method_fullname, 3) +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, id, 1) +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, interfaces, 1) +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_interfaces_MSGTYPE \ + cosmos_base_reflection_v2alpha1_InterfaceDescriptor + +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fullname, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, interface_accepting_messages, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, interface_implementers, 3) +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_interface_accepting_messages_MSGTYPE \ + cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_interface_implementers_MSGTYPE \ + cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor + +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fullname, 1) \ + X(a, CALLBACK, SINGULAR, STRING, type_url, 2) +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fullname, 1) \ + X(a, CALLBACK, REPEATED, STRING, field_descriptor_names, 2) +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, bech32_account_address_prefix, 1) +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, msg_type_url, 1) +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, authn, 1) +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_authn_MSGTYPE \ + cosmos_base_reflection_v2alpha1_AuthnDescriptor + +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, chain, 1) +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_chain_MSGTYPE \ + cosmos_base_reflection_v2alpha1_ChainDescriptor + +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, codec, 1) +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_codec_MSGTYPE \ + cosmos_base_reflection_v2alpha1_CodecDescriptor + +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, config, 1) +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_config_MSGTYPE \ + cosmos_base_reflection_v2alpha1_ConfigurationDescriptor + +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, queries, 1) +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_queries_MSGTYPE \ + cosmos_base_reflection_v2alpha1_QueryServicesDescriptor + +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_FIELDLIST(X, a) + +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_DEFAULT NULL + +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_CALLBACK NULL +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_tx_MSGTYPE cosmos_base_reflection_v2alpha1_TxDescriptor + +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, query_services, 1) +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_query_services_MSGTYPE \ + cosmos_base_reflection_v2alpha1_QueryServiceDescriptor + +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fullname, 1) \ + X(a, STATIC, SINGULAR, BOOL, is_module, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, methods, 3) +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_DEFAULT NULL +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_methods_MSGTYPE \ + cosmos_base_reflection_v2alpha1_QueryMethodDescriptor + +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, full_query_path, 2) +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_CALLBACK pb_default_field_callback +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_AppDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_TxDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_AuthnDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_SigningModeDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_ChainDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_CodecDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_InterfaceDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_MsgDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_msg; +extern const pb_msgdesc_t cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_reflection_v2alpha1_AppDescriptor_fields &cosmos_base_reflection_v2alpha1_AppDescriptor_msg +#define cosmos_base_reflection_v2alpha1_TxDescriptor_fields &cosmos_base_reflection_v2alpha1_TxDescriptor_msg +#define cosmos_base_reflection_v2alpha1_AuthnDescriptor_fields &cosmos_base_reflection_v2alpha1_AuthnDescriptor_msg +#define cosmos_base_reflection_v2alpha1_SigningModeDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_SigningModeDescriptor_msg +#define cosmos_base_reflection_v2alpha1_ChainDescriptor_fields &cosmos_base_reflection_v2alpha1_ChainDescriptor_msg +#define cosmos_base_reflection_v2alpha1_CodecDescriptor_fields &cosmos_base_reflection_v2alpha1_CodecDescriptor_msg +#define cosmos_base_reflection_v2alpha1_InterfaceDescriptor_fields &cosmos_base_reflection_v2alpha1_InterfaceDescriptor_msg +#define cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_msg +#define cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_msg +#define cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_msg +#define cosmos_base_reflection_v2alpha1_MsgDescriptor_fields &cosmos_base_reflection_v2alpha1_MsgDescriptor_msg +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_fields \ + &cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_msg +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_fields \ + &cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_msg +#define cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_msg +#define cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_msg +#define cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_fields \ + &cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_reflection_v2alpha1_AppDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_TxDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_AuthnDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_SigningModeDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_ChainDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_CodecDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_InterfaceDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_InterfaceImplementerDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_InterfaceAcceptingMessageDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_ConfigurationDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_MsgDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetAuthnDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetChainDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetCodecDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_GetTxDescriptorResponse_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_QueryServicesDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_QueryServiceDescriptor_size depends on runtime parameters */ +/* cosmos_base_reflection_v2alpha1_QueryMethodDescriptor_size depends on runtime parameters */ +#define cosmos_base_reflection_v2alpha1_GetAuthnDescriptorRequest_size 0 +#define cosmos_base_reflection_v2alpha1_GetChainDescriptorRequest_size 0 +#define cosmos_base_reflection_v2alpha1_GetCodecDescriptorRequest_size 0 +#define cosmos_base_reflection_v2alpha1_GetConfigurationDescriptorRequest_size 0 +#define cosmos_base_reflection_v2alpha1_GetQueryServicesDescriptorRequest_size 0 +#define cosmos_base_reflection_v2alpha1_GetTxDescriptorRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.c b/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.c new file mode 100644 index 0000000..5fda308 --- /dev/null +++ b/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.c @@ -0,0 +1,49 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/tendermint/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest, + cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse, + cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest, + cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse, + cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_Validator, cosmos_base_tendermint_v1beta1_Validator, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest, cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse, cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse, 2) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetLatestBlockRequest, cosmos_base_tendermint_v1beta1_GetLatestBlockRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetLatestBlockResponse, cosmos_base_tendermint_v1beta1_GetLatestBlockResponse, 2) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetSyncingRequest, cosmos_base_tendermint_v1beta1_GetSyncingRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetSyncingResponse, cosmos_base_tendermint_v1beta1_GetSyncingResponse, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetNodeInfoRequest, cosmos_base_tendermint_v1beta1_GetNodeInfoRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_GetNodeInfoResponse, cosmos_base_tendermint_v1beta1_GetNodeInfoResponse, 2) + +PB_BIND(cosmos_base_tendermint_v1beta1_VersionInfo, cosmos_base_tendermint_v1beta1_VersionInfo, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_Module, cosmos_base_tendermint_v1beta1_Module, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_ABCIQueryRequest, cosmos_base_tendermint_v1beta1_ABCIQueryRequest, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_ABCIQueryResponse, cosmos_base_tendermint_v1beta1_ABCIQueryResponse, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_ProofOp, cosmos_base_tendermint_v1beta1_ProofOp, AUTO) + +PB_BIND(cosmos_base_tendermint_v1beta1_ProofOps, cosmos_base_tendermint_v1beta1_ProofOps, AUTO) diff --git a/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.h b/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.h new file mode 100644 index 0000000..edfd7cd --- /dev/null +++ b/app/src/protobuf/cosmos/base/tendermint/v1beta1/query.pb.h @@ -0,0 +1,600 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_TENDERMINT_V1BETA1_COSMOS_BASE_TENDERMINT_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_BASE_TENDERMINT_V1BETA1_COSMOS_BASE_TENDERMINT_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/base/tendermint/v1beta1/types.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" +#include "tendermint/p2p/types.pb.h" +#include "tendermint/types/block.pb.h" +#include "tendermint/types/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest { + int64_t height; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest; + +/* GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse { + int64_t block_height; + pb_callback_t validators; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse; + +/* GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest { + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest; + +/* GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse { + int64_t block_height; + pb_callback_t validators; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse; + +/* Validator is the type for the validator-set. */ +typedef struct _cosmos_base_tendermint_v1beta1_Validator { + pb_callback_t address; + bool has_pub_key; + google_protobuf_Any pub_key; + int64_t voting_power; + int64_t proposer_priority; +} cosmos_base_tendermint_v1beta1_Validator; + +/* GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest { + int64_t height; +} cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest; + +/* GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse { + bool has_block_id; + tendermint_types_BlockID block_id; + /* Deprecated: please use `sdk_block` instead */ + bool has_block; + tendermint_types_Block block; + /* Since: cosmos-sdk 0.47 */ + bool has_sdk_block; + cosmos_base_tendermint_v1beta1_Block sdk_block; +} cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse; + +/* GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetLatestBlockRequest { + char dummy_field; +} cosmos_base_tendermint_v1beta1_GetLatestBlockRequest; + +/* GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetLatestBlockResponse { + bool has_block_id; + tendermint_types_BlockID block_id; + /* Deprecated: please use `sdk_block` instead */ + bool has_block; + tendermint_types_Block block; + /* Since: cosmos-sdk 0.47 */ + bool has_sdk_block; + cosmos_base_tendermint_v1beta1_Block sdk_block; +} cosmos_base_tendermint_v1beta1_GetLatestBlockResponse; + +/* GetSyncingRequest is the request type for the Query/GetSyncing RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetSyncingRequest { + char dummy_field; +} cosmos_base_tendermint_v1beta1_GetSyncingRequest; + +/* GetSyncingResponse is the response type for the Query/GetSyncing RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetSyncingResponse { + bool syncing; +} cosmos_base_tendermint_v1beta1_GetSyncingResponse; + +/* GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetNodeInfoRequest { + char dummy_field; +} cosmos_base_tendermint_v1beta1_GetNodeInfoRequest; + +/* VersionInfo is the type for the GetNodeInfoResponse message. */ +typedef struct _cosmos_base_tendermint_v1beta1_VersionInfo { + pb_callback_t name; + pb_callback_t app_name; + pb_callback_t version; + pb_callback_t git_commit; + pb_callback_t build_tags; + pb_callback_t go_version; + pb_callback_t build_deps; + /* Since: cosmos-sdk 0.43 */ + pb_callback_t cosmos_sdk_version; +} cosmos_base_tendermint_v1beta1_VersionInfo; + +/* GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. */ +typedef struct _cosmos_base_tendermint_v1beta1_GetNodeInfoResponse { + bool has_default_node_info; + tendermint_p2p_DefaultNodeInfo default_node_info; + bool has_application_version; + cosmos_base_tendermint_v1beta1_VersionInfo application_version; +} cosmos_base_tendermint_v1beta1_GetNodeInfoResponse; + +/* Module is the type for VersionInfo */ +typedef struct _cosmos_base_tendermint_v1beta1_Module { + /* module path */ + pb_callback_t path; + /* module version */ + pb_callback_t version; + /* checksum */ + pb_callback_t sum; +} cosmos_base_tendermint_v1beta1_Module; + +/* ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. */ +typedef struct _cosmos_base_tendermint_v1beta1_ABCIQueryRequest { + pb_callback_t data; + pb_callback_t path; + int64_t height; + bool prove; +} cosmos_base_tendermint_v1beta1_ABCIQueryRequest; + +/* ProofOp defines an operation used for calculating Merkle root. The data could + be arbitrary format, providing necessary data for example neighbouring node + hash. + + Note: This type is a duplicate of the ProofOp proto type defined in Tendermint. */ +typedef struct _cosmos_base_tendermint_v1beta1_ProofOp { + pb_callback_t type; + pb_callback_t key; + pb_callback_t data; +} cosmos_base_tendermint_v1beta1_ProofOp; + +/* ProofOps is Merkle proof defined by the list of ProofOps. + + Note: This type is a duplicate of the ProofOps proto type defined in Tendermint. */ +typedef struct _cosmos_base_tendermint_v1beta1_ProofOps { + pb_callback_t ops; +} cosmos_base_tendermint_v1beta1_ProofOps; + +/* ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. + + Note: This type is a duplicate of the ResponseQuery proto type defined in + Tendermint. */ +typedef struct _cosmos_base_tendermint_v1beta1_ABCIQueryResponse { + uint32_t code; + pb_callback_t log; /* nondeterministic */ + pb_callback_t info; /* nondeterministic */ + int64_t index; + pb_callback_t key; + pb_callback_t value; + bool has_proof_ops; + cosmos_base_tendermint_v1beta1_ProofOps proof_ops; + int64_t height; + pb_callback_t codespace; +} cosmos_base_tendermint_v1beta1_ABCIQueryResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_init_default \ + { 0, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_init_default \ + { 0, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_base_tendermint_v1beta1_Validator_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default, 0, 0 } +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_init_default \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_init_default \ + { \ + false, tendermint_types_BlockID_init_default, false, tendermint_types_Block_init_default, false, \ + cosmos_base_tendermint_v1beta1_Block_init_default \ + } +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_init_default \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_init_default \ + { \ + false, tendermint_types_BlockID_init_default, false, tendermint_types_Block_init_default, false, \ + cosmos_base_tendermint_v1beta1_Block_init_default \ + } +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_init_default \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_init_default \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_init_default \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_init_default \ + { false, tendermint_p2p_DefaultNodeInfo_init_default, false, cosmos_base_tendermint_v1beta1_VersionInfo_init_default } +#define cosmos_base_tendermint_v1beta1_VersionInfo_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_tendermint_v1beta1_Module_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_tendermint_v1beta1_ProofOps_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_tendermint_v1beta1_ProofOp_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_tendermint_v1beta1_ProofOps_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_init_zero \ + { 0, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_init_zero \ + { 0, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_base_tendermint_v1beta1_Validator_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero, 0, 0 } +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_init_zero \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_init_zero \ + { \ + false, tendermint_types_BlockID_init_zero, false, tendermint_types_Block_init_zero, false, \ + cosmos_base_tendermint_v1beta1_Block_init_zero \ + } +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_init_zero \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_init_zero \ + { \ + false, tendermint_types_BlockID_init_zero, false, tendermint_types_Block_init_zero, false, \ + cosmos_base_tendermint_v1beta1_Block_init_zero \ + } +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_init_zero \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_init_zero \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_init_zero \ + { 0 } +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_init_zero \ + { false, tendermint_p2p_DefaultNodeInfo_init_zero, false, cosmos_base_tendermint_v1beta1_VersionInfo_init_zero } +#define cosmos_base_tendermint_v1beta1_VersionInfo_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_tendermint_v1beta1_Module_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_tendermint_v1beta1_ProofOps_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_tendermint_v1beta1_ProofOp_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_tendermint_v1beta1_ProofOps_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_height_tag 1 +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_pagination_tag 2 +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_block_height_tag 1 +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_validators_tag 2 +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_pagination_tag 3 +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_pagination_tag 1 +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_block_height_tag 1 +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_validators_tag 2 +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_pagination_tag 3 +#define cosmos_base_tendermint_v1beta1_Validator_address_tag 1 +#define cosmos_base_tendermint_v1beta1_Validator_pub_key_tag 2 +#define cosmos_base_tendermint_v1beta1_Validator_voting_power_tag 3 +#define cosmos_base_tendermint_v1beta1_Validator_proposer_priority_tag 4 +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_height_tag 1 +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_block_id_tag 1 +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_block_tag 2 +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_sdk_block_tag 3 +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_block_id_tag 1 +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_block_tag 2 +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_sdk_block_tag 3 +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_syncing_tag 1 +#define cosmos_base_tendermint_v1beta1_VersionInfo_name_tag 1 +#define cosmos_base_tendermint_v1beta1_VersionInfo_app_name_tag 2 +#define cosmos_base_tendermint_v1beta1_VersionInfo_version_tag 3 +#define cosmos_base_tendermint_v1beta1_VersionInfo_git_commit_tag 4 +#define cosmos_base_tendermint_v1beta1_VersionInfo_build_tags_tag 5 +#define cosmos_base_tendermint_v1beta1_VersionInfo_go_version_tag 6 +#define cosmos_base_tendermint_v1beta1_VersionInfo_build_deps_tag 7 +#define cosmos_base_tendermint_v1beta1_VersionInfo_cosmos_sdk_version_tag 8 +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_default_node_info_tag 1 +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_application_version_tag 2 +#define cosmos_base_tendermint_v1beta1_Module_path_tag 1 +#define cosmos_base_tendermint_v1beta1_Module_version_tag 2 +#define cosmos_base_tendermint_v1beta1_Module_sum_tag 3 +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_data_tag 1 +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_path_tag 2 +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_height_tag 3 +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_prove_tag 4 +#define cosmos_base_tendermint_v1beta1_ProofOp_type_tag 1 +#define cosmos_base_tendermint_v1beta1_ProofOp_key_tag 2 +#define cosmos_base_tendermint_v1beta1_ProofOp_data_tag 3 +#define cosmos_base_tendermint_v1beta1_ProofOps_ops_tag 1 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_code_tag 1 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_log_tag 3 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_info_tag 4 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_index_tag 5 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_key_tag 6 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_value_tag 7 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_proof_ops_tag 8 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_height_tag 9 +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_codespace_tag 10 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageRequest + +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, block_height, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_validators_MSGTYPE \ + cosmos_base_tendermint_v1beta1_Validator +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageResponse + +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, block_height, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_validators_MSGTYPE \ + cosmos_base_tendermint_v1beta1_Validator +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageResponse + +#define cosmos_base_tendermint_v1beta1_Validator_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 2) \ + X(a, STATIC, SINGULAR, INT64, voting_power, 3) \ + X(a, STATIC, SINGULAR, INT64, proposer_priority, 4) +#define cosmos_base_tendermint_v1beta1_Validator_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_Validator_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_Validator_pub_key_MSGTYPE google_protobuf_Any + +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT64, height, 1) +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, sdk_block, 3) +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_block_id_MSGTYPE tendermint_types_BlockID +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_block_MSGTYPE tendermint_types_Block +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_sdk_block_MSGTYPE cosmos_base_tendermint_v1beta1_Block + +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_FIELDLIST(X, a) + +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, sdk_block, 3) +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_block_id_MSGTYPE tendermint_types_BlockID +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_block_MSGTYPE tendermint_types_Block +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_sdk_block_MSGTYPE cosmos_base_tendermint_v1beta1_Block + +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_FIELDLIST(X, a) + +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, syncing, 1) +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_FIELDLIST(X, a) + +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, default_node_info, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, application_version, 2) +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_default_node_info_MSGTYPE tendermint_p2p_DefaultNodeInfo +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_application_version_MSGTYPE \ + cosmos_base_tendermint_v1beta1_VersionInfo + +#define cosmos_base_tendermint_v1beta1_VersionInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, app_name, 2) \ + X(a, CALLBACK, SINGULAR, STRING, version, 3) \ + X(a, CALLBACK, SINGULAR, STRING, git_commit, 4) \ + X(a, CALLBACK, SINGULAR, STRING, build_tags, 5) \ + X(a, CALLBACK, SINGULAR, STRING, go_version, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, build_deps, 7) \ + X(a, CALLBACK, SINGULAR, STRING, cosmos_sdk_version, 8) +#define cosmos_base_tendermint_v1beta1_VersionInfo_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_VersionInfo_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_VersionInfo_build_deps_MSGTYPE cosmos_base_tendermint_v1beta1_Module + +#define cosmos_base_tendermint_v1beta1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, path, 1) \ + X(a, CALLBACK, SINGULAR, STRING, version, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sum, 3) +#define cosmos_base_tendermint_v1beta1_Module_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_Module_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 1) \ + X(a, CALLBACK, SINGULAR, STRING, path, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, SINGULAR, BOOL, prove, 4) +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, code, 1) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, SINGULAR, INT64, index, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_ops, 8) \ + X(a, STATIC, SINGULAR, INT64, height, 9) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 10) +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_proof_ops_MSGTYPE cosmos_base_tendermint_v1beta1_ProofOps + +#define cosmos_base_tendermint_v1beta1_ProofOp_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, type, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 3) +#define cosmos_base_tendermint_v1beta1_ProofOp_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_ProofOp_DEFAULT NULL + +#define cosmos_base_tendermint_v1beta1_ProofOps_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, ops, 1) +#define cosmos_base_tendermint_v1beta1_ProofOps_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_ProofOps_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_ProofOps_ops_MSGTYPE cosmos_base_tendermint_v1beta1_ProofOp + +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_Validator_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetSyncingRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetSyncingResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_VersionInfo_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_Module_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_ABCIQueryRequest_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_ABCIQueryResponse_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_ProofOp_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_ProofOps_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_fields \ + &cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_msg +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_fields \ + &cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_msg +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_fields \ + &cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_msg +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_fields \ + &cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_msg +#define cosmos_base_tendermint_v1beta1_Validator_fields &cosmos_base_tendermint_v1beta1_Validator_msg +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_fields \ + &cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_msg +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_fields \ + &cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_msg +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_fields &cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_msg +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_fields \ + &cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_msg +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_fields &cosmos_base_tendermint_v1beta1_GetSyncingRequest_msg +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_fields &cosmos_base_tendermint_v1beta1_GetSyncingResponse_msg +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_fields &cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_msg +#define cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_fields &cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_msg +#define cosmos_base_tendermint_v1beta1_VersionInfo_fields &cosmos_base_tendermint_v1beta1_VersionInfo_msg +#define cosmos_base_tendermint_v1beta1_Module_fields &cosmos_base_tendermint_v1beta1_Module_msg +#define cosmos_base_tendermint_v1beta1_ABCIQueryRequest_fields &cosmos_base_tendermint_v1beta1_ABCIQueryRequest_msg +#define cosmos_base_tendermint_v1beta1_ABCIQueryResponse_fields &cosmos_base_tendermint_v1beta1_ABCIQueryResponse_msg +#define cosmos_base_tendermint_v1beta1_ProofOp_fields &cosmos_base_tendermint_v1beta1_ProofOp_msg +#define cosmos_base_tendermint_v1beta1_ProofOps_fields &cosmos_base_tendermint_v1beta1_ProofOps_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightResponse_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_GetLatestValidatorSetResponse_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_Validator_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_GetNodeInfoResponse_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_VersionInfo_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_Module_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_ABCIQueryRequest_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_ABCIQueryResponse_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_ProofOp_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_ProofOps_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_base_tendermint_v1beta1_GetLatestValidatorSetRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_base_tendermint_v1beta1_GetValidatorSetByHeightRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightRequest_size 11 +#define cosmos_base_tendermint_v1beta1_GetLatestBlockRequest_size 0 +#define cosmos_base_tendermint_v1beta1_GetNodeInfoRequest_size 0 +#define cosmos_base_tendermint_v1beta1_GetSyncingRequest_size 0 +#define cosmos_base_tendermint_v1beta1_GetSyncingResponse_size 2 +#if defined(tendermint_types_BlockID_size) && defined(tendermint_types_Block_size) && \ + defined(cosmos_base_tendermint_v1beta1_Block_size) +#define COSMOS_BASE_TENDERMINT_V1BETA1_COSMOS_BASE_TENDERMINT_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_size +#define cosmos_base_tendermint_v1beta1_GetBlockByHeightResponse_size \ + (18 + tendermint_types_BlockID_size + tendermint_types_Block_size + cosmos_base_tendermint_v1beta1_Block_size) +#define cosmos_base_tendermint_v1beta1_GetLatestBlockResponse_size \ + (18 + tendermint_types_BlockID_size + tendermint_types_Block_size + cosmos_base_tendermint_v1beta1_Block_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.c b/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.c new file mode 100644 index 0000000..abf9a3c --- /dev/null +++ b/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/tendermint/v1beta1/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_tendermint_v1beta1_Block, cosmos_base_tendermint_v1beta1_Block, 2) + +PB_BIND(cosmos_base_tendermint_v1beta1_Header, cosmos_base_tendermint_v1beta1_Header, 2) diff --git a/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.h b/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.h new file mode 100644 index 0000000..fb65b13 --- /dev/null +++ b/app/src/protobuf/cosmos/base/tendermint/v1beta1/types.pb.h @@ -0,0 +1,163 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_TENDERMINT_V1BETA1_COSMOS_BASE_TENDERMINT_V1BETA1_TYPES_PB_H_INCLUDED +#define PB_COSMOS_BASE_TENDERMINT_V1BETA1_COSMOS_BASE_TENDERMINT_V1BETA1_TYPES_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/types/evidence.pb.h" +#include "tendermint/types/types.pb.h" +#include "tendermint/version/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Header defines the structure of a Tendermint block header. */ +typedef struct _cosmos_base_tendermint_v1beta1_Header { + /* basic block info */ + bool has_version; + tendermint_version_Consensus version; + pb_callback_t chain_id; + int64_t height; + bool has_time; + google_protobuf_Timestamp time; + /* prev block info */ + bool has_last_block_id; + tendermint_types_BlockID last_block_id; + /* hashes of block data */ + pb_callback_t last_commit_hash; /* commit from validators from the last block */ + pb_callback_t data_hash; /* transactions */ + /* hashes from the app output from the prev block */ + pb_callback_t validators_hash; /* validators for the current block */ + pb_callback_t next_validators_hash; /* validators for the next block */ + pb_callback_t consensus_hash; /* consensus params for current block */ + pb_callback_t app_hash; /* state after txs from the previous block */ + pb_callback_t last_results_hash; /* root hash of all results from the txs from the previous block */ + /* consensus info */ + pb_callback_t evidence_hash; /* evidence included in the block */ + /* proposer_address is the original block proposer address, formatted as a Bech32 string. + In Tendermint, this type is `bytes`, but in the SDK, we convert it to a Bech32 string + for better UX. */ + pb_callback_t proposer_address; /* original proposer of the block */ +} cosmos_base_tendermint_v1beta1_Header; + +/* Block is tendermint type Block, with the Header proposer address + field converted to bech32 string. */ +typedef struct _cosmos_base_tendermint_v1beta1_Block { + bool has_header; + cosmos_base_tendermint_v1beta1_Header header; + bool has_data; + tendermint_types_Data data; + bool has_evidence; + tendermint_types_EvidenceList evidence; + bool has_last_commit; + tendermint_types_Commit last_commit; +} cosmos_base_tendermint_v1beta1_Block; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_tendermint_v1beta1_Block_init_default \ + { \ + false, cosmos_base_tendermint_v1beta1_Header_init_default, false, tendermint_types_Data_init_default, false, \ + tendermint_types_EvidenceList_init_default, false, tendermint_types_Commit_init_default \ + } +#define cosmos_base_tendermint_v1beta1_Header_init_default \ + { \ + false, tendermint_version_Consensus_init_default, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_default, \ + false, tendermint_types_BlockID_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_base_tendermint_v1beta1_Block_init_zero \ + { \ + false, cosmos_base_tendermint_v1beta1_Header_init_zero, false, tendermint_types_Data_init_zero, false, \ + tendermint_types_EvidenceList_init_zero, false, tendermint_types_Commit_init_zero \ + } +#define cosmos_base_tendermint_v1beta1_Header_init_zero \ + { \ + false, tendermint_version_Consensus_init_zero, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_zero, \ + false, tendermint_types_BlockID_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_tendermint_v1beta1_Header_version_tag 1 +#define cosmos_base_tendermint_v1beta1_Header_chain_id_tag 2 +#define cosmos_base_tendermint_v1beta1_Header_height_tag 3 +#define cosmos_base_tendermint_v1beta1_Header_time_tag 4 +#define cosmos_base_tendermint_v1beta1_Header_last_block_id_tag 5 +#define cosmos_base_tendermint_v1beta1_Header_last_commit_hash_tag 6 +#define cosmos_base_tendermint_v1beta1_Header_data_hash_tag 7 +#define cosmos_base_tendermint_v1beta1_Header_validators_hash_tag 8 +#define cosmos_base_tendermint_v1beta1_Header_next_validators_hash_tag 9 +#define cosmos_base_tendermint_v1beta1_Header_consensus_hash_tag 10 +#define cosmos_base_tendermint_v1beta1_Header_app_hash_tag 11 +#define cosmos_base_tendermint_v1beta1_Header_last_results_hash_tag 12 +#define cosmos_base_tendermint_v1beta1_Header_evidence_hash_tag 13 +#define cosmos_base_tendermint_v1beta1_Header_proposer_address_tag 14 +#define cosmos_base_tendermint_v1beta1_Block_header_tag 1 +#define cosmos_base_tendermint_v1beta1_Block_data_tag 2 +#define cosmos_base_tendermint_v1beta1_Block_evidence_tag 3 +#define cosmos_base_tendermint_v1beta1_Block_last_commit_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_tendermint_v1beta1_Block_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, evidence, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_commit, 4) +#define cosmos_base_tendermint_v1beta1_Block_CALLBACK NULL +#define cosmos_base_tendermint_v1beta1_Block_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_Block_header_MSGTYPE cosmos_base_tendermint_v1beta1_Header +#define cosmos_base_tendermint_v1beta1_Block_data_MSGTYPE tendermint_types_Data +#define cosmos_base_tendermint_v1beta1_Block_evidence_MSGTYPE tendermint_types_EvidenceList +#define cosmos_base_tendermint_v1beta1_Block_last_commit_MSGTYPE tendermint_types_Commit + +#define cosmos_base_tendermint_v1beta1_Header_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_block_id, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, last_commit_hash, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, data_hash, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, validators_hash, 8) \ + X(a, CALLBACK, SINGULAR, BYTES, next_validators_hash, 9) \ + X(a, CALLBACK, SINGULAR, BYTES, consensus_hash, 10) \ + X(a, CALLBACK, SINGULAR, BYTES, app_hash, 11) \ + X(a, CALLBACK, SINGULAR, BYTES, last_results_hash, 12) \ + X(a, CALLBACK, SINGULAR, BYTES, evidence_hash, 13) \ + X(a, CALLBACK, SINGULAR, STRING, proposer_address, 14) +#define cosmos_base_tendermint_v1beta1_Header_CALLBACK pb_default_field_callback +#define cosmos_base_tendermint_v1beta1_Header_DEFAULT NULL +#define cosmos_base_tendermint_v1beta1_Header_version_MSGTYPE tendermint_version_Consensus +#define cosmos_base_tendermint_v1beta1_Header_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_base_tendermint_v1beta1_Header_last_block_id_MSGTYPE tendermint_types_BlockID + +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_Block_msg; +extern const pb_msgdesc_t cosmos_base_tendermint_v1beta1_Header_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_tendermint_v1beta1_Block_fields &cosmos_base_tendermint_v1beta1_Block_msg +#define cosmos_base_tendermint_v1beta1_Header_fields &cosmos_base_tendermint_v1beta1_Header_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_tendermint_v1beta1_Block_size depends on runtime parameters */ +/* cosmos_base_tendermint_v1beta1_Header_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/base/v1beta1/coin.pb.c b/app/src/protobuf/cosmos/base/v1beta1/coin.pb.c new file mode 100644 index 0000000..8f4d03c --- /dev/null +++ b/app/src/protobuf/cosmos/base/v1beta1/coin.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/base/v1beta1/coin.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_base_v1beta1_Coin, cosmos_base_v1beta1_Coin, AUTO) + +PB_BIND(cosmos_base_v1beta1_DecCoin, cosmos_base_v1beta1_DecCoin, AUTO) diff --git a/app/src/protobuf/cosmos/base/v1beta1/coin.pb.h b/app/src/protobuf/cosmos/base/v1beta1/coin.pb.h new file mode 100644 index 0000000..15c983f --- /dev/null +++ b/app/src/protobuf/cosmos/base/v1beta1/coin.pb.h @@ -0,0 +1,91 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_BASE_V1BETA1_COSMOS_BASE_V1BETA1_COIN_PB_H_INCLUDED +#define PB_COSMOS_BASE_V1BETA1_COSMOS_BASE_V1BETA1_COIN_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Coin defines a token with a denomination and an amount. + + NOTE: The amount field is an Int which implements the custom method + signatures required by gogoproto. */ +typedef struct _cosmos_base_v1beta1_Coin { + pb_callback_t denom; + pb_callback_t amount; +} cosmos_base_v1beta1_Coin; + +/* DecCoin defines a token with a denomination and a decimal amount. + + NOTE: The amount field is an Dec which implements the custom method + signatures required by gogoproto. */ +typedef struct _cosmos_base_v1beta1_DecCoin { + pb_callback_t denom; + pb_callback_t amount; +} cosmos_base_v1beta1_DecCoin; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_base_v1beta1_Coin_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_v1beta1_DecCoin_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_v1beta1_Coin_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_base_v1beta1_DecCoin_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_base_v1beta1_Coin_denom_tag 1 +#define cosmos_base_v1beta1_Coin_amount_tag 2 +#define cosmos_base_v1beta1_DecCoin_denom_tag 1 +#define cosmos_base_v1beta1_DecCoin_amount_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_base_v1beta1_Coin_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, CALLBACK, SINGULAR, STRING, amount, 2) +#define cosmos_base_v1beta1_Coin_CALLBACK pb_default_field_callback +#define cosmos_base_v1beta1_Coin_DEFAULT NULL + +#define cosmos_base_v1beta1_DecCoin_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, CALLBACK, SINGULAR, STRING, amount, 2) +#define cosmos_base_v1beta1_DecCoin_CALLBACK pb_default_field_callback +#define cosmos_base_v1beta1_DecCoin_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_base_v1beta1_Coin_msg; +extern const pb_msgdesc_t cosmos_base_v1beta1_DecCoin_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_base_v1beta1_Coin_fields &cosmos_base_v1beta1_Coin_msg +#define cosmos_base_v1beta1_DecCoin_fields &cosmos_base_v1beta1_DecCoin_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_base_v1beta1_Coin_size depends on runtime parameters */ +/* cosmos_base_v1beta1_DecCoin_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/circuit/module/v1/module.pb.c b/app/src/protobuf/cosmos/circuit/module/v1/module.pb.c new file mode 100644 index 0000000..550a064 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/circuit/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_circuit_module_v1_Module, cosmos_circuit_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/circuit/module/v1/module.pb.h b/app/src/protobuf/cosmos/circuit/module/v1/module.pb.h new file mode 100644 index 0000000..68334e1 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/module/v1/module.pb.h @@ -0,0 +1,55 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CIRCUIT_MODULE_V1_COSMOS_CIRCUIT_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_CIRCUIT_MODULE_V1_COSMOS_CIRCUIT_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the circuit module. */ +typedef struct _cosmos_circuit_module_v1_Module { + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_circuit_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_circuit_module_v1_Module_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_circuit_module_v1_Module_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_circuit_module_v1_Module_authority_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_circuit_module_v1_Module_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, authority, 1) +#define cosmos_circuit_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_circuit_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_circuit_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_circuit_module_v1_Module_fields &cosmos_circuit_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_circuit_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/circuit/v1/query.pb.c b/app/src/protobuf/cosmos/circuit/v1/query.pb.c new file mode 100644 index 0000000..f183419 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/query.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/circuit/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_circuit_v1_QueryAccountRequest, cosmos_circuit_v1_QueryAccountRequest, AUTO) + +PB_BIND(cosmos_circuit_v1_AccountResponse, cosmos_circuit_v1_AccountResponse, AUTO) + +PB_BIND(cosmos_circuit_v1_QueryAccountsRequest, cosmos_circuit_v1_QueryAccountsRequest, AUTO) + +PB_BIND(cosmos_circuit_v1_AccountsResponse, cosmos_circuit_v1_AccountsResponse, AUTO) + +PB_BIND(cosmos_circuit_v1_QueryDisabledListRequest, cosmos_circuit_v1_QueryDisabledListRequest, AUTO) + +PB_BIND(cosmos_circuit_v1_DisabledListResponse, cosmos_circuit_v1_DisabledListResponse, AUTO) diff --git a/app/src/protobuf/cosmos/circuit/v1/query.pb.h b/app/src/protobuf/cosmos/circuit/v1/query.pb.h new file mode 100644 index 0000000..927bd7e --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/query.pb.h @@ -0,0 +1,164 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/circuit/v1/types.pb.h" +#include "cosmos/query/v1/query.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryAccountRequest is the request type for the Query/Account RPC method. */ +typedef struct _cosmos_circuit_v1_QueryAccountRequest { + pb_callback_t address; +} cosmos_circuit_v1_QueryAccountRequest; + +/* AccountResponse is the response type for the Query/Account RPC method. */ +typedef struct _cosmos_circuit_v1_AccountResponse { + bool has_permission; + cosmos_circuit_v1_Permissions permission; +} cosmos_circuit_v1_AccountResponse; + +/* QueryAccountsRequest is the request type for the Query/Accounts RPC method. */ +typedef struct _cosmos_circuit_v1_QueryAccountsRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_circuit_v1_QueryAccountsRequest; + +/* AccountsResponse is the response type for the Query/Accounts RPC method. */ +typedef struct _cosmos_circuit_v1_AccountsResponse { + pb_callback_t accounts; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_circuit_v1_AccountsResponse; + +/* QueryDisableListRequest is the request type for the Query/DisabledList RPC method. */ +typedef struct _cosmos_circuit_v1_QueryDisabledListRequest { + char dummy_field; +} cosmos_circuit_v1_QueryDisabledListRequest; + +/* DisabledListResponse is the response type for the Query/DisabledList RPC method. */ +typedef struct _cosmos_circuit_v1_DisabledListResponse { + pb_callback_t disabled_list; +} cosmos_circuit_v1_DisabledListResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_circuit_v1_QueryAccountRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_AccountResponse_init_default \ + { false, cosmos_circuit_v1_Permissions_init_default } +#define cosmos_circuit_v1_QueryAccountsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_circuit_v1_AccountsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_circuit_v1_QueryDisabledListRequest_init_default \ + { 0 } +#define cosmos_circuit_v1_DisabledListResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_QueryAccountRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_AccountResponse_init_zero \ + { false, cosmos_circuit_v1_Permissions_init_zero } +#define cosmos_circuit_v1_QueryAccountsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_circuit_v1_AccountsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_circuit_v1_QueryDisabledListRequest_init_zero \ + { 0 } +#define cosmos_circuit_v1_DisabledListResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_circuit_v1_QueryAccountRequest_address_tag 1 +#define cosmos_circuit_v1_AccountResponse_permission_tag 1 +#define cosmos_circuit_v1_QueryAccountsRequest_pagination_tag 1 +#define cosmos_circuit_v1_AccountsResponse_accounts_tag 1 +#define cosmos_circuit_v1_AccountsResponse_pagination_tag 2 +#define cosmos_circuit_v1_DisabledListResponse_disabled_list_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_circuit_v1_QueryAccountRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_circuit_v1_QueryAccountRequest_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_QueryAccountRequest_DEFAULT NULL + +#define cosmos_circuit_v1_AccountResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, permission, 1) +#define cosmos_circuit_v1_AccountResponse_CALLBACK NULL +#define cosmos_circuit_v1_AccountResponse_DEFAULT NULL +#define cosmos_circuit_v1_AccountResponse_permission_MSGTYPE cosmos_circuit_v1_Permissions + +#define cosmos_circuit_v1_QueryAccountsRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_circuit_v1_QueryAccountsRequest_CALLBACK NULL +#define cosmos_circuit_v1_QueryAccountsRequest_DEFAULT NULL +#define cosmos_circuit_v1_QueryAccountsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_circuit_v1_AccountsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, accounts, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_circuit_v1_AccountsResponse_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_AccountsResponse_DEFAULT NULL +#define cosmos_circuit_v1_AccountsResponse_accounts_MSGTYPE cosmos_circuit_v1_GenesisAccountPermissions +#define cosmos_circuit_v1_AccountsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_circuit_v1_QueryDisabledListRequest_FIELDLIST(X, a) + +#define cosmos_circuit_v1_QueryDisabledListRequest_CALLBACK NULL +#define cosmos_circuit_v1_QueryDisabledListRequest_DEFAULT NULL + +#define cosmos_circuit_v1_DisabledListResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, disabled_list, 1) +#define cosmos_circuit_v1_DisabledListResponse_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_DisabledListResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_circuit_v1_QueryAccountRequest_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_AccountResponse_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_QueryAccountsRequest_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_AccountsResponse_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_QueryDisabledListRequest_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_DisabledListResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_circuit_v1_QueryAccountRequest_fields &cosmos_circuit_v1_QueryAccountRequest_msg +#define cosmos_circuit_v1_AccountResponse_fields &cosmos_circuit_v1_AccountResponse_msg +#define cosmos_circuit_v1_QueryAccountsRequest_fields &cosmos_circuit_v1_QueryAccountsRequest_msg +#define cosmos_circuit_v1_AccountsResponse_fields &cosmos_circuit_v1_AccountsResponse_msg +#define cosmos_circuit_v1_QueryDisabledListRequest_fields &cosmos_circuit_v1_QueryDisabledListRequest_msg +#define cosmos_circuit_v1_DisabledListResponse_fields &cosmos_circuit_v1_DisabledListResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_circuit_v1_QueryAccountRequest_size depends on runtime parameters */ +/* cosmos_circuit_v1_AccountsResponse_size depends on runtime parameters */ +/* cosmos_circuit_v1_DisabledListResponse_size depends on runtime parameters */ +#if defined(cosmos_circuit_v1_Permissions_size) +#define COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_QUERY_PB_H_MAX_SIZE cosmos_circuit_v1_AccountResponse_size +#define cosmos_circuit_v1_AccountResponse_size (6 + cosmos_circuit_v1_Permissions_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_circuit_v1_QueryAccountsRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define cosmos_circuit_v1_QueryDisabledListRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/circuit/v1/tx.pb.c b/app/src/protobuf/cosmos/circuit/v1/tx.pb.c new file mode 100644 index 0000000..e6d3e67 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/tx.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/circuit/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_circuit_v1_MsgAuthorizeCircuitBreaker, cosmos_circuit_v1_MsgAuthorizeCircuitBreaker, AUTO) + +PB_BIND(cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse, cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse, AUTO) + +PB_BIND(cosmos_circuit_v1_MsgTripCircuitBreaker, cosmos_circuit_v1_MsgTripCircuitBreaker, AUTO) + +PB_BIND(cosmos_circuit_v1_MsgTripCircuitBreakerResponse, cosmos_circuit_v1_MsgTripCircuitBreakerResponse, AUTO) + +PB_BIND(cosmos_circuit_v1_MsgResetCircuitBreaker, cosmos_circuit_v1_MsgResetCircuitBreaker, AUTO) + +PB_BIND(cosmos_circuit_v1_MsgResetCircuitBreakerResponse, cosmos_circuit_v1_MsgResetCircuitBreakerResponse, AUTO) diff --git a/app/src/protobuf/cosmos/circuit/v1/tx.pb.h b/app/src/protobuf/cosmos/circuit/v1/tx.pb.h new file mode 100644 index 0000000..32f214f --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/tx.pb.h @@ -0,0 +1,178 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_TX_PB_H_INCLUDED +#define PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/circuit/v1/types.pb.h" +#include "cosmos/msg/v1/msg.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgAuthorizeCircuitBreaker defines the Msg/AuthorizeCircuitBreaker request type. */ +typedef struct _cosmos_circuit_v1_MsgAuthorizeCircuitBreaker { + /* granter is the granter of the circuit breaker permissions and must have + LEVEL_SUPER_ADMIN. */ + pb_callback_t granter; + /* grantee is the account authorized with the provided permissions. */ + pb_callback_t grantee; + /* permissions are the circuit breaker permissions that the grantee receives. + These will overwrite any existing permissions. LEVEL_NONE_UNSPECIFIED can + be specified to revoke all permissions. */ + bool has_permissions; + cosmos_circuit_v1_Permissions permissions; +} cosmos_circuit_v1_MsgAuthorizeCircuitBreaker; + +/* MsgAuthorizeCircuitBreaker defines the Msg/AuthorizeCircuitBreaker response type. */ +typedef struct _cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse { + bool success; +} cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse; + +/* MsgTripCircuitBreaker defines the Msg/TripCircuitBreaker request type. */ +typedef struct _cosmos_circuit_v1_MsgTripCircuitBreaker { + /* authority is the account authorized to trip the circuit breaker. */ + pb_callback_t authority; + /* msg_type_urls specifies a list of type URLs to immediately stop processing. + IF IT IS LEFT EMPTY, ALL MSG PROCESSING WILL STOP IMMEDIATELY. + This value is validated against the authority's permissions and if the + authority does not have permissions to trip the specified msg type URLs + (or all URLs), the operation will fail. */ + pb_callback_t msg_type_urls; +} cosmos_circuit_v1_MsgTripCircuitBreaker; + +/* MsgTripCircuitBreaker defines the Msg/TripCircuitBreaker response type. */ +typedef struct _cosmos_circuit_v1_MsgTripCircuitBreakerResponse { + bool success; +} cosmos_circuit_v1_MsgTripCircuitBreakerResponse; + +/* MsgResetCircuitBreaker defines the Msg/ResetCircuitBreaker request type. */ +typedef struct _cosmos_circuit_v1_MsgResetCircuitBreaker { + /* authority is the account authorized to trip or reset the circuit breaker. */ + pb_callback_t authority; + /* msg_type_urls specifies a list of Msg type URLs to resume processing. If + it is left empty all Msg processing for type URLs that the account is + authorized to trip will resume. */ + pb_callback_t msg_type_urls; +} cosmos_circuit_v1_MsgResetCircuitBreaker; + +/* MsgResetCircuitBreakerResponse defines the Msg/ResetCircuitBreaker response type. */ +typedef struct _cosmos_circuit_v1_MsgResetCircuitBreakerResponse { + bool success; +} cosmos_circuit_v1_MsgResetCircuitBreakerResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_circuit_v1_Permissions_init_default } +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_init_default \ + { 0 } +#define cosmos_circuit_v1_MsgTripCircuitBreaker_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_init_default \ + { 0 } +#define cosmos_circuit_v1_MsgResetCircuitBreaker_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_init_default \ + { 0 } +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_circuit_v1_Permissions_init_zero } +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_init_zero \ + { 0 } +#define cosmos_circuit_v1_MsgTripCircuitBreaker_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_init_zero \ + { 0 } +#define cosmos_circuit_v1_MsgResetCircuitBreaker_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_granter_tag 1 +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_grantee_tag 2 +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_permissions_tag 3 +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_success_tag 1 +#define cosmos_circuit_v1_MsgTripCircuitBreaker_authority_tag 1 +#define cosmos_circuit_v1_MsgTripCircuitBreaker_msg_type_urls_tag 2 +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_success_tag 1 +#define cosmos_circuit_v1_MsgResetCircuitBreaker_authority_tag 1 +#define cosmos_circuit_v1_MsgResetCircuitBreaker_msg_type_urls_tag 3 +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_success_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, permissions, 3) +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_DEFAULT NULL +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_permissions_MSGTYPE cosmos_circuit_v1_Permissions + +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, success, 1) +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_CALLBACK NULL +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_DEFAULT NULL + +#define cosmos_circuit_v1_MsgTripCircuitBreaker_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, CALLBACK, REPEATED, STRING, msg_type_urls, 2) +#define cosmos_circuit_v1_MsgTripCircuitBreaker_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_MsgTripCircuitBreaker_DEFAULT NULL + +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, success, 1) +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_CALLBACK NULL +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_DEFAULT NULL + +#define cosmos_circuit_v1_MsgResetCircuitBreaker_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, CALLBACK, REPEATED, STRING, msg_type_urls, 3) +#define cosmos_circuit_v1_MsgResetCircuitBreaker_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_MsgResetCircuitBreaker_DEFAULT NULL + +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, success, 1) +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_CALLBACK NULL +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_MsgTripCircuitBreaker_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_MsgTripCircuitBreakerResponse_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_MsgResetCircuitBreaker_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_MsgResetCircuitBreakerResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_fields &cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_msg +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_fields &cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_msg +#define cosmos_circuit_v1_MsgTripCircuitBreaker_fields &cosmos_circuit_v1_MsgTripCircuitBreaker_msg +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_fields &cosmos_circuit_v1_MsgTripCircuitBreakerResponse_msg +#define cosmos_circuit_v1_MsgResetCircuitBreaker_fields &cosmos_circuit_v1_MsgResetCircuitBreaker_msg +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_fields &cosmos_circuit_v1_MsgResetCircuitBreakerResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_circuit_v1_MsgAuthorizeCircuitBreaker_size depends on runtime parameters */ +/* cosmos_circuit_v1_MsgTripCircuitBreaker_size depends on runtime parameters */ +/* cosmos_circuit_v1_MsgResetCircuitBreaker_size depends on runtime parameters */ +#define COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_TX_PB_H_MAX_SIZE cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_size +#define cosmos_circuit_v1_MsgAuthorizeCircuitBreakerResponse_size 2 +#define cosmos_circuit_v1_MsgResetCircuitBreakerResponse_size 2 +#define cosmos_circuit_v1_MsgTripCircuitBreakerResponse_size 2 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/circuit/v1/types.pb.c b/app/src/protobuf/cosmos/circuit/v1/types.pb.c new file mode 100644 index 0000000..8c7f396 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/types.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/circuit/v1/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_circuit_v1_Permissions, cosmos_circuit_v1_Permissions, AUTO) + +PB_BIND(cosmos_circuit_v1_GenesisAccountPermissions, cosmos_circuit_v1_GenesisAccountPermissions, AUTO) + +PB_BIND(cosmos_circuit_v1_GenesisState, cosmos_circuit_v1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/circuit/v1/types.pb.h b/app/src/protobuf/cosmos/circuit/v1/types.pb.h new file mode 100644 index 0000000..adb1408 --- /dev/null +++ b/app/src/protobuf/cosmos/circuit/v1/types.pb.h @@ -0,0 +1,137 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_TYPES_PB_H_INCLUDED +#define PB_COSMOS_CIRCUIT_V1_COSMOS_CIRCUIT_V1_TYPES_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* Level is the permission level. */ +typedef enum _cosmos_circuit_v1_Permissions_Level { + /* LEVEL_NONE_UNSPECIFIED indicates that the account will have no circuit + breaker permissions. */ + cosmos_circuit_v1_Permissions_Level_LEVEL_NONE_UNSPECIFIED = 0, + /* LEVEL_SOME_MSGS indicates that the account will have permission to + trip or reset the circuit breaker for some Msg type URLs. If this level + is chosen, a non-empty list of Msg type URLs must be provided in + limit_type_urls. */ + cosmos_circuit_v1_Permissions_Level_LEVEL_SOME_MSGS = 1, + /* LEVEL_ALL_MSGS indicates that the account can trip or reset the circuit + breaker for Msg's of all type URLs. */ + cosmos_circuit_v1_Permissions_Level_LEVEL_ALL_MSGS = 2, + /* LEVEL_SUPER_ADMIN indicates that the account can take all circuit breaker + actions and can grant permissions to other accounts. */ + cosmos_circuit_v1_Permissions_Level_LEVEL_SUPER_ADMIN = 3 +} cosmos_circuit_v1_Permissions_Level; + +/* Struct definitions */ +/* Permissions are the permissions that an account has to trip + or reset the circuit breaker. */ +typedef struct _cosmos_circuit_v1_Permissions { + /* level is the level of permissions granted to this account. */ + cosmos_circuit_v1_Permissions_Level level; + /* limit_type_urls is used with LEVEL_SOME_MSGS to limit the lists of Msg type + URLs that the account can trip. It is an error to use limit_type_urls with + a level other than LEVEL_SOME_MSGS. */ + pb_callback_t limit_type_urls; +} cosmos_circuit_v1_Permissions; + +/* GenesisAccountPermissions is the account permissions for the circuit breaker in genesis */ +typedef struct _cosmos_circuit_v1_GenesisAccountPermissions { + pb_callback_t address; + bool has_permissions; + cosmos_circuit_v1_Permissions permissions; +} cosmos_circuit_v1_GenesisAccountPermissions; + +/* GenesisState is the state that must be provided at genesis. */ +typedef struct _cosmos_circuit_v1_GenesisState { + pb_callback_t account_permissions; + pb_callback_t disabled_type_urls; +} cosmos_circuit_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_circuit_v1_Permissions_Level_MIN cosmos_circuit_v1_Permissions_Level_LEVEL_NONE_UNSPECIFIED +#define _cosmos_circuit_v1_Permissions_Level_MAX cosmos_circuit_v1_Permissions_Level_LEVEL_SUPER_ADMIN +#define _cosmos_circuit_v1_Permissions_Level_ARRAYSIZE \ + ((cosmos_circuit_v1_Permissions_Level)(cosmos_circuit_v1_Permissions_Level_LEVEL_SUPER_ADMIN + 1)) + +#define cosmos_circuit_v1_Permissions_level_ENUMTYPE cosmos_circuit_v1_Permissions_Level + +/* Initializer values for message structs */ +#define cosmos_circuit_v1_Permissions_init_default \ + { \ + _cosmos_circuit_v1_Permissions_Level_MIN, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_GenesisAccountPermissions_init_default \ + { {{NULL}, NULL}, false, cosmos_circuit_v1_Permissions_init_default } +#define cosmos_circuit_v1_GenesisState_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_Permissions_init_zero \ + { \ + _cosmos_circuit_v1_Permissions_Level_MIN, { {NULL}, NULL } \ + } +#define cosmos_circuit_v1_GenesisAccountPermissions_init_zero \ + { {{NULL}, NULL}, false, cosmos_circuit_v1_Permissions_init_zero } +#define cosmos_circuit_v1_GenesisState_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_circuit_v1_Permissions_level_tag 1 +#define cosmos_circuit_v1_Permissions_limit_type_urls_tag 2 +#define cosmos_circuit_v1_GenesisAccountPermissions_address_tag 1 +#define cosmos_circuit_v1_GenesisAccountPermissions_permissions_tag 2 +#define cosmos_circuit_v1_GenesisState_account_permissions_tag 1 +#define cosmos_circuit_v1_GenesisState_disabled_type_urls_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_circuit_v1_Permissions_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, level, 1) \ + X(a, CALLBACK, REPEATED, STRING, limit_type_urls, 2) +#define cosmos_circuit_v1_Permissions_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_Permissions_DEFAULT NULL + +#define cosmos_circuit_v1_GenesisAccountPermissions_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, permissions, 2) +#define cosmos_circuit_v1_GenesisAccountPermissions_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_GenesisAccountPermissions_DEFAULT NULL +#define cosmos_circuit_v1_GenesisAccountPermissions_permissions_MSGTYPE cosmos_circuit_v1_Permissions + +#define cosmos_circuit_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, account_permissions, 1) \ + X(a, CALLBACK, REPEATED, STRING, disabled_type_urls, 2) +#define cosmos_circuit_v1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_circuit_v1_GenesisState_DEFAULT NULL +#define cosmos_circuit_v1_GenesisState_account_permissions_MSGTYPE cosmos_circuit_v1_GenesisAccountPermissions + +extern const pb_msgdesc_t cosmos_circuit_v1_Permissions_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_GenesisAccountPermissions_msg; +extern const pb_msgdesc_t cosmos_circuit_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_circuit_v1_Permissions_fields &cosmos_circuit_v1_Permissions_msg +#define cosmos_circuit_v1_GenesisAccountPermissions_fields &cosmos_circuit_v1_GenesisAccountPermissions_msg +#define cosmos_circuit_v1_GenesisState_fields &cosmos_circuit_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_circuit_v1_Permissions_size depends on runtime parameters */ +/* cosmos_circuit_v1_GenesisAccountPermissions_size depends on runtime parameters */ +/* cosmos_circuit_v1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/consensus/module/v1/module.pb.c b/app/src/protobuf/cosmos/consensus/module/v1/module.pb.c new file mode 100644 index 0000000..7535a5b --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/consensus/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_consensus_module_v1_Module, cosmos_consensus_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/consensus/module/v1/module.pb.h b/app/src/protobuf/cosmos/consensus/module/v1/module.pb.h new file mode 100644 index 0000000..d00368b --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/module/v1/module.pb.h @@ -0,0 +1,55 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CONSENSUS_MODULE_V1_COSMOS_CONSENSUS_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_CONSENSUS_MODULE_V1_COSMOS_CONSENSUS_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the consensus module. */ +typedef struct _cosmos_consensus_module_v1_Module { + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_consensus_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_consensus_module_v1_Module_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_consensus_module_v1_Module_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_consensus_module_v1_Module_authority_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_consensus_module_v1_Module_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, authority, 1) +#define cosmos_consensus_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_consensus_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_consensus_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_consensus_module_v1_Module_fields &cosmos_consensus_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_consensus_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/consensus/v1/query.pb.c b/app/src/protobuf/cosmos/consensus/v1/query.pb.c new file mode 100644 index 0000000..0f966db --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/v1/query.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/consensus/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_consensus_v1_QueryParamsRequest, cosmos_consensus_v1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_consensus_v1_QueryParamsResponse, cosmos_consensus_v1_QueryParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/consensus/v1/query.pb.h b/app/src/protobuf/cosmos/consensus/v1/query.pb.h new file mode 100644 index 0000000..e786423 --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/v1/query.pb.h @@ -0,0 +1,76 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CONSENSUS_V1_COSMOS_CONSENSUS_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_CONSENSUS_V1_COSMOS_CONSENSUS_V1_QUERY_PB_H_INCLUDED +#include + +#include "google/api/annotations.pb.h" +#include "tendermint/types/params.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest defines the request type for querying x/consensus parameters. */ +typedef struct _cosmos_consensus_v1_QueryParamsRequest { + char dummy_field; +} cosmos_consensus_v1_QueryParamsRequest; + +/* QueryParamsResponse defines the response type for querying x/consensus parameters. */ +typedef struct _cosmos_consensus_v1_QueryParamsResponse { + /* params are the tendermint consensus params stored in the consensus module. + Please note that `params.version` is not populated in this response, it is + tracked separately in the x/upgrade module. */ + bool has_params; + tendermint_types_ConsensusParams params; +} cosmos_consensus_v1_QueryParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_consensus_v1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_consensus_v1_QueryParamsResponse_init_default \ + { false, tendermint_types_ConsensusParams_init_default } +#define cosmos_consensus_v1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_consensus_v1_QueryParamsResponse_init_zero \ + { false, tendermint_types_ConsensusParams_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_consensus_v1_QueryParamsResponse_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_consensus_v1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_consensus_v1_QueryParamsRequest_CALLBACK NULL +#define cosmos_consensus_v1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_consensus_v1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_consensus_v1_QueryParamsResponse_CALLBACK NULL +#define cosmos_consensus_v1_QueryParamsResponse_DEFAULT NULL +#define cosmos_consensus_v1_QueryParamsResponse_params_MSGTYPE tendermint_types_ConsensusParams + +extern const pb_msgdesc_t cosmos_consensus_v1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_consensus_v1_QueryParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_consensus_v1_QueryParamsRequest_fields &cosmos_consensus_v1_QueryParamsRequest_msg +#define cosmos_consensus_v1_QueryParamsResponse_fields &cosmos_consensus_v1_QueryParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +#define cosmos_consensus_v1_QueryParamsRequest_size 0 +#if defined(tendermint_types_ConsensusParams_size) +#define COSMOS_CONSENSUS_V1_COSMOS_CONSENSUS_V1_QUERY_PB_H_MAX_SIZE cosmos_consensus_v1_QueryParamsResponse_size +#define cosmos_consensus_v1_QueryParamsResponse_size (6 + tendermint_types_ConsensusParams_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/consensus/v1/tx.pb.c b/app/src/protobuf/cosmos/consensus/v1/tx.pb.c new file mode 100644 index 0000000..b364d9f --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/v1/tx.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/consensus/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_consensus_v1_MsgUpdateParams, cosmos_consensus_v1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_consensus_v1_MsgUpdateParamsResponse, cosmos_consensus_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/consensus/v1/tx.pb.h b/app/src/protobuf/cosmos/consensus/v1/tx.pb.h new file mode 100644 index 0000000..565a669 --- /dev/null +++ b/app/src/protobuf/cosmos/consensus/v1/tx.pb.h @@ -0,0 +1,99 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CONSENSUS_V1_COSMOS_CONSENSUS_V1_TX_PB_H_INCLUDED +#define PB_COSMOS_CONSENSUS_V1_COSMOS_CONSENSUS_V1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "tendermint/types/params.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgUpdateParams is the Msg/UpdateParams request type. */ +typedef struct _cosmos_consensus_v1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/consensus parameters to update. + VersionsParams is not included in this Msg because it is tracked + separarately in x/upgrade. + + NOTE: All parameters must be supplied. */ + bool has_block; + tendermint_types_BlockParams block; + bool has_evidence; + tendermint_types_EvidenceParams evidence; + bool has_validator; + tendermint_types_ValidatorParams validator; +} cosmos_consensus_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. */ +typedef struct _cosmos_consensus_v1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_consensus_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_consensus_v1_MsgUpdateParams_init_default \ + { \ + {{NULL}, NULL}, false, tendermint_types_BlockParams_init_default, false, \ + tendermint_types_EvidenceParams_init_default, false, tendermint_types_ValidatorParams_init_default \ + } +#define cosmos_consensus_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_consensus_v1_MsgUpdateParams_init_zero \ + { \ + {{NULL}, NULL}, false, tendermint_types_BlockParams_init_zero, false, tendermint_types_EvidenceParams_init_zero, \ + false, tendermint_types_ValidatorParams_init_zero \ + } +#define cosmos_consensus_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_consensus_v1_MsgUpdateParams_authority_tag 1 +#define cosmos_consensus_v1_MsgUpdateParams_block_tag 2 +#define cosmos_consensus_v1_MsgUpdateParams_evidence_tag 3 +#define cosmos_consensus_v1_MsgUpdateParams_validator_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_consensus_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, evidence, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 4) +#define cosmos_consensus_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_consensus_v1_MsgUpdateParams_DEFAULT NULL +#define cosmos_consensus_v1_MsgUpdateParams_block_MSGTYPE tendermint_types_BlockParams +#define cosmos_consensus_v1_MsgUpdateParams_evidence_MSGTYPE tendermint_types_EvidenceParams +#define cosmos_consensus_v1_MsgUpdateParams_validator_MSGTYPE tendermint_types_ValidatorParams + +#define cosmos_consensus_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_consensus_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_consensus_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_consensus_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_consensus_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_consensus_v1_MsgUpdateParams_fields &cosmos_consensus_v1_MsgUpdateParams_msg +#define cosmos_consensus_v1_MsgUpdateParamsResponse_fields &cosmos_consensus_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_consensus_v1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_consensus_v1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crisis/module/v1/module.pb.c b/app/src/protobuf/cosmos/crisis/module/v1/module.pb.c new file mode 100644 index 0000000..56f6054 --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crisis/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crisis_module_v1_Module, cosmos_crisis_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/crisis/module/v1/module.pb.h b/app/src/protobuf/cosmos/crisis/module/v1/module.pb.h new file mode 100644 index 0000000..c702d89 --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/module/v1/module.pb.h @@ -0,0 +1,60 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRISIS_MODULE_V1_COSMOS_CRISIS_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_CRISIS_MODULE_V1_COSMOS_CRISIS_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the crisis module. */ +typedef struct _cosmos_crisis_module_v1_Module { + /* fee_collector_name is the name of the FeeCollector ModuleAccount. */ + pb_callback_t fee_collector_name; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_crisis_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crisis_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_crisis_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crisis_module_v1_Module_fee_collector_name_tag 1 +#define cosmos_crisis_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crisis_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fee_collector_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_crisis_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_crisis_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crisis_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crisis_module_v1_Module_fields &cosmos_crisis_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crisis_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.c new file mode 100644 index 0000000..b2f0ced --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crisis/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crisis_v1beta1_GenesisState, cosmos_crisis_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.h new file mode 100644 index 0000000..c84b779 --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/v1beta1/genesis.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRISIS_V1BETA1_COSMOS_CRISIS_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_CRISIS_V1BETA1_COSMOS_CRISIS_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the crisis module's genesis state. */ +typedef struct _cosmos_crisis_v1beta1_GenesisState { + /* constant_fee is the fee used to verify the invariant in the crisis + module. */ + bool has_constant_fee; + cosmos_base_v1beta1_Coin constant_fee; +} cosmos_crisis_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crisis_v1beta1_GenesisState_init_default \ + { false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_crisis_v1beta1_GenesisState_init_zero \ + { false, cosmos_base_v1beta1_Coin_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crisis_v1beta1_GenesisState_constant_fee_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crisis_v1beta1_GenesisState_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, constant_fee, 3) +#define cosmos_crisis_v1beta1_GenesisState_CALLBACK NULL +#define cosmos_crisis_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_crisis_v1beta1_GenesisState_constant_fee_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t cosmos_crisis_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crisis_v1beta1_GenesisState_fields &cosmos_crisis_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(cosmos_base_v1beta1_Coin_size) +#define COSMOS_CRISIS_V1BETA1_COSMOS_CRISIS_V1BETA1_GENESIS_PB_H_MAX_SIZE cosmos_crisis_v1beta1_GenesisState_size +#define cosmos_crisis_v1beta1_GenesisState_size (6 + cosmos_base_v1beta1_Coin_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.c new file mode 100644 index 0000000..be5c290 --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crisis/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crisis_v1beta1_MsgVerifyInvariant, cosmos_crisis_v1beta1_MsgVerifyInvariant, AUTO) + +PB_BIND(cosmos_crisis_v1beta1_MsgVerifyInvariantResponse, cosmos_crisis_v1beta1_MsgVerifyInvariantResponse, AUTO) + +PB_BIND(cosmos_crisis_v1beta1_MsgUpdateParams, cosmos_crisis_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_crisis_v1beta1_MsgUpdateParamsResponse, cosmos_crisis_v1beta1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.h new file mode 100644 index 0000000..4c6f6c8 --- /dev/null +++ b/app/src/protobuf/cosmos/crisis/v1beta1/tx.pb.h @@ -0,0 +1,132 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRISIS_V1BETA1_COSMOS_CRISIS_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_CRISIS_V1BETA1_COSMOS_CRISIS_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgVerifyInvariant represents a message to verify a particular invariance. */ +typedef struct _cosmos_crisis_v1beta1_MsgVerifyInvariant { + /* sender is the account address of private key to send coins to fee collector account. */ + pb_callback_t sender; + /* name of the invariant module. */ + pb_callback_t invariant_module_name; + /* invariant_route is the msg's invariant route. */ + pb_callback_t invariant_route; +} cosmos_crisis_v1beta1_MsgVerifyInvariant; + +/* MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. */ +typedef struct _cosmos_crisis_v1beta1_MsgVerifyInvariantResponse { + char dummy_field; +} cosmos_crisis_v1beta1_MsgVerifyInvariantResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_crisis_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* constant_fee defines the x/crisis parameter. */ + bool has_constant_fee; + cosmos_base_v1beta1_Coin constant_fee; +} cosmos_crisis_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_crisis_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_crisis_v1beta1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_init_default \ + { 0 } +#define cosmos_crisis_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_init_zero \ + { 0 } +#define cosmos_crisis_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_sender_tag 1 +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_invariant_module_name_tag 2 +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_invariant_route_tag 3 +#define cosmos_crisis_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_crisis_v1beta1_MsgUpdateParams_constant_fee_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 1) \ + X(a, CALLBACK, SINGULAR, STRING, invariant_module_name, 2) \ + X(a, CALLBACK, SINGULAR, STRING, invariant_route, 3) +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_CALLBACK pb_default_field_callback +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_DEFAULT NULL + +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_FIELDLIST(X, a) + +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_CALLBACK NULL +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_DEFAULT NULL + +#define cosmos_crisis_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, constant_fee, 2) +#define cosmos_crisis_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_crisis_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_crisis_v1beta1_MsgUpdateParams_constant_fee_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crisis_v1beta1_MsgVerifyInvariant_msg; +extern const pb_msgdesc_t cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_msg; +extern const pb_msgdesc_t cosmos_crisis_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_crisis_v1beta1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crisis_v1beta1_MsgVerifyInvariant_fields &cosmos_crisis_v1beta1_MsgVerifyInvariant_msg +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_fields &cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_msg +#define cosmos_crisis_v1beta1_MsgUpdateParams_fields &cosmos_crisis_v1beta1_MsgUpdateParams_msg +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_fields &cosmos_crisis_v1beta1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crisis_v1beta1_MsgVerifyInvariant_size depends on runtime parameters */ +/* cosmos_crisis_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_crisis_v1beta1_MsgUpdateParamsResponse_size 0 +#define cosmos_crisis_v1beta1_MsgVerifyInvariantResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.c b/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.c new file mode 100644 index 0000000..a33c743 --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/ed25519/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_ed25519_PubKey, cosmos_crypto_ed25519_PubKey, AUTO) + +PB_BIND(cosmos_crypto_ed25519_PrivKey, cosmos_crypto_ed25519_PrivKey, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.h b/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.h new file mode 100644 index 0000000..69bb636 --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/ed25519/keys.pb.h @@ -0,0 +1,81 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_ED25519_COSMOS_CRYPTO_ED25519_KEYS_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_ED25519_COSMOS_CRYPTO_ED25519_KEYS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PubKey is an ed25519 public key for handling Tendermint keys in SDK. + It's needed for Any serialization and SDK compatibility. + It must not be used in a non Tendermint key context because it doesn't implement + ADR-28. Nevertheless, you will like to use ed25519 in app user level + then you must create a new proto message and follow ADR-28 for Address construction. */ +typedef struct _cosmos_crypto_ed25519_PubKey { + pb_callback_t key; +} cosmos_crypto_ed25519_PubKey; + +/* PrivKey defines a ed25519 private key. + NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. */ +typedef struct _cosmos_crypto_ed25519_PrivKey { + pb_callback_t key; +} cosmos_crypto_ed25519_PrivKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_ed25519_PubKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_ed25519_PrivKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_ed25519_PubKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_ed25519_PrivKey_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_ed25519_PubKey_key_tag 1 +#define cosmos_crypto_ed25519_PrivKey_key_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_ed25519_PubKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key, 1) +#define cosmos_crypto_ed25519_PubKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_ed25519_PubKey_DEFAULT NULL + +#define cosmos_crypto_ed25519_PrivKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key, 1) +#define cosmos_crypto_ed25519_PrivKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_ed25519_PrivKey_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_ed25519_PubKey_msg; +extern const pb_msgdesc_t cosmos_crypto_ed25519_PrivKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_ed25519_PubKey_fields &cosmos_crypto_ed25519_PubKey_msg +#define cosmos_crypto_ed25519_PrivKey_fields &cosmos_crypto_ed25519_PrivKey_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crypto_ed25519_PubKey_size depends on runtime parameters */ +/* cosmos_crypto_ed25519_PrivKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.c b/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.c new file mode 100644 index 0000000..c5e8b6b --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/hd/v1/hd.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_hd_v1_BIP44Params, cosmos_crypto_hd_v1_BIP44Params, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.h b/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.h new file mode 100644 index 0000000..d3ac76c --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/hd/v1/hd.pb.h @@ -0,0 +1,71 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_HD_V1_COSMOS_CRYPTO_HD_V1_HD_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_HD_V1_COSMOS_CRYPTO_HD_V1_HD_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* BIP44Params is used as path field in ledger item in Record. */ +typedef struct _cosmos_crypto_hd_v1_BIP44Params { + /* purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation */ + uint32_t purpose; + /* coin_type is a constant that improves privacy */ + uint32_t coin_type; + /* account splits the key space into independent user identities */ + uint32_t account; + /* change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal + chain. */ + bool change; + /* address_index is used as child index in BIP32 derivation */ + uint32_t address_index; +} cosmos_crypto_hd_v1_BIP44Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_hd_v1_BIP44Params_init_default \ + { 0, 0, 0, 0, 0 } +#define cosmos_crypto_hd_v1_BIP44Params_init_zero \ + { 0, 0, 0, 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_hd_v1_BIP44Params_purpose_tag 1 +#define cosmos_crypto_hd_v1_BIP44Params_coin_type_tag 2 +#define cosmos_crypto_hd_v1_BIP44Params_account_tag 3 +#define cosmos_crypto_hd_v1_BIP44Params_change_tag 4 +#define cosmos_crypto_hd_v1_BIP44Params_address_index_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_hd_v1_BIP44Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, purpose, 1) \ + X(a, STATIC, SINGULAR, UINT32, coin_type, 2) \ + X(a, STATIC, SINGULAR, UINT32, account, 3) \ + X(a, STATIC, SINGULAR, BOOL, change, 4) \ + X(a, STATIC, SINGULAR, UINT32, address_index, 5) +#define cosmos_crypto_hd_v1_BIP44Params_CALLBACK NULL +#define cosmos_crypto_hd_v1_BIP44Params_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_hd_v1_BIP44Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_hd_v1_BIP44Params_fields &cosmos_crypto_hd_v1_BIP44Params_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_CRYPTO_HD_V1_COSMOS_CRYPTO_HD_V1_HD_PB_H_MAX_SIZE cosmos_crypto_hd_v1_BIP44Params_size +#define cosmos_crypto_hd_v1_BIP44Params_size 26 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.c b/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.c new file mode 100644 index 0000000..6be574c --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/keyring/v1/record.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_keyring_v1_Record, cosmos_crypto_keyring_v1_Record, AUTO) + +PB_BIND(cosmos_crypto_keyring_v1_Record_Local, cosmos_crypto_keyring_v1_Record_Local, AUTO) + +PB_BIND(cosmos_crypto_keyring_v1_Record_Ledger, cosmos_crypto_keyring_v1_Record_Ledger, AUTO) + +PB_BIND(cosmos_crypto_keyring_v1_Record_Multi, cosmos_crypto_keyring_v1_Record_Multi, AUTO) + +PB_BIND(cosmos_crypto_keyring_v1_Record_Offline, cosmos_crypto_keyring_v1_Record_Offline, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.h b/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.h new file mode 100644 index 0000000..48ddf9c --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/keyring/v1/record.pb.h @@ -0,0 +1,169 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_KEYRING_V1_COSMOS_CRYPTO_KEYRING_V1_RECORD_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_KEYRING_V1_COSMOS_CRYPTO_KEYRING_V1_RECORD_PB_H_INCLUDED +#include + +#include "cosmos/crypto/hd/v1/hd.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Item is a keyring item stored in a keyring backend. + Local item */ +typedef struct _cosmos_crypto_keyring_v1_Record_Local { + bool has_priv_key; + google_protobuf_Any priv_key; +} cosmos_crypto_keyring_v1_Record_Local; + +/* Ledger item */ +typedef struct _cosmos_crypto_keyring_v1_Record_Ledger { + bool has_path; + cosmos_crypto_hd_v1_BIP44Params path; +} cosmos_crypto_keyring_v1_Record_Ledger; + +/* Multi item */ +typedef struct _cosmos_crypto_keyring_v1_Record_Multi { + char dummy_field; +} cosmos_crypto_keyring_v1_Record_Multi; + +/* Offline item */ +typedef struct _cosmos_crypto_keyring_v1_Record_Offline { + char dummy_field; +} cosmos_crypto_keyring_v1_Record_Offline; + +/* Record is used for representing a key in the keyring. */ +typedef struct _cosmos_crypto_keyring_v1_Record { + /* name represents a name of Record */ + pb_callback_t name; + /* pub_key represents a public key in any format */ + bool has_pub_key; + google_protobuf_Any pub_key; + pb_size_t which_item; + union { + /* local stores the private key locally. */ + cosmos_crypto_keyring_v1_Record_Local local; + /* ledger stores the information about a Ledger key. */ + cosmos_crypto_keyring_v1_Record_Ledger ledger; + /* Multi does not store any other information. */ + cosmos_crypto_keyring_v1_Record_Multi multi; + /* Offline does not store any other information. */ + cosmos_crypto_keyring_v1_Record_Offline offline; + } item; +} cosmos_crypto_keyring_v1_Record; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_keyring_v1_Record_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, 0, { cosmos_crypto_keyring_v1_Record_Local_init_default } \ + } +#define cosmos_crypto_keyring_v1_Record_Local_init_default \ + { false, google_protobuf_Any_init_default } +#define cosmos_crypto_keyring_v1_Record_Ledger_init_default \ + { false, cosmos_crypto_hd_v1_BIP44Params_init_default } +#define cosmos_crypto_keyring_v1_Record_Multi_init_default \ + { 0 } +#define cosmos_crypto_keyring_v1_Record_Offline_init_default \ + { 0 } +#define cosmos_crypto_keyring_v1_Record_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, 0, { cosmos_crypto_keyring_v1_Record_Local_init_zero } \ + } +#define cosmos_crypto_keyring_v1_Record_Local_init_zero \ + { false, google_protobuf_Any_init_zero } +#define cosmos_crypto_keyring_v1_Record_Ledger_init_zero \ + { false, cosmos_crypto_hd_v1_BIP44Params_init_zero } +#define cosmos_crypto_keyring_v1_Record_Multi_init_zero \ + { 0 } +#define cosmos_crypto_keyring_v1_Record_Offline_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_keyring_v1_Record_Local_priv_key_tag 1 +#define cosmos_crypto_keyring_v1_Record_Ledger_path_tag 1 +#define cosmos_crypto_keyring_v1_Record_name_tag 1 +#define cosmos_crypto_keyring_v1_Record_pub_key_tag 2 +#define cosmos_crypto_keyring_v1_Record_local_tag 3 +#define cosmos_crypto_keyring_v1_Record_ledger_tag 4 +#define cosmos_crypto_keyring_v1_Record_multi_tag 5 +#define cosmos_crypto_keyring_v1_Record_offline_tag 6 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_keyring_v1_Record_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 2) \ + X(a, STATIC, ONEOF, MESSAGE, (item, local, item.local), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (item, ledger, item.ledger), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (item, multi, item.multi), 5) \ + X(a, STATIC, ONEOF, MESSAGE, (item, offline, item.offline), 6) +#define cosmos_crypto_keyring_v1_Record_CALLBACK pb_default_field_callback +#define cosmos_crypto_keyring_v1_Record_DEFAULT NULL +#define cosmos_crypto_keyring_v1_Record_pub_key_MSGTYPE google_protobuf_Any +#define cosmos_crypto_keyring_v1_Record_item_local_MSGTYPE cosmos_crypto_keyring_v1_Record_Local +#define cosmos_crypto_keyring_v1_Record_item_ledger_MSGTYPE cosmos_crypto_keyring_v1_Record_Ledger +#define cosmos_crypto_keyring_v1_Record_item_multi_MSGTYPE cosmos_crypto_keyring_v1_Record_Multi +#define cosmos_crypto_keyring_v1_Record_item_offline_MSGTYPE cosmos_crypto_keyring_v1_Record_Offline + +#define cosmos_crypto_keyring_v1_Record_Local_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, priv_key, 1) +#define cosmos_crypto_keyring_v1_Record_Local_CALLBACK NULL +#define cosmos_crypto_keyring_v1_Record_Local_DEFAULT NULL +#define cosmos_crypto_keyring_v1_Record_Local_priv_key_MSGTYPE google_protobuf_Any + +#define cosmos_crypto_keyring_v1_Record_Ledger_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, path, 1) +#define cosmos_crypto_keyring_v1_Record_Ledger_CALLBACK NULL +#define cosmos_crypto_keyring_v1_Record_Ledger_DEFAULT NULL +#define cosmos_crypto_keyring_v1_Record_Ledger_path_MSGTYPE cosmos_crypto_hd_v1_BIP44Params + +#define cosmos_crypto_keyring_v1_Record_Multi_FIELDLIST(X, a) + +#define cosmos_crypto_keyring_v1_Record_Multi_CALLBACK NULL +#define cosmos_crypto_keyring_v1_Record_Multi_DEFAULT NULL + +#define cosmos_crypto_keyring_v1_Record_Offline_FIELDLIST(X, a) + +#define cosmos_crypto_keyring_v1_Record_Offline_CALLBACK NULL +#define cosmos_crypto_keyring_v1_Record_Offline_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_keyring_v1_Record_msg; +extern const pb_msgdesc_t cosmos_crypto_keyring_v1_Record_Local_msg; +extern const pb_msgdesc_t cosmos_crypto_keyring_v1_Record_Ledger_msg; +extern const pb_msgdesc_t cosmos_crypto_keyring_v1_Record_Multi_msg; +extern const pb_msgdesc_t cosmos_crypto_keyring_v1_Record_Offline_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_keyring_v1_Record_fields &cosmos_crypto_keyring_v1_Record_msg +#define cosmos_crypto_keyring_v1_Record_Local_fields &cosmos_crypto_keyring_v1_Record_Local_msg +#define cosmos_crypto_keyring_v1_Record_Ledger_fields &cosmos_crypto_keyring_v1_Record_Ledger_msg +#define cosmos_crypto_keyring_v1_Record_Multi_fields &cosmos_crypto_keyring_v1_Record_Multi_msg +#define cosmos_crypto_keyring_v1_Record_Offline_fields &cosmos_crypto_keyring_v1_Record_Offline_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(google_protobuf_Any_size) +union cosmos_crypto_keyring_v1_Record_item_size_union { + char f3[(12 + google_protobuf_Any_size)]; + char f0[30]; +}; +#endif +/* cosmos_crypto_keyring_v1_Record_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define cosmos_crypto_keyring_v1_Record_Local_size (6 + google_protobuf_Any_size) +#endif +#define COSMOS_CRYPTO_KEYRING_V1_COSMOS_CRYPTO_KEYRING_V1_RECORD_PB_H_MAX_SIZE cosmos_crypto_keyring_v1_Record_Ledger_size +#define cosmos_crypto_keyring_v1_Record_Ledger_size 28 +#define cosmos_crypto_keyring_v1_Record_Multi_size 0 +#define cosmos_crypto_keyring_v1_Record_Offline_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/multisig/keys.pb.c b/app/src/protobuf/cosmos/crypto/multisig/keys.pb.c new file mode 100644 index 0000000..981883b --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/multisig/keys.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/multisig/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_multisig_LegacyAminoPubKey, cosmos_crypto_multisig_LegacyAminoPubKey, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/multisig/keys.pb.h b/app/src/protobuf/cosmos/crypto/multisig/keys.pb.h new file mode 100644 index 0000000..470e70a --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/multisig/keys.pb.h @@ -0,0 +1,63 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_MULTISIG_COSMOS_CRYPTO_MULTISIG_KEYS_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_MULTISIG_COSMOS_CRYPTO_MULTISIG_KEYS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* LegacyAminoPubKey specifies a public key type + which nests multiple public keys and a threshold, + it uses legacy amino address rules. */ +typedef struct _cosmos_crypto_multisig_LegacyAminoPubKey { + uint32_t threshold; + pb_callback_t public_keys; +} cosmos_crypto_multisig_LegacyAminoPubKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_multisig_LegacyAminoPubKey_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_crypto_multisig_LegacyAminoPubKey_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_multisig_LegacyAminoPubKey_threshold_tag 1 +#define cosmos_crypto_multisig_LegacyAminoPubKey_public_keys_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_multisig_LegacyAminoPubKey_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, threshold, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, public_keys, 2) +#define cosmos_crypto_multisig_LegacyAminoPubKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_multisig_LegacyAminoPubKey_DEFAULT NULL +#define cosmos_crypto_multisig_LegacyAminoPubKey_public_keys_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t cosmos_crypto_multisig_LegacyAminoPubKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_multisig_LegacyAminoPubKey_fields &cosmos_crypto_multisig_LegacyAminoPubKey_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crypto_multisig_LegacyAminoPubKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.c b/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.c new file mode 100644 index 0000000..54c511f --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/multisig/v1beta1/multisig.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_multisig_v1beta1_MultiSignature, cosmos_crypto_multisig_v1beta1_MultiSignature, AUTO) + +PB_BIND(cosmos_crypto_multisig_v1beta1_CompactBitArray, cosmos_crypto_multisig_v1beta1_CompactBitArray, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.h b/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.h new file mode 100644 index 0000000..88eb850 --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/multisig/v1beta1/multisig.pb.h @@ -0,0 +1,84 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_MULTISIG_V1BETA1_COSMOS_CRYPTO_MULTISIG_V1BETA1_MULTISIG_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_MULTISIG_V1BETA1_COSMOS_CRYPTO_MULTISIG_V1BETA1_MULTISIG_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey. + See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers + signed and with which modes. */ +typedef struct _cosmos_crypto_multisig_v1beta1_MultiSignature { + pb_callback_t signatures; +} cosmos_crypto_multisig_v1beta1_MultiSignature; + +/* CompactBitArray is an implementation of a space efficient bit array. + This is used to ensure that the encoded data takes up a minimal amount of + space after proto encoding. + This is not thread safe, and is not intended for concurrent usage. */ +typedef struct _cosmos_crypto_multisig_v1beta1_CompactBitArray { + uint32_t extra_bits_stored; + pb_callback_t elems; +} cosmos_crypto_multisig_v1beta1_CompactBitArray; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_multisig_v1beta1_MultiSignature_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_crypto_multisig_v1beta1_MultiSignature_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_multisig_v1beta1_MultiSignature_signatures_tag 1 +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_extra_bits_stored_tag 1 +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_elems_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_multisig_v1beta1_MultiSignature_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, signatures, 1) +#define cosmos_crypto_multisig_v1beta1_MultiSignature_CALLBACK pb_default_field_callback +#define cosmos_crypto_multisig_v1beta1_MultiSignature_DEFAULT NULL + +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, extra_bits_stored, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, elems, 2) +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_CALLBACK pb_default_field_callback +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_multisig_v1beta1_MultiSignature_msg; +extern const pb_msgdesc_t cosmos_crypto_multisig_v1beta1_CompactBitArray_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_multisig_v1beta1_MultiSignature_fields &cosmos_crypto_multisig_v1beta1_MultiSignature_msg +#define cosmos_crypto_multisig_v1beta1_CompactBitArray_fields &cosmos_crypto_multisig_v1beta1_CompactBitArray_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crypto_multisig_v1beta1_MultiSignature_size depends on runtime parameters */ +/* cosmos_crypto_multisig_v1beta1_CompactBitArray_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.c b/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.c new file mode 100644 index 0000000..812e670 --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/secp256k1/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_secp256k1_PubKey, cosmos_crypto_secp256k1_PubKey, AUTO) + +PB_BIND(cosmos_crypto_secp256k1_PrivKey, cosmos_crypto_secp256k1_PrivKey, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.h b/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.h new file mode 100644 index 0000000..e1c194d --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/secp256k1/keys.pb.h @@ -0,0 +1,80 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_SECP256K1_COSMOS_CRYPTO_SECP256K1_KEYS_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_SECP256K1_COSMOS_CRYPTO_SECP256K1_KEYS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PubKey defines a secp256k1 public key + Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte + if the y-coordinate is the lexicographically largest of the two associated with + the x-coordinate. Otherwise the first byte is a 0x03. + This prefix is followed with the x-coordinate. */ +typedef struct _cosmos_crypto_secp256k1_PubKey { + pb_callback_t key; +} cosmos_crypto_secp256k1_PubKey; + +/* PrivKey defines a secp256k1 private key. */ +typedef struct _cosmos_crypto_secp256k1_PrivKey { + pb_callback_t key; +} cosmos_crypto_secp256k1_PrivKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_secp256k1_PubKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256k1_PrivKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256k1_PubKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256k1_PrivKey_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_secp256k1_PubKey_key_tag 1 +#define cosmos_crypto_secp256k1_PrivKey_key_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_secp256k1_PubKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key, 1) +#define cosmos_crypto_secp256k1_PubKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_secp256k1_PubKey_DEFAULT NULL + +#define cosmos_crypto_secp256k1_PrivKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key, 1) +#define cosmos_crypto_secp256k1_PrivKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_secp256k1_PrivKey_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_secp256k1_PubKey_msg; +extern const pb_msgdesc_t cosmos_crypto_secp256k1_PrivKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_secp256k1_PubKey_fields &cosmos_crypto_secp256k1_PubKey_msg +#define cosmos_crypto_secp256k1_PrivKey_fields &cosmos_crypto_secp256k1_PrivKey_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crypto_secp256k1_PubKey_size depends on runtime parameters */ +/* cosmos_crypto_secp256k1_PrivKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.c b/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.c new file mode 100644 index 0000000..cf0603c --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/crypto/secp256r1/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_crypto_secp256r1_PubKey, cosmos_crypto_secp256r1_PubKey, AUTO) + +PB_BIND(cosmos_crypto_secp256r1_PrivKey, cosmos_crypto_secp256r1_PrivKey, AUTO) diff --git a/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.h b/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.h new file mode 100644 index 0000000..428452e --- /dev/null +++ b/app/src/protobuf/cosmos/crypto/secp256r1/keys.pb.h @@ -0,0 +1,78 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_CRYPTO_SECP256R1_COSMOS_CRYPTO_SECP256R1_KEYS_PB_H_INCLUDED +#define PB_COSMOS_CRYPTO_SECP256R1_COSMOS_CRYPTO_SECP256R1_KEYS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PubKey defines a secp256r1 ECDSA public key. */ +typedef struct _cosmos_crypto_secp256r1_PubKey { + /* Point on secp256r1 curve in a compressed representation as specified in section + 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998 */ + pb_callback_t key; +} cosmos_crypto_secp256r1_PubKey; + +/* PrivKey defines a secp256r1 ECDSA private key. */ +typedef struct _cosmos_crypto_secp256r1_PrivKey { + /* secret number serialized using big-endian encoding */ + pb_callback_t secret; +} cosmos_crypto_secp256r1_PrivKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_crypto_secp256r1_PubKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256r1_PrivKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256r1_PubKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_crypto_secp256r1_PrivKey_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_crypto_secp256r1_PubKey_key_tag 1 +#define cosmos_crypto_secp256r1_PrivKey_secret_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_crypto_secp256r1_PubKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key, 1) +#define cosmos_crypto_secp256r1_PubKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_secp256r1_PubKey_DEFAULT NULL + +#define cosmos_crypto_secp256r1_PrivKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, secret, 1) +#define cosmos_crypto_secp256r1_PrivKey_CALLBACK pb_default_field_callback +#define cosmos_crypto_secp256r1_PrivKey_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_crypto_secp256r1_PubKey_msg; +extern const pb_msgdesc_t cosmos_crypto_secp256r1_PrivKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_crypto_secp256r1_PubKey_fields &cosmos_crypto_secp256r1_PubKey_msg +#define cosmos_crypto_secp256r1_PrivKey_fields &cosmos_crypto_secp256r1_PrivKey_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_crypto_secp256r1_PubKey_size depends on runtime parameters */ +/* cosmos_crypto_secp256r1_PrivKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/distribution/module/v1/module.pb.c b/app/src/protobuf/cosmos/distribution/module/v1/module.pb.c new file mode 100644 index 0000000..a9edd62 --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/distribution/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_distribution_module_v1_Module, cosmos_distribution_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/distribution/module/v1/module.pb.h b/app/src/protobuf/cosmos/distribution/module/v1/module.pb.h new file mode 100644 index 0000000..7f594c7 --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/module/v1/module.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_DISTRIBUTION_MODULE_V1_COSMOS_DISTRIBUTION_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_DISTRIBUTION_MODULE_V1_COSMOS_DISTRIBUTION_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the distribution module. */ +typedef struct _cosmos_distribution_module_v1_Module { + pb_callback_t fee_collector_name; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_distribution_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_distribution_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_distribution_module_v1_Module_fee_collector_name_tag 1 +#define cosmos_distribution_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_distribution_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fee_collector_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_distribution_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_distribution_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_distribution_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_distribution_module_v1_Module_fields &cosmos_distribution_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_distribution_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.c b/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.c new file mode 100644 index 0000000..e68adfe --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.c @@ -0,0 +1,34 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/distribution/v1beta1/distribution.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_distribution_v1beta1_Params, cosmos_distribution_v1beta1_Params, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorHistoricalRewards, cosmos_distribution_v1beta1_ValidatorHistoricalRewards, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorCurrentRewards, cosmos_distribution_v1beta1_ValidatorCurrentRewards, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorAccumulatedCommission, + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorOutstandingRewards, cosmos_distribution_v1beta1_ValidatorOutstandingRewards, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorSlashEvent, cosmos_distribution_v1beta1_ValidatorSlashEvent, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorSlashEvents, cosmos_distribution_v1beta1_ValidatorSlashEvents, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_FeePool, cosmos_distribution_v1beta1_FeePool, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_CommunityPoolSpendProposal, cosmos_distribution_v1beta1_CommunityPoolSpendProposal, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_DelegatorStartingInfo, cosmos_distribution_v1beta1_DelegatorStartingInfo, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_DelegationDelegatorReward, cosmos_distribution_v1beta1_DelegationDelegatorReward, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit, + cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit, AUTO) diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.h b/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.h new file mode 100644 index 0000000..66ffcea --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/distribution.pb.h @@ -0,0 +1,381 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_DISTRIBUTION_PB_H_INCLUDED +#define PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_DISTRIBUTION_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Params defines the set of params for the distribution module. */ +typedef struct _cosmos_distribution_v1beta1_Params { + pb_callback_t community_tax; + /* Deprecated: The base_proposer_reward field is deprecated and is no longer used + in the x/distribution module's reward mechanism. */ + pb_callback_t base_proposer_reward; + /* Deprecated: The bonus_proposer_reward field is deprecated and is no longer used + in the x/distribution module's reward mechanism. */ + pb_callback_t bonus_proposer_reward; + bool withdraw_addr_enabled; +} cosmos_distribution_v1beta1_Params; + +/* ValidatorHistoricalRewards represents historical rewards for a validator. + Height is implicit within the store key. + Cumulative reward ratio is the sum from the zeroeth period + until this period of rewards / tokens, per the spec. + The reference count indicates the number of objects + which might need to reference this historical entry at any point. + ReferenceCount = + number of outstanding delegations which ended the associated period (and + might need to read that record) + + number of slashes which ended the associated period (and might need to + read that record) + + one per validator for the zeroeth period, set on initialization */ +typedef struct _cosmos_distribution_v1beta1_ValidatorHistoricalRewards { + pb_callback_t cumulative_reward_ratio; + uint32_t reference_count; +} cosmos_distribution_v1beta1_ValidatorHistoricalRewards; + +/* ValidatorCurrentRewards represents current rewards and current + period for a validator kept as a running counter and incremented + each block as long as the validator's tokens remain constant. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorCurrentRewards { + pb_callback_t rewards; + uint64_t period; +} cosmos_distribution_v1beta1_ValidatorCurrentRewards; + +/* ValidatorAccumulatedCommission represents accumulated commission + for a validator kept as a running counter, can be withdrawn at any time. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorAccumulatedCommission { + pb_callback_t commission; +} cosmos_distribution_v1beta1_ValidatorAccumulatedCommission; + +/* ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards + for a validator inexpensive to track, allows simple sanity checks. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorOutstandingRewards { + pb_callback_t rewards; +} cosmos_distribution_v1beta1_ValidatorOutstandingRewards; + +/* ValidatorSlashEvent represents a validator slash event. + Height is implicit within the store key. + This is needed to calculate appropriate amount of staking tokens + for delegations which are withdrawn after a slash has occurred. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorSlashEvent { + uint64_t validator_period; + pb_callback_t fraction; +} cosmos_distribution_v1beta1_ValidatorSlashEvent; + +/* ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorSlashEvents { + pb_callback_t validator_slash_events; +} cosmos_distribution_v1beta1_ValidatorSlashEvents; + +/* FeePool is the global fee pool for distribution. */ +typedef struct _cosmos_distribution_v1beta1_FeePool { + pb_callback_t community_pool; +} cosmos_distribution_v1beta1_FeePool; + +/* CommunityPoolSpendProposal details a proposal for use of community funds, + together with how many coins are proposed to be spent, and to which + recipient account. + + Deprecated: Do not use. As of the Cosmos SDK release v0.47.x, there is no + longer a need for an explicit CommunityPoolSpendProposal. To spend community + pool funds, a simple MsgCommunityPoolSpend can be invoked from the x/gov + module via a v1 governance proposal. */ +typedef struct _cosmos_distribution_v1beta1_CommunityPoolSpendProposal { + pb_callback_t title; + pb_callback_t description; + pb_callback_t recipient; + pb_callback_t amount; +} cosmos_distribution_v1beta1_CommunityPoolSpendProposal; + +/* DelegatorStartingInfo represents the starting info for a delegator reward + period. It tracks the previous validator period, the delegation's amount of + staking token, and the creation height (to check later on if any slashes have + occurred). NOTE: Even though validators are slashed to whole staking tokens, + the delegators within the validator may be left with less than a full token, + thus sdk.Dec is used. */ +typedef struct _cosmos_distribution_v1beta1_DelegatorStartingInfo { + uint64_t previous_period; + pb_callback_t stake; + uint64_t height; +} cosmos_distribution_v1beta1_DelegatorStartingInfo; + +/* DelegationDelegatorReward represents the properties + of a delegator's delegation reward. */ +typedef struct _cosmos_distribution_v1beta1_DelegationDelegatorReward { + pb_callback_t validator_address; + pb_callback_t reward; +} cosmos_distribution_v1beta1_DelegationDelegatorReward; + +/* CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal + with a deposit */ +typedef struct _cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit { + pb_callback_t title; + pb_callback_t description; + pb_callback_t recipient; + pb_callback_t amount; + pb_callback_t deposit; +} cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_distribution_v1beta1_Params_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_FeePool_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_init_default \ + { 0, {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_Params_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_FeePool_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_init_zero \ + { 0, {{NULL}, NULL}, 0 } +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_distribution_v1beta1_Params_community_tax_tag 1 +#define cosmos_distribution_v1beta1_Params_base_proposer_reward_tag 2 +#define cosmos_distribution_v1beta1_Params_bonus_proposer_reward_tag 3 +#define cosmos_distribution_v1beta1_Params_withdraw_addr_enabled_tag 4 +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_cumulative_reward_ratio_tag 1 +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_reference_count_tag 2 +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_rewards_tag 1 +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_period_tag 2 +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_commission_tag 1 +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_rewards_tag 1 +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_validator_period_tag 1 +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_fraction_tag 2 +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_validator_slash_events_tag 1 +#define cosmos_distribution_v1beta1_FeePool_community_pool_tag 1 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_title_tag 1 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_description_tag 2 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_recipient_tag 3 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_amount_tag 4 +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_previous_period_tag 1 +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_stake_tag 2 +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_height_tag 3 +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_validator_address_tag 1 +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_reward_tag 2 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_title_tag 1 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_description_tag 2 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_recipient_tag 3 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_amount_tag 4 +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_deposit_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_distribution_v1beta1_Params_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, community_tax, 1) \ + X(a, CALLBACK, SINGULAR, STRING, base_proposer_reward, 2) \ + X(a, CALLBACK, SINGULAR, STRING, bonus_proposer_reward, 3) \ + X(a, STATIC, SINGULAR, BOOL, withdraw_addr_enabled, 4) +#define cosmos_distribution_v1beta1_Params_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_Params_DEFAULT NULL + +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, cumulative_reward_ratio, 1) \ + X(a, STATIC, SINGULAR, UINT32, reference_count, 2) +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_cumulative_reward_ratio_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, rewards, 1) \ + X(a, STATIC, SINGULAR, UINT64, period, 2) +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_rewards_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, commission, 1) +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_commission_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, rewards, 1) +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_rewards_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, validator_period, 1) \ + X(a, CALLBACK, SINGULAR, STRING, fraction, 2) +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_DEFAULT NULL + +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_slash_events, 1) +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_validator_slash_events_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorSlashEvent + +#define cosmos_distribution_v1beta1_FeePool_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, community_pool, 1) +#define cosmos_distribution_v1beta1_FeePool_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_FeePool_DEFAULT NULL +#define cosmos_distribution_v1beta1_FeePool_community_pool_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, CALLBACK, SINGULAR, STRING, recipient, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 4) +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_DEFAULT NULL +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, previous_period, 1) \ + X(a, CALLBACK, SINGULAR, STRING, stake, 2) \ + X(a, STATIC, SINGULAR, UINT64, height, 3) +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_DEFAULT NULL + +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, reward, 2) +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_DEFAULT NULL +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_reward_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, CALLBACK, SINGULAR, STRING, recipient, 3) \ + X(a, CALLBACK, SINGULAR, STRING, amount, 4) \ + X(a, CALLBACK, SINGULAR, STRING, deposit, 5) +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_distribution_v1beta1_Params_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorHistoricalRewards_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorCurrentRewards_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorOutstandingRewards_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorSlashEvent_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorSlashEvents_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_FeePool_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_CommunityPoolSpendProposal_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_DelegatorStartingInfo_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_DelegationDelegatorReward_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_distribution_v1beta1_Params_fields &cosmos_distribution_v1beta1_Params_msg +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewards_fields \ + &cosmos_distribution_v1beta1_ValidatorHistoricalRewards_msg +#define cosmos_distribution_v1beta1_ValidatorCurrentRewards_fields &cosmos_distribution_v1beta1_ValidatorCurrentRewards_msg +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_fields \ + &cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_msg +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewards_fields \ + &cosmos_distribution_v1beta1_ValidatorOutstandingRewards_msg +#define cosmos_distribution_v1beta1_ValidatorSlashEvent_fields &cosmos_distribution_v1beta1_ValidatorSlashEvent_msg +#define cosmos_distribution_v1beta1_ValidatorSlashEvents_fields &cosmos_distribution_v1beta1_ValidatorSlashEvents_msg +#define cosmos_distribution_v1beta1_FeePool_fields &cosmos_distribution_v1beta1_FeePool_msg +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposal_fields \ + &cosmos_distribution_v1beta1_CommunityPoolSpendProposal_msg +#define cosmos_distribution_v1beta1_DelegatorStartingInfo_fields &cosmos_distribution_v1beta1_DelegatorStartingInfo_msg +#define cosmos_distribution_v1beta1_DelegationDelegatorReward_fields \ + &cosmos_distribution_v1beta1_DelegationDelegatorReward_msg +#define cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_fields \ + &cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_distribution_v1beta1_Params_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorHistoricalRewards_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorCurrentRewards_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorOutstandingRewards_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorSlashEvent_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorSlashEvents_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_FeePool_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_CommunityPoolSpendProposal_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_DelegatorStartingInfo_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_DelegationDelegatorReward_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_CommunityPoolSpendProposalWithDeposit_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.c new file mode 100644 index 0000000..8b5c223 --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.c @@ -0,0 +1,28 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/distribution/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_distribution_v1beta1_DelegatorWithdrawInfo, cosmos_distribution_v1beta1_DelegatorWithdrawInfo, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord, + cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord, + cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord, + cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord, cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_DelegatorStartingInfoRecord, cosmos_distribution_v1beta1_DelegatorStartingInfoRecord, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_ValidatorSlashEventRecord, cosmos_distribution_v1beta1_ValidatorSlashEventRecord, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_GenesisState, cosmos_distribution_v1beta1_GenesisState, 2) diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.h new file mode 100644 index 0000000..1de94d1 --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/genesis.pb.h @@ -0,0 +1,333 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/distribution/v1beta1/distribution.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* DelegatorWithdrawInfo is the address for where distributions rewards are + withdrawn to by default this struct is only used at genesis to feed in + default withdraw addresses. */ +typedef struct _cosmos_distribution_v1beta1_DelegatorWithdrawInfo { + /* delegator_address is the address of the delegator. */ + pb_callback_t delegator_address; + /* withdraw_address is the address to withdraw the delegation rewards to. */ + pb_callback_t withdraw_address; +} cosmos_distribution_v1beta1_DelegatorWithdrawInfo; + +/* ValidatorOutstandingRewardsRecord is used for import/export via genesis json. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord { + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* outstanding_rewards represents the outstanding rewards of a validator. */ + pb_callback_t outstanding_rewards; +} cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord; + +/* ValidatorAccumulatedCommissionRecord is used for import / export via genesis + json. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord { + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* accumulated is the accumulated commission of a validator. */ + bool has_accumulated; + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission accumulated; +} cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord; + +/* ValidatorHistoricalRewardsRecord is used for import / export via genesis + json. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord { + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* period defines the period the historical rewards apply to. */ + uint64_t period; + /* rewards defines the historical rewards of a validator. */ + bool has_rewards; + cosmos_distribution_v1beta1_ValidatorHistoricalRewards rewards; +} cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord; + +/* ValidatorCurrentRewardsRecord is used for import / export via genesis json. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord { + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* rewards defines the current rewards of a validator. */ + bool has_rewards; + cosmos_distribution_v1beta1_ValidatorCurrentRewards rewards; +} cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord; + +/* DelegatorStartingInfoRecord used for import / export via genesis json. */ +typedef struct _cosmos_distribution_v1beta1_DelegatorStartingInfoRecord { + /* delegator_address is the address of the delegator. */ + pb_callback_t delegator_address; + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* starting_info defines the starting info of a delegator. */ + bool has_starting_info; + cosmos_distribution_v1beta1_DelegatorStartingInfo starting_info; +} cosmos_distribution_v1beta1_DelegatorStartingInfoRecord; + +/* ValidatorSlashEventRecord is used for import / export via genesis json. */ +typedef struct _cosmos_distribution_v1beta1_ValidatorSlashEventRecord { + /* validator_address is the address of the validator. */ + pb_callback_t validator_address; + /* height defines the block height at which the slash event occurred. */ + uint64_t height; + /* period is the period of the slash event. */ + uint64_t period; + /* validator_slash_event describes the slash event. */ + bool has_validator_slash_event; + cosmos_distribution_v1beta1_ValidatorSlashEvent validator_slash_event; +} cosmos_distribution_v1beta1_ValidatorSlashEventRecord; + +/* GenesisState defines the distribution module's genesis state. */ +typedef struct _cosmos_distribution_v1beta1_GenesisState { + /* params defines all the parameters of the module. */ + bool has_params; + cosmos_distribution_v1beta1_Params params; + /* fee_pool defines the fee pool at genesis. */ + bool has_fee_pool; + cosmos_distribution_v1beta1_FeePool fee_pool; + /* fee_pool defines the delegator withdraw infos at genesis. */ + pb_callback_t delegator_withdraw_infos; + /* fee_pool defines the previous proposer at genesis. */ + pb_callback_t previous_proposer; + /* fee_pool defines the outstanding rewards of all validators at genesis. */ + pb_callback_t outstanding_rewards; + /* fee_pool defines the accumulated commissions of all validators at genesis. */ + pb_callback_t validator_accumulated_commissions; + /* fee_pool defines the historical rewards of all validators at genesis. */ + pb_callback_t validator_historical_rewards; + /* fee_pool defines the current rewards of all validators at genesis. */ + pb_callback_t validator_current_rewards; + /* fee_pool defines the delegator starting infos at genesis. */ + pb_callback_t delegator_starting_infos; + /* fee_pool defines the validator slash events at genesis. */ + pb_callback_t validator_slash_events; +} cosmos_distribution_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_init_default \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_default } +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_init_default \ + { {{NULL}, NULL}, 0, false, cosmos_distribution_v1beta1_ValidatorHistoricalRewards_init_default } +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_init_default \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_ValidatorCurrentRewards_init_default } +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_distribution_v1beta1_DelegatorStartingInfo_init_default } +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_init_default \ + { {{NULL}, NULL}, 0, 0, false, cosmos_distribution_v1beta1_ValidatorSlashEvent_init_default } +#define cosmos_distribution_v1beta1_GenesisState_init_default \ + { \ + false, cosmos_distribution_v1beta1_Params_init_default, false, cosmos_distribution_v1beta1_FeePool_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + { \ + {NULL}, NULL \ + } \ + } +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_init_zero \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_zero } +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_init_zero \ + { {{NULL}, NULL}, 0, false, cosmos_distribution_v1beta1_ValidatorHistoricalRewards_init_zero } +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_init_zero \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_ValidatorCurrentRewards_init_zero } +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_distribution_v1beta1_DelegatorStartingInfo_init_zero } +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_init_zero \ + { {{NULL}, NULL}, 0, 0, false, cosmos_distribution_v1beta1_ValidatorSlashEvent_init_zero } +#define cosmos_distribution_v1beta1_GenesisState_init_zero \ + { \ + false, cosmos_distribution_v1beta1_Params_init_zero, false, cosmos_distribution_v1beta1_FeePool_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + { \ + {NULL}, NULL \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_withdraw_address_tag 2 +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_validator_address_tag 1 +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_outstanding_rewards_tag 2 +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_validator_address_tag 1 +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_accumulated_tag 2 +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_validator_address_tag 1 +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_period_tag 2 +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_rewards_tag 3 +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_validator_address_tag 1 +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_rewards_tag 2 +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_validator_address_tag 2 +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_starting_info_tag 3 +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_validator_address_tag 1 +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_height_tag 2 +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_period_tag 3 +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_validator_slash_event_tag 4 +#define cosmos_distribution_v1beta1_GenesisState_params_tag 1 +#define cosmos_distribution_v1beta1_GenesisState_fee_pool_tag 2 +#define cosmos_distribution_v1beta1_GenesisState_delegator_withdraw_infos_tag 3 +#define cosmos_distribution_v1beta1_GenesisState_previous_proposer_tag 4 +#define cosmos_distribution_v1beta1_GenesisState_outstanding_rewards_tag 5 +#define cosmos_distribution_v1beta1_GenesisState_validator_accumulated_commissions_tag 6 +#define cosmos_distribution_v1beta1_GenesisState_validator_historical_rewards_tag 7 +#define cosmos_distribution_v1beta1_GenesisState_validator_current_rewards_tag 8 +#define cosmos_distribution_v1beta1_GenesisState_delegator_starting_infos_tag 9 +#define cosmos_distribution_v1beta1_GenesisState_validator_slash_events_tag 10 + +/* Struct field encoding specification for nanopb */ +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, withdraw_address, 2) +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_DEFAULT NULL + +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, outstanding_rewards, 2) +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_outstanding_rewards_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, accumulated, 2) +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_accumulated_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission + +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, STATIC, SINGULAR, UINT64, period, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, rewards, 3) +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorHistoricalRewards + +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rewards, 2) +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorCurrentRewards + +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, starting_info, 3) +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_starting_info_MSGTYPE \ + cosmos_distribution_v1beta1_DelegatorStartingInfo + +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, SINGULAR, UINT64, period, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_slash_event, 4) +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_DEFAULT NULL +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_validator_slash_event_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorSlashEvent + +#define cosmos_distribution_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee_pool, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegator_withdraw_infos, 3) \ + X(a, CALLBACK, SINGULAR, STRING, previous_proposer, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, outstanding_rewards, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_accumulated_commissions, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_historical_rewards, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_current_rewards, 8) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegator_starting_infos, 9) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_slash_events, 10) +#define cosmos_distribution_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_distribution_v1beta1_GenesisState_params_MSGTYPE cosmos_distribution_v1beta1_Params +#define cosmos_distribution_v1beta1_GenesisState_fee_pool_MSGTYPE cosmos_distribution_v1beta1_FeePool +#define cosmos_distribution_v1beta1_GenesisState_delegator_withdraw_infos_MSGTYPE \ + cosmos_distribution_v1beta1_DelegatorWithdrawInfo +#define cosmos_distribution_v1beta1_GenesisState_outstanding_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord +#define cosmos_distribution_v1beta1_GenesisState_validator_accumulated_commissions_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord +#define cosmos_distribution_v1beta1_GenesisState_validator_historical_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord +#define cosmos_distribution_v1beta1_GenesisState_validator_current_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord +#define cosmos_distribution_v1beta1_GenesisState_delegator_starting_infos_MSGTYPE \ + cosmos_distribution_v1beta1_DelegatorStartingInfoRecord +#define cosmos_distribution_v1beta1_GenesisState_validator_slash_events_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorSlashEventRecord + +extern const pb_msgdesc_t cosmos_distribution_v1beta1_DelegatorWithdrawInfo_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_ValidatorSlashEventRecord_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_distribution_v1beta1_DelegatorWithdrawInfo_fields &cosmos_distribution_v1beta1_DelegatorWithdrawInfo_msg +#define cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_fields \ + &cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_msg +#define cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_fields \ + &cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_msg +#define cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_fields \ + &cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_msg +#define cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_fields \ + &cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_msg +#define cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_fields \ + &cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_msg +#define cosmos_distribution_v1beta1_ValidatorSlashEventRecord_fields \ + &cosmos_distribution_v1beta1_ValidatorSlashEventRecord_msg +#define cosmos_distribution_v1beta1_GenesisState_fields &cosmos_distribution_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_distribution_v1beta1_DelegatorWithdrawInfo_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorOutstandingRewardsRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorAccumulatedCommissionRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorHistoricalRewardsRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorCurrentRewardsRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_DelegatorStartingInfoRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_ValidatorSlashEventRecord_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.c b/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.c new file mode 100644 index 0000000..f53b44d --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.c @@ -0,0 +1,63 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/distribution/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_distribution_v1beta1_QueryParamsRequest, cosmos_distribution_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryParamsResponse, cosmos_distribution_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest, + cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse, + cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest, + cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse, + cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorCommissionRequest, + cosmos_distribution_v1beta1_QueryValidatorCommissionRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorCommissionResponse, + cosmos_distribution_v1beta1_QueryValidatorCommissionResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorSlashesRequest, cosmos_distribution_v1beta1_QueryValidatorSlashesRequest, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryValidatorSlashesResponse, cosmos_distribution_v1beta1_QueryValidatorSlashesResponse, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegationRewardsRequest, cosmos_distribution_v1beta1_QueryDelegationRewardsRequest, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegationRewardsResponse, + cosmos_distribution_v1beta1_QueryDelegationRewardsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest, + cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse, + cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest, + cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse, + cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest, + cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse, + cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryCommunityPoolRequest, cosmos_distribution_v1beta1_QueryCommunityPoolRequest, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_QueryCommunityPoolResponse, cosmos_distribution_v1beta1_QueryCommunityPoolResponse, AUTO) diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.h b/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.h new file mode 100644 index 0000000..6def314 --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/query.pb.h @@ -0,0 +1,562 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/distribution/v1beta1/distribution.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_distribution_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + cosmos_distribution_v1beta1_Params params; +} cosmos_distribution_v1beta1_QueryParamsResponse; + +/* QueryValidatorDistributionInfoRequest is the request type for the Query/ValidatorDistributionInfo RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest { + /* validator_address defines the validator address to query for. */ + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest; + +/* QueryValidatorDistributionInfoResponse is the response type for the Query/ValidatorDistributionInfo RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse { + /* operator_address defines the validator operator address. */ + pb_callback_t operator_address; + /* self_bond_rewards defines the self delegations rewards. */ + pb_callback_t self_bond_rewards; + /* commission defines the commission the validator received. */ + pb_callback_t commission; +} cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse; + +/* QueryValidatorOutstandingRewardsRequest is the request type for the + Query/ValidatorOutstandingRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest { + /* validator_address defines the validator address to query for. */ + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest; + +/* QueryValidatorOutstandingRewardsResponse is the response type for the + Query/ValidatorOutstandingRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse { + bool has_rewards; + cosmos_distribution_v1beta1_ValidatorOutstandingRewards rewards; +} cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse; + +/* QueryValidatorCommissionRequest is the request type for the + Query/ValidatorCommission RPC method */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorCommissionRequest { + /* validator_address defines the validator address to query for. */ + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_QueryValidatorCommissionRequest; + +/* QueryValidatorCommissionResponse is the response type for the + Query/ValidatorCommission RPC method */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorCommissionResponse { + /* commission defines the commission the validator received. */ + bool has_commission; + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission commission; +} cosmos_distribution_v1beta1_QueryValidatorCommissionResponse; + +/* QueryValidatorSlashesRequest is the request type for the + Query/ValidatorSlashes RPC method */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorSlashesRequest { + /* validator_address defines the validator address to query for. */ + pb_callback_t validator_address; + /* starting_height defines the optional starting height to query the slashes. */ + uint64_t starting_height; + /* starting_height defines the optional ending height to query the slashes. */ + uint64_t ending_height; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_distribution_v1beta1_QueryValidatorSlashesRequest; + +/* QueryValidatorSlashesResponse is the response type for the + Query/ValidatorSlashes RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryValidatorSlashesResponse { + /* slashes defines the slashes the validator received. */ + pb_callback_t slashes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_distribution_v1beta1_QueryValidatorSlashesResponse; + +/* QueryDelegationRewardsRequest is the request type for the + Query/DelegationRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegationRewardsRequest { + /* delegator_address defines the delegator address to query for. */ + pb_callback_t delegator_address; + /* validator_address defines the validator address to query for. */ + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_QueryDelegationRewardsRequest; + +/* QueryDelegationRewardsResponse is the response type for the + Query/DelegationRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegationRewardsResponse { + /* rewards defines the rewards accrued by a delegation. */ + pb_callback_t rewards; +} cosmos_distribution_v1beta1_QueryDelegationRewardsResponse; + +/* QueryDelegationTotalRewardsRequest is the request type for the + Query/DelegationTotalRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest { + /* delegator_address defines the delegator address to query for. */ + pb_callback_t delegator_address; +} cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest; + +/* QueryDelegationTotalRewardsResponse is the response type for the + Query/DelegationTotalRewards RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse { + /* rewards defines all the rewards accrued by a delegator. */ + pb_callback_t rewards; + /* total defines the sum of all the rewards. */ + pb_callback_t total; +} cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse; + +/* QueryDelegatorValidatorsRequest is the request type for the + Query/DelegatorValidators RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest { + /* delegator_address defines the delegator address to query for. */ + pb_callback_t delegator_address; +} cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest; + +/* QueryDelegatorValidatorsResponse is the response type for the + Query/DelegatorValidators RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse { + /* validators defines the validators a delegator is delegating for. */ + pb_callback_t validators; +} cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse; + +/* QueryDelegatorWithdrawAddressRequest is the request type for the + Query/DelegatorWithdrawAddress RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest { + /* delegator_address defines the delegator address to query for. */ + pb_callback_t delegator_address; +} cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest; + +/* QueryDelegatorWithdrawAddressResponse is the response type for the + Query/DelegatorWithdrawAddress RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse { + /* withdraw_address defines the delegator address to query for. */ + pb_callback_t withdraw_address; +} cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse; + +/* QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC + method. */ +typedef struct _cosmos_distribution_v1beta1_QueryCommunityPoolRequest { + char dummy_field; +} cosmos_distribution_v1beta1_QueryCommunityPoolRequest; + +/* QueryCommunityPoolResponse is the response type for the Query/CommunityPool + RPC method. */ +typedef struct _cosmos_distribution_v1beta1_QueryCommunityPoolResponse { + /* pool defines community pool's coins. */ + pb_callback_t pool; +} cosmos_distribution_v1beta1_QueryCommunityPoolResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_distribution_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_distribution_v1beta1_Params_init_default } +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_init_default \ + { false, cosmos_distribution_v1beta1_ValidatorOutstandingRewards_init_default } +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_init_default \ + { false, cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_default } +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_init_default \ + { {{NULL}, NULL}, 0, 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_distribution_v1beta1_Params_init_zero } +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_init_zero \ + { false, cosmos_distribution_v1beta1_ValidatorOutstandingRewards_init_zero } +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_init_zero \ + { false, cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_init_zero } +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_init_zero \ + { {{NULL}, NULL}, 0, 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_distribution_v1beta1_QueryParamsResponse_params_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_validator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_operator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_self_bond_rewards_tag 2 +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_commission_tag 3 +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_validator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_rewards_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_validator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_commission_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_validator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_starting_height_tag 2 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_ending_height_tag 3 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_pagination_tag 4 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_slashes_tag 1 +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_pagination_tag 2 +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_validator_address_tag 2 +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_rewards_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_rewards_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_total_tag 2 +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_validators_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_withdraw_address_tag 1 +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_pool_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_distribution_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_distribution_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_distribution_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_distribution_v1beta1_Params + +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, operator_address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, self_bond_rewards, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, commission, 3) +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_self_bond_rewards_MSGTYPE \ + cosmos_base_v1beta1_DecCoin +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_commission_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, rewards, 1) +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorOutstandingRewards + +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commission, 1) +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_commission_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission + +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) \ + X(a, STATIC, SINGULAR, UINT64, starting_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, ending_height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, slashes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_slashes_MSGTYPE \ + cosmos_distribution_v1beta1_ValidatorSlashEvent +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, rewards, 1) +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_rewards_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, rewards, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, total, 2) +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_rewards_MSGTYPE \ + cosmos_distribution_v1beta1_DelegationDelegatorReward +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_total_MSGTYPE cosmos_base_v1beta1_DecCoin + +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, validators, 1) +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, withdraw_address, 1) +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_CALLBACK NULL +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_DEFAULT NULL + +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, pool, 1) +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_pool_MSGTYPE cosmos_base_v1beta1_DecCoin + +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryCommunityPoolRequest_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_QueryCommunityPoolResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_distribution_v1beta1_QueryParamsRequest_fields &cosmos_distribution_v1beta1_QueryParamsRequest_msg +#define cosmos_distribution_v1beta1_QueryParamsResponse_fields &cosmos_distribution_v1beta1_QueryParamsResponse_msg +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_fields \ + &cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_msg +#define cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_fields \ + &cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_msg +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_fields \ + &cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_msg +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_fields \ + &cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_msg +#define cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_fields \ + &cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_msg +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_fields \ + &cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_msg +#define cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_fields \ + &cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_msg +#define cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_fields \ + &cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_msg +#define cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_fields \ + &cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_msg +#define cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_fields \ + &cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_msg +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_fields \ + &cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_msg +#define cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_fields \ + &cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_msg +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_fields \ + &cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_msg +#define cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_fields \ + &cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_msg +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_fields \ + &cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_msg +#define cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_fields \ + &cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_msg +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_fields \ + &cosmos_distribution_v1beta1_QueryCommunityPoolRequest_msg +#define cosmos_distribution_v1beta1_QueryCommunityPoolResponse_fields \ + &cosmos_distribution_v1beta1_QueryCommunityPoolResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_distribution_v1beta1_QueryValidatorDistributionInfoRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryValidatorDistributionInfoResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryValidatorCommissionRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryValidatorSlashesRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryValidatorSlashesResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegationRewardsRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegationRewardsResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegationTotalRewardsRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegationTotalRewardsResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegatorValidatorsRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegatorValidatorsResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressRequest_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryDelegatorWithdrawAddressResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_QueryCommunityPoolResponse_size depends on runtime parameters */ +#define cosmos_distribution_v1beta1_QueryCommunityPoolRequest_size 0 +#define cosmos_distribution_v1beta1_QueryParamsRequest_size 0 +#if defined(cosmos_distribution_v1beta1_Params_size) +#define COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_distribution_v1beta1_QueryParamsResponse_size +#define cosmos_distribution_v1beta1_QueryParamsResponse_size (6 + cosmos_distribution_v1beta1_Params_size) +#endif +#if defined(cosmos_distribution_v1beta1_ValidatorOutstandingRewards_size) +#define cosmos_distribution_v1beta1_QueryValidatorOutstandingRewardsResponse_size \ + (6 + cosmos_distribution_v1beta1_ValidatorOutstandingRewards_size) +#endif +#if defined(cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_size) +#define cosmos_distribution_v1beta1_QueryValidatorCommissionResponse_size \ + (6 + cosmos_distribution_v1beta1_ValidatorAccumulatedCommission_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.c new file mode 100644 index 0000000..4571d1c --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.c @@ -0,0 +1,43 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/distribution/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_distribution_v1beta1_MsgSetWithdrawAddress, cosmos_distribution_v1beta1_MsgSetWithdrawAddress, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse, cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward, cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse, + cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission, + cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse, + cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgFundCommunityPool, cosmos_distribution_v1beta1_MsgFundCommunityPool, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse, cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgUpdateParams, cosmos_distribution_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgUpdateParamsResponse, cosmos_distribution_v1beta1_MsgUpdateParamsResponse, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgCommunityPoolSpend, cosmos_distribution_v1beta1_MsgCommunityPoolSpend, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse, cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse, + AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool, + cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool, AUTO) + +PB_BIND(cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse, + cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse, AUTO) diff --git a/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.h new file mode 100644 index 0000000..6a5ca8b --- /dev/null +++ b/app/src/protobuf/cosmos/distribution/v1beta1/tx.pb.h @@ -0,0 +1,389 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_DISTRIBUTION_V1BETA1_COSMOS_DISTRIBUTION_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/distribution/v1beta1/distribution.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSetWithdrawAddress sets the withdraw address for + a delegator (or validator self-delegation). */ +typedef struct _cosmos_distribution_v1beta1_MsgSetWithdrawAddress { + pb_callback_t delegator_address; + pb_callback_t withdraw_address; +} cosmos_distribution_v1beta1_MsgSetWithdrawAddress; + +/* MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response + type. */ +typedef struct _cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse { + char dummy_field; +} cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse; + +/* MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator + from a single validator. */ +typedef struct _cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward { + pb_callback_t delegator_address; + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward; + +/* MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward + response type. */ +typedef struct _cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse { + /* Since: cosmos-sdk 0.46 */ + pb_callback_t amount; +} cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse; + +/* MsgWithdrawValidatorCommission withdraws the full commission to the validator + address. */ +typedef struct _cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission { + pb_callback_t validator_address; +} cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission; + +/* MsgWithdrawValidatorCommissionResponse defines the + Msg/WithdrawValidatorCommission response type. */ +typedef struct _cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse { + /* Since: cosmos-sdk 0.46 */ + pb_callback_t amount; +} cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse; + +/* MsgFundCommunityPool allows an account to directly + fund the community pool. */ +typedef struct _cosmos_distribution_v1beta1_MsgFundCommunityPool { + pb_callback_t amount; + pb_callback_t depositor; +} cosmos_distribution_v1beta1_MsgFundCommunityPool; + +/* MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. */ +typedef struct _cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse { + char dummy_field; +} cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_distribution_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/distribution parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_distribution_v1beta1_Params params; +} cosmos_distribution_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_distribution_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_distribution_v1beta1_MsgUpdateParamsResponse; + +/* MsgCommunityPoolSpend defines a message for sending tokens from the community + pool to another account. This message is typically executed via a governance + proposal with the governance module being the executing authority. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_distribution_v1beta1_MsgCommunityPoolSpend { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + pb_callback_t recipient; + pb_callback_t amount; +} cosmos_distribution_v1beta1_MsgCommunityPoolSpend; + +/* MsgCommunityPoolSpendResponse defines the response to executing a + MsgCommunityPoolSpend message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse { + char dummy_field; +} cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse; + +/* DepositValidatorRewardsPool defines the request structure to provide + additional rewards to delegators from a specific validator. + + Since: cosmos-sdk 0.48 */ +typedef struct _cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool { + pb_callback_t depositor; + pb_callback_t validator_address; + pb_callback_t amount; +} cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool; + +/* MsgDepositValidatorRewardsPoolResponse defines the response to executing a + MsgDepositValidatorRewardsPool message. + + Since: cosmos-sdk 0.48 */ +typedef struct _cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse { + char dummy_field; +} cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_Params_init_default } +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_init_default \ + { 0 } +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_distribution_v1beta1_Params_init_zero } +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_init_zero \ + { 0 } +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_withdraw_address_tag 2 +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_delegator_address_tag 1 +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_validator_address_tag 2 +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_amount_tag 1 +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_validator_address_tag 1 +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_amount_tag 1 +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_amount_tag 1 +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_depositor_tag 2 +#define cosmos_distribution_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_distribution_v1beta1_MsgUpdateParams_params_tag 2 +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_authority_tag 1 +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_recipient_tag 2 +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_amount_tag 3 +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_depositor_tag 1 +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_validator_address_tag 2 +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_amount_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, withdraw_address, 2) +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 1) +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 1) +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 1) +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_distribution_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_distribution_v1beta1_Params + +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, CALLBACK, SINGULAR, STRING, recipient, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_DEFAULT NULL + +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_CALLBACK pb_default_field_callback +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_DEFAULT NULL +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_FIELDLIST(X, a) + +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_CALLBACK NULL +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgSetWithdrawAddress_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgFundCommunityPool_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgUpdateParamsResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgCommunityPoolSpend_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_msg; +extern const pb_msgdesc_t cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddress_fields &cosmos_distribution_v1beta1_MsgSetWithdrawAddress_msg +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_fields \ + &cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_msg +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_fields \ + &cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_msg +#define cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_fields \ + &cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_msg +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_fields \ + &cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_msg +#define cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_fields \ + &cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_msg +#define cosmos_distribution_v1beta1_MsgFundCommunityPool_fields &cosmos_distribution_v1beta1_MsgFundCommunityPool_msg +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_fields \ + &cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_msg +#define cosmos_distribution_v1beta1_MsgUpdateParams_fields &cosmos_distribution_v1beta1_MsgUpdateParams_msg +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_fields &cosmos_distribution_v1beta1_MsgUpdateParamsResponse_msg +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpend_fields &cosmos_distribution_v1beta1_MsgCommunityPoolSpend_msg +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_fields \ + &cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_msg +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_fields \ + &cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_msg +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_fields \ + &cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_distribution_v1beta1_MsgSetWithdrawAddress_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgWithdrawDelegatorReward_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgWithdrawDelegatorRewardResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgWithdrawValidatorCommission_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgWithdrawValidatorCommissionResponse_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgFundCommunityPool_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgCommunityPoolSpend_size depends on runtime parameters */ +/* cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPool_size depends on runtime parameters */ +#define cosmos_distribution_v1beta1_MsgCommunityPoolSpendResponse_size 0 +#define cosmos_distribution_v1beta1_MsgDepositValidatorRewardsPoolResponse_size 0 +#define cosmos_distribution_v1beta1_MsgFundCommunityPoolResponse_size 0 +#define cosmos_distribution_v1beta1_MsgSetWithdrawAddressResponse_size 0 +#define cosmos_distribution_v1beta1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/evidence/module/v1/module.pb.c b/app/src/protobuf/cosmos/evidence/module/v1/module.pb.c new file mode 100644 index 0000000..b8fe379 --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/evidence/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_evidence_module_v1_Module, cosmos_evidence_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/evidence/module/v1/module.pb.h b/app/src/protobuf/cosmos/evidence/module/v1/module.pb.h new file mode 100644 index 0000000..06758af --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_EVIDENCE_MODULE_V1_COSMOS_EVIDENCE_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_EVIDENCE_MODULE_V1_COSMOS_EVIDENCE_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the evidence module. */ +typedef struct _cosmos_evidence_module_v1_Module { + char dummy_field; +} cosmos_evidence_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_evidence_module_v1_Module_init_default \ + { 0 } +#define cosmos_evidence_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_evidence_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_evidence_module_v1_Module_CALLBACK NULL +#define cosmos_evidence_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_evidence_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_evidence_module_v1_Module_fields &cosmos_evidence_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_EVIDENCE_MODULE_V1_COSMOS_EVIDENCE_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_evidence_module_v1_Module_size +#define cosmos_evidence_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.c b/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.c new file mode 100644 index 0000000..4c1887e --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/evidence/v1beta1/evidence.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_evidence_v1beta1_Equivocation, cosmos_evidence_v1beta1_Equivocation, AUTO) diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.h b/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.h new file mode 100644 index 0000000..2eedb9e --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/evidence.pb.h @@ -0,0 +1,74 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_EVIDENCE_PB_H_INCLUDED +#define PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_EVIDENCE_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Equivocation implements the Evidence interface and defines evidence of double + signing misbehavior. */ +typedef struct _cosmos_evidence_v1beta1_Equivocation { + /* height is the equivocation height. */ + int64_t height; + /* time is the equivocation time. */ + bool has_time; + google_protobuf_Timestamp time; + /* power is the equivocation validator power. */ + int64_t power; + /* consensus_address is the equivocation validator consensus address. */ + pb_callback_t consensus_address; +} cosmos_evidence_v1beta1_Equivocation; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_evidence_v1beta1_Equivocation_init_default \ + { \ + 0, false, google_protobuf_Timestamp_init_default, 0, { {NULL}, NULL } \ + } +#define cosmos_evidence_v1beta1_Equivocation_init_zero \ + { \ + 0, false, google_protobuf_Timestamp_init_zero, 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_evidence_v1beta1_Equivocation_height_tag 1 +#define cosmos_evidence_v1beta1_Equivocation_time_tag 2 +#define cosmos_evidence_v1beta1_Equivocation_power_tag 3 +#define cosmos_evidence_v1beta1_Equivocation_consensus_address_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_evidence_v1beta1_Equivocation_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 2) \ + X(a, STATIC, SINGULAR, INT64, power, 3) \ + X(a, CALLBACK, SINGULAR, STRING, consensus_address, 4) +#define cosmos_evidence_v1beta1_Equivocation_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_Equivocation_DEFAULT NULL +#define cosmos_evidence_v1beta1_Equivocation_time_MSGTYPE google_protobuf_Timestamp + +extern const pb_msgdesc_t cosmos_evidence_v1beta1_Equivocation_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_evidence_v1beta1_Equivocation_fields &cosmos_evidence_v1beta1_Equivocation_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_evidence_v1beta1_Equivocation_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.c new file mode 100644 index 0000000..545ed81 --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/evidence/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_evidence_v1beta1_GenesisState, cosmos_evidence_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.h new file mode 100644 index 0000000..68aa88d --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/genesis.pb.h @@ -0,0 +1,56 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the evidence module's genesis state. */ +typedef struct _cosmos_evidence_v1beta1_GenesisState { + /* evidence defines all the evidence at genesis. */ + pb_callback_t evidence; +} cosmos_evidence_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_evidence_v1beta1_GenesisState_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_evidence_v1beta1_GenesisState_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_evidence_v1beta1_GenesisState_evidence_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_evidence_v1beta1_GenesisState_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, evidence, 1) +#define cosmos_evidence_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_evidence_v1beta1_GenesisState_evidence_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t cosmos_evidence_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_evidence_v1beta1_GenesisState_fields &cosmos_evidence_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_evidence_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.c b/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.c new file mode 100644 index 0000000..7c50b3b --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/evidence/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_evidence_v1beta1_QueryEvidenceRequest, cosmos_evidence_v1beta1_QueryEvidenceRequest, AUTO) + +PB_BIND(cosmos_evidence_v1beta1_QueryEvidenceResponse, cosmos_evidence_v1beta1_QueryEvidenceResponse, AUTO) + +PB_BIND(cosmos_evidence_v1beta1_QueryAllEvidenceRequest, cosmos_evidence_v1beta1_QueryAllEvidenceRequest, AUTO) + +PB_BIND(cosmos_evidence_v1beta1_QueryAllEvidenceResponse, cosmos_evidence_v1beta1_QueryAllEvidenceResponse, AUTO) diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.h b/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.h new file mode 100644 index 0000000..95024f8 --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/query.pb.h @@ -0,0 +1,139 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryEvidenceRequest is the request type for the Query/Evidence RPC method. */ +typedef struct _cosmos_evidence_v1beta1_QueryEvidenceRequest { + /* evidence_hash defines the hash of the requested evidence. + Deprecated: Use hash, a HEX encoded string, instead. */ + pb_callback_t evidence_hash; + /* hash defines the evidence hash of the requested evidence. + + Since: cosmos-sdk 0.47 */ + pb_callback_t hash; +} cosmos_evidence_v1beta1_QueryEvidenceRequest; + +/* QueryEvidenceResponse is the response type for the Query/Evidence RPC method. */ +typedef struct _cosmos_evidence_v1beta1_QueryEvidenceResponse { + /* evidence returns the requested evidence. */ + bool has_evidence; + google_protobuf_Any evidence; +} cosmos_evidence_v1beta1_QueryEvidenceResponse; + +/* QueryEvidenceRequest is the request type for the Query/AllEvidence RPC + method. */ +typedef struct _cosmos_evidence_v1beta1_QueryAllEvidenceRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_evidence_v1beta1_QueryAllEvidenceRequest; + +/* QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC + method. */ +typedef struct _cosmos_evidence_v1beta1_QueryAllEvidenceResponse { + /* evidence returns all evidences. */ + pb_callback_t evidence; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_evidence_v1beta1_QueryAllEvidenceResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_init_zero \ + { false, google_protobuf_Any_init_zero } +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_evidence_hash_tag 1 +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_hash_tag 2 +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_evidence_tag 1 +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_pagination_tag 1 +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_evidence_tag 1 +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, evidence_hash, 1) \ + X(a, CALLBACK, SINGULAR, STRING, hash, 2) +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_DEFAULT NULL + +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, evidence, 1) +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_CALLBACK NULL +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_DEFAULT NULL +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_evidence_MSGTYPE google_protobuf_Any + +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_CALLBACK NULL +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_DEFAULT NULL +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, evidence, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_DEFAULT NULL +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_evidence_MSGTYPE google_protobuf_Any +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_evidence_v1beta1_QueryEvidenceRequest_msg; +extern const pb_msgdesc_t cosmos_evidence_v1beta1_QueryEvidenceResponse_msg; +extern const pb_msgdesc_t cosmos_evidence_v1beta1_QueryAllEvidenceRequest_msg; +extern const pb_msgdesc_t cosmos_evidence_v1beta1_QueryAllEvidenceResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_evidence_v1beta1_QueryEvidenceRequest_fields &cosmos_evidence_v1beta1_QueryEvidenceRequest_msg +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_fields &cosmos_evidence_v1beta1_QueryEvidenceResponse_msg +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_fields &cosmos_evidence_v1beta1_QueryAllEvidenceRequest_msg +#define cosmos_evidence_v1beta1_QueryAllEvidenceResponse_fields &cosmos_evidence_v1beta1_QueryAllEvidenceResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_evidence_v1beta1_QueryEvidenceRequest_size depends on runtime parameters */ +/* cosmos_evidence_v1beta1_QueryAllEvidenceResponse_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_evidence_v1beta1_QueryEvidenceResponse_size +#define cosmos_evidence_v1beta1_QueryEvidenceResponse_size (6 + google_protobuf_Any_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_evidence_v1beta1_QueryAllEvidenceRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.c new file mode 100644 index 0000000..ba4245d --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/evidence/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_evidence_v1beta1_MsgSubmitEvidence, cosmos_evidence_v1beta1_MsgSubmitEvidence, AUTO) + +PB_BIND(cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse, cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse, AUTO) diff --git a/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.h new file mode 100644 index 0000000..ffeea89 --- /dev/null +++ b/app/src/protobuf/cosmos/evidence/v1beta1/tx.pb.h @@ -0,0 +1,85 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_EVIDENCE_V1BETA1_COSMOS_EVIDENCE_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSubmitEvidence represents a message that supports submitting arbitrary + Evidence of misbehavior such as equivocation or counterfactual signing. */ +typedef struct _cosmos_evidence_v1beta1_MsgSubmitEvidence { + /* submitter is the signer account address of evidence. */ + pb_callback_t submitter; + /* evidence defines the evidence of misbehavior. */ + bool has_evidence; + google_protobuf_Any evidence; +} cosmos_evidence_v1beta1_MsgSubmitEvidence; + +/* MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. */ +typedef struct _cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse { + /* hash defines the hash of the evidence. */ + pb_callback_t hash; +} cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_submitter_tag 1 +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_evidence_tag 2 +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_hash_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, submitter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, evidence, 2) +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_DEFAULT NULL +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_evidence_MSGTYPE google_protobuf_Any + +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, hash, 4) +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_CALLBACK pb_default_field_callback +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_evidence_v1beta1_MsgSubmitEvidence_msg; +extern const pb_msgdesc_t cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_evidence_v1beta1_MsgSubmitEvidence_fields &cosmos_evidence_v1beta1_MsgSubmitEvidence_msg +#define cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_fields &cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_evidence_v1beta1_MsgSubmitEvidence_size depends on runtime parameters */ +/* cosmos_evidence_v1beta1_MsgSubmitEvidenceResponse_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.c b/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.c new file mode 100644 index 0000000..c646e32 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/feegrant/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_feegrant_module_v1_Module, cosmos_feegrant_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.h b/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.h new file mode 100644 index 0000000..2f432f2 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_FEEGRANT_MODULE_V1_COSMOS_FEEGRANT_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_FEEGRANT_MODULE_V1_COSMOS_FEEGRANT_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the feegrant module. */ +typedef struct _cosmos_feegrant_module_v1_Module { + char dummy_field; +} cosmos_feegrant_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_feegrant_module_v1_Module_init_default \ + { 0 } +#define cosmos_feegrant_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_feegrant_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_feegrant_module_v1_Module_CALLBACK NULL +#define cosmos_feegrant_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_feegrant_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_feegrant_module_v1_Module_fields &cosmos_feegrant_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_FEEGRANT_MODULE_V1_COSMOS_FEEGRANT_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_feegrant_module_v1_Module_size +#define cosmos_feegrant_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.c b/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.c new file mode 100644 index 0000000..63ec77c --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/feegrant/v1beta1/feegrant.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_feegrant_v1beta1_BasicAllowance, cosmos_feegrant_v1beta1_BasicAllowance, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_PeriodicAllowance, cosmos_feegrant_v1beta1_PeriodicAllowance, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_AllowedMsgAllowance, cosmos_feegrant_v1beta1_AllowedMsgAllowance, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_Grant, cosmos_feegrant_v1beta1_Grant, AUTO) diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.h b/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.h new file mode 100644 index 0000000..4e1b71b --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/feegrant.pb.h @@ -0,0 +1,180 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_FEEGRANT_PB_H_INCLUDED +#define PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_FEEGRANT_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* BasicAllowance implements Allowance with a one-time grant of coins + that optionally expires. The grantee can use up to SpendLimit to cover fees. */ +typedef struct _cosmos_feegrant_v1beta1_BasicAllowance { + /* spend_limit specifies the maximum amount of coins that can be spent + by this allowance and will be updated as coins are spent. If it is + empty, there is no spend limit and any amount of coins can be spent. */ + pb_callback_t spend_limit; + /* expiration specifies an optional time when this allowance expires */ + bool has_expiration; + google_protobuf_Timestamp expiration; +} cosmos_feegrant_v1beta1_BasicAllowance; + +/* PeriodicAllowance extends Allowance to allow for both a maximum cap, + as well as a limit per time period. */ +typedef struct _cosmos_feegrant_v1beta1_PeriodicAllowance { + /* basic specifies a struct of `BasicAllowance` */ + bool has_basic; + cosmos_feegrant_v1beta1_BasicAllowance basic; + /* period specifies the time duration in which period_spend_limit coins can + be spent before that allowance is reset */ + bool has_period; + google_protobuf_Duration period; + /* period_spend_limit specifies the maximum number of coins that can be spent + in the period */ + pb_callback_t period_spend_limit; + /* period_can_spend is the number of coins left to be spent before the period_reset time */ + pb_callback_t period_can_spend; + /* period_reset is the time at which this period resets and a new one begins, + it is calculated from the start time of the first transaction after the + last period ended */ + bool has_period_reset; + google_protobuf_Timestamp period_reset; +} cosmos_feegrant_v1beta1_PeriodicAllowance; + +/* AllowedMsgAllowance creates allowance only for specified message types. */ +typedef struct _cosmos_feegrant_v1beta1_AllowedMsgAllowance { + /* allowance can be any of basic and periodic fee allowance. */ + bool has_allowance; + google_protobuf_Any allowance; + /* allowed_messages are the messages for which the grantee has the access. */ + pb_callback_t allowed_messages; +} cosmos_feegrant_v1beta1_AllowedMsgAllowance; + +/* Grant is stored in the KVStore to record a grant with full context */ +typedef struct _cosmos_feegrant_v1beta1_Grant { + /* granter is the address of the user granting an allowance of their funds. */ + pb_callback_t granter; + /* grantee is the address of the user being granted an allowance of another user's funds. */ + pb_callback_t grantee; + /* allowance can be any of basic, periodic, allowed fee allowance. */ + bool has_allowance; + google_protobuf_Any allowance; +} cosmos_feegrant_v1beta1_Grant; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_feegrant_v1beta1_BasicAllowance_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default } +#define cosmos_feegrant_v1beta1_PeriodicAllowance_init_default \ + { \ + false, cosmos_feegrant_v1beta1_BasicAllowance_init_default, false, google_protobuf_Duration_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default \ + } +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_init_default \ + { \ + false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_Grant_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_feegrant_v1beta1_BasicAllowance_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero } +#define cosmos_feegrant_v1beta1_PeriodicAllowance_init_zero \ + { \ + false, cosmos_feegrant_v1beta1_BasicAllowance_init_zero, false, google_protobuf_Duration_init_zero, {{NULL}, NULL}, \ + {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero \ + } +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_init_zero \ + { \ + false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_Grant_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_feegrant_v1beta1_BasicAllowance_spend_limit_tag 1 +#define cosmos_feegrant_v1beta1_BasicAllowance_expiration_tag 2 +#define cosmos_feegrant_v1beta1_PeriodicAllowance_basic_tag 1 +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_tag 2 +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_spend_limit_tag 3 +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_can_spend_tag 4 +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_reset_tag 5 +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_allowance_tag 1 +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_allowed_messages_tag 2 +#define cosmos_feegrant_v1beta1_Grant_granter_tag 1 +#define cosmos_feegrant_v1beta1_Grant_grantee_tag 2 +#define cosmos_feegrant_v1beta1_Grant_allowance_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_feegrant_v1beta1_BasicAllowance_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, spend_limit, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, expiration, 2) +#define cosmos_feegrant_v1beta1_BasicAllowance_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_BasicAllowance_DEFAULT NULL +#define cosmos_feegrant_v1beta1_BasicAllowance_spend_limit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_feegrant_v1beta1_BasicAllowance_expiration_MSGTYPE google_protobuf_Timestamp + +#define cosmos_feegrant_v1beta1_PeriodicAllowance_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, basic, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, period, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, period_spend_limit, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, period_can_spend, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, period_reset, 5) +#define cosmos_feegrant_v1beta1_PeriodicAllowance_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_PeriodicAllowance_DEFAULT NULL +#define cosmos_feegrant_v1beta1_PeriodicAllowance_basic_MSGTYPE cosmos_feegrant_v1beta1_BasicAllowance +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_MSGTYPE google_protobuf_Duration +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_spend_limit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_can_spend_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_feegrant_v1beta1_PeriodicAllowance_period_reset_MSGTYPE google_protobuf_Timestamp + +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, allowance, 1) \ + X(a, CALLBACK, REPEATED, STRING, allowed_messages, 2) +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_DEFAULT NULL +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_allowance_MSGTYPE google_protobuf_Any + +#define cosmos_feegrant_v1beta1_Grant_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, allowance, 3) +#define cosmos_feegrant_v1beta1_Grant_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_Grant_DEFAULT NULL +#define cosmos_feegrant_v1beta1_Grant_allowance_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_BasicAllowance_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_PeriodicAllowance_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_AllowedMsgAllowance_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_Grant_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_feegrant_v1beta1_BasicAllowance_fields &cosmos_feegrant_v1beta1_BasicAllowance_msg +#define cosmos_feegrant_v1beta1_PeriodicAllowance_fields &cosmos_feegrant_v1beta1_PeriodicAllowance_msg +#define cosmos_feegrant_v1beta1_AllowedMsgAllowance_fields &cosmos_feegrant_v1beta1_AllowedMsgAllowance_msg +#define cosmos_feegrant_v1beta1_Grant_fields &cosmos_feegrant_v1beta1_Grant_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_feegrant_v1beta1_BasicAllowance_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_PeriodicAllowance_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_AllowedMsgAllowance_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_Grant_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.c new file mode 100644 index 0000000..11da610 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/feegrant/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_feegrant_v1beta1_GenesisState, cosmos_feegrant_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.h new file mode 100644 index 0000000..24160f6 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/genesis.pb.h @@ -0,0 +1,57 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/feegrant/v1beta1/feegrant.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState contains a set of fee allowances, persisted from the store */ +typedef struct _cosmos_feegrant_v1beta1_GenesisState { + pb_callback_t allowances; +} cosmos_feegrant_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_feegrant_v1beta1_GenesisState_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_GenesisState_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_feegrant_v1beta1_GenesisState_allowances_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_feegrant_v1beta1_GenesisState_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, allowances, 1) +#define cosmos_feegrant_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_feegrant_v1beta1_GenesisState_allowances_MSGTYPE cosmos_feegrant_v1beta1_Grant + +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_feegrant_v1beta1_GenesisState_fields &cosmos_feegrant_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_feegrant_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.c b/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.c new file mode 100644 index 0000000..668d6a2 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/feegrant/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowanceRequest, cosmos_feegrant_v1beta1_QueryAllowanceRequest, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowanceResponse, cosmos_feegrant_v1beta1_QueryAllowanceResponse, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowancesRequest, cosmos_feegrant_v1beta1_QueryAllowancesRequest, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowancesResponse, cosmos_feegrant_v1beta1_QueryAllowancesResponse, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest, cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest, + AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse, cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse, + AUTO) diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.h b/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.h new file mode 100644 index 0000000..7a051b2 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/query.pb.h @@ -0,0 +1,193 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/feegrant/v1beta1/feegrant.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryAllowanceRequest is the request type for the Query/Allowance RPC method. */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowanceRequest { + /* granter is the address of the user granting an allowance of their funds. */ + pb_callback_t granter; + /* grantee is the address of the user being granted an allowance of another user's funds. */ + pb_callback_t grantee; +} cosmos_feegrant_v1beta1_QueryAllowanceRequest; + +/* QueryAllowanceResponse is the response type for the Query/Allowance RPC method. */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowanceResponse { + /* allowance is a allowance granted for grantee by granter. */ + bool has_allowance; + cosmos_feegrant_v1beta1_Grant allowance; +} cosmos_feegrant_v1beta1_QueryAllowanceResponse; + +/* QueryAllowancesRequest is the request type for the Query/Allowances RPC method. */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowancesRequest { + pb_callback_t grantee; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_feegrant_v1beta1_QueryAllowancesRequest; + +/* QueryAllowancesResponse is the response type for the Query/Allowances RPC method. */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowancesResponse { + /* allowances are allowance's granted for grantee by granter. */ + pb_callback_t allowances; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_feegrant_v1beta1_QueryAllowancesResponse; + +/* QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest { + pb_callback_t granter; + /* pagination defines an pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest; + +/* QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse { + /* allowances that have been issued by the granter. */ + pb_callback_t allowances; + /* pagination defines an pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_init_default \ + { false, cosmos_feegrant_v1beta1_Grant_init_default } +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_init_zero \ + { false, cosmos_feegrant_v1beta1_Grant_init_zero } +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_granter_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_grantee_tag 2 +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_allowance_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_grantee_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_pagination_tag 2 +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_allowances_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_pagination_tag 2 +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_granter_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_pagination_tag 2 +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_allowances_tag 1 +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_DEFAULT NULL + +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, allowance, 1) +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_CALLBACK NULL +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_DEFAULT NULL +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_allowance_MSGTYPE cosmos_feegrant_v1beta1_Grant + +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_DEFAULT NULL +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, allowances, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_DEFAULT NULL +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_allowances_MSGTYPE cosmos_feegrant_v1beta1_Grant +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_DEFAULT NULL +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, allowances, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_DEFAULT NULL +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_allowances_MSGTYPE cosmos_feegrant_v1beta1_Grant +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowanceRequest_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowanceResponse_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowancesRequest_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowancesResponse_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_feegrant_v1beta1_QueryAllowanceRequest_fields &cosmos_feegrant_v1beta1_QueryAllowanceRequest_msg +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_fields &cosmos_feegrant_v1beta1_QueryAllowanceResponse_msg +#define cosmos_feegrant_v1beta1_QueryAllowancesRequest_fields &cosmos_feegrant_v1beta1_QueryAllowancesRequest_msg +#define cosmos_feegrant_v1beta1_QueryAllowancesResponse_fields &cosmos_feegrant_v1beta1_QueryAllowancesResponse_msg +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_fields \ + &cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_msg +#define cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_fields \ + &cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_feegrant_v1beta1_QueryAllowanceRequest_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_QueryAllowancesRequest_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_QueryAllowancesResponse_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_QueryAllowancesByGranterRequest_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_QueryAllowancesByGranterResponse_size depends on runtime parameters */ +#if defined(cosmos_feegrant_v1beta1_Grant_size) +#define COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_feegrant_v1beta1_QueryAllowanceResponse_size +#define cosmos_feegrant_v1beta1_QueryAllowanceResponse_size (6 + cosmos_feegrant_v1beta1_Grant_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.c new file mode 100644 index 0000000..ce81428 --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/feegrant/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_feegrant_v1beta1_MsgGrantAllowance, cosmos_feegrant_v1beta1_MsgGrantAllowance, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse, cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_MsgRevokeAllowance, cosmos_feegrant_v1beta1_MsgRevokeAllowance, AUTO) + +PB_BIND(cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse, cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse, AUTO) diff --git a/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.h new file mode 100644 index 0000000..37db1ad --- /dev/null +++ b/app/src/protobuf/cosmos/feegrant/v1beta1/tx.pb.h @@ -0,0 +1,127 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_FEEGRANT_V1BETA1_COSMOS_FEEGRANT_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgGrantAllowance adds permission for Grantee to spend up to Allowance + of fees from the account of Granter. */ +typedef struct _cosmos_feegrant_v1beta1_MsgGrantAllowance { + /* granter is the address of the user granting an allowance of their funds. */ + pb_callback_t granter; + /* grantee is the address of the user being granted an allowance of another user's funds. */ + pb_callback_t grantee; + /* allowance can be any of basic, periodic, allowed fee allowance. */ + bool has_allowance; + google_protobuf_Any allowance; +} cosmos_feegrant_v1beta1_MsgGrantAllowance; + +/* MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. */ +typedef struct _cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse { + char dummy_field; +} cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse; + +/* MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. */ +typedef struct _cosmos_feegrant_v1beta1_MsgRevokeAllowance { + /* granter is the address of the user granting an allowance of their funds. */ + pb_callback_t granter; + /* grantee is the address of the user being granted an allowance of another user's funds. */ + pb_callback_t grantee; +} cosmos_feegrant_v1beta1_MsgRevokeAllowance; + +/* MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. */ +typedef struct _cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse { + char dummy_field; +} cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_init_default \ + { 0 } +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_init_default \ + { 0 } +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_init_zero \ + { 0 } +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_granter_tag 1 +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_grantee_tag 2 +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_allowance_tag 3 +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_granter_tag 1 +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_grantee_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, allowance, 3) +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_DEFAULT NULL +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_allowance_MSGTYPE google_protobuf_Any + +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_FIELDLIST(X, a) + +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_CALLBACK NULL +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_DEFAULT NULL + +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 1) \ + X(a, CALLBACK, SINGULAR, STRING, grantee, 2) +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_CALLBACK pb_default_field_callback +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_DEFAULT NULL + +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_FIELDLIST(X, a) + +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_CALLBACK NULL +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_MsgGrantAllowance_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_MsgRevokeAllowance_msg; +extern const pb_msgdesc_t cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_feegrant_v1beta1_MsgGrantAllowance_fields &cosmos_feegrant_v1beta1_MsgGrantAllowance_msg +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_fields &cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_msg +#define cosmos_feegrant_v1beta1_MsgRevokeAllowance_fields &cosmos_feegrant_v1beta1_MsgRevokeAllowance_msg +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_fields &cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_feegrant_v1beta1_MsgGrantAllowance_size depends on runtime parameters */ +/* cosmos_feegrant_v1beta1_MsgRevokeAllowance_size depends on runtime parameters */ +#define cosmos_feegrant_v1beta1_MsgGrantAllowanceResponse_size 0 +#define cosmos_feegrant_v1beta1_MsgRevokeAllowanceResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/genutil/module/v1/module.pb.c b/app/src/protobuf/cosmos/genutil/module/v1/module.pb.c new file mode 100644 index 0000000..48a6813 --- /dev/null +++ b/app/src/protobuf/cosmos/genutil/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/genutil/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_genutil_module_v1_Module, cosmos_genutil_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/genutil/module/v1/module.pb.h b/app/src/protobuf/cosmos/genutil/module/v1/module.pb.h new file mode 100644 index 0000000..1c92f4a --- /dev/null +++ b/app/src/protobuf/cosmos/genutil/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GENUTIL_MODULE_V1_COSMOS_GENUTIL_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_GENUTIL_MODULE_V1_COSMOS_GENUTIL_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object for the genutil module. */ +typedef struct _cosmos_genutil_module_v1_Module { + char dummy_field; +} cosmos_genutil_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_genutil_module_v1_Module_init_default \ + { 0 } +#define cosmos_genutil_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_genutil_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_genutil_module_v1_Module_CALLBACK NULL +#define cosmos_genutil_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_genutil_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_genutil_module_v1_Module_fields &cosmos_genutil_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_GENUTIL_MODULE_V1_COSMOS_GENUTIL_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_genutil_module_v1_Module_size +#define cosmos_genutil_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.c new file mode 100644 index 0000000..94a0cb9 --- /dev/null +++ b/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/genutil/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_genutil_v1beta1_GenesisState, cosmos_genutil_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.h new file mode 100644 index 0000000..7c7e402 --- /dev/null +++ b/app/src/protobuf/cosmos/genutil/v1beta1/genesis.pb.h @@ -0,0 +1,56 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GENUTIL_V1BETA1_COSMOS_GENUTIL_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_GENUTIL_V1BETA1_COSMOS_GENUTIL_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the raw genesis transaction in JSON. */ +typedef struct _cosmos_genutil_v1beta1_GenesisState { + /* gen_txs defines the genesis transactions. */ + pb_callback_t gen_txs; +} cosmos_genutil_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_genutil_v1beta1_GenesisState_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_genutil_v1beta1_GenesisState_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_genutil_v1beta1_GenesisState_gen_txs_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_genutil_v1beta1_GenesisState_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, gen_txs, 1) +#define cosmos_genutil_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_genutil_v1beta1_GenesisState_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_genutil_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_genutil_v1beta1_GenesisState_fields &cosmos_genutil_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_genutil_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/module/v1/module.pb.c b/app/src/protobuf/cosmos/gov/module/v1/module.pb.c new file mode 100644 index 0000000..bd41950 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_module_v1_Module, cosmos_gov_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/gov/module/v1/module.pb.h b/app/src/protobuf/cosmos/gov/module/v1/module.pb.h new file mode 100644 index 0000000..1b3fb99 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/module/v1/module.pb.h @@ -0,0 +1,61 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_MODULE_V1_COSMOS_GOV_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_GOV_MODULE_V1_COSMOS_GOV_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the gov module. */ +typedef struct _cosmos_gov_module_v1_Module { + /* max_metadata_len defines the maximum proposal metadata length. + Defaults to 255 if not explicitly set. */ + uint64_t max_metadata_len; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_gov_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_module_v1_Module_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_module_v1_Module_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_module_v1_Module_max_metadata_len_tag 1 +#define cosmos_gov_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_module_v1_Module_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, max_metadata_len, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_gov_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_gov_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_gov_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_module_v1_Module_fields &cosmos_gov_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1/genesis.pb.c b/app/src/protobuf/cosmos/gov/v1/genesis.pb.c new file mode 100644 index 0000000..8f53e1a --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1_GenesisState, cosmos_gov_v1_GenesisState, 2) diff --git a/app/src/protobuf/cosmos/gov/v1/genesis.pb.h b/app/src/protobuf/cosmos/gov/v1/genesis.pb.h new file mode 100644 index 0000000..d37c7b6 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/genesis.pb.h @@ -0,0 +1,117 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1_COSMOS_GOV_V1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1_COSMOS_GOV_V1_GENESIS_PB_H_INCLUDED +#include + +#include "cosmos/gov/v1/gov.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the gov module's genesis state. */ +typedef struct _cosmos_gov_v1_GenesisState { + /* starting_proposal_id is the ID of the starting proposal. */ + uint64_t starting_proposal_id; + /* deposits defines all the deposits present at genesis. */ + pb_callback_t deposits; + /* votes defines all the votes present at genesis. */ + pb_callback_t votes; + /* proposals defines all the proposals present at genesis. */ + pb_callback_t proposals; + /* Deprecated: Prefer to use `params` instead. + deposit_params defines all the paramaters of related to deposit. */ + bool has_deposit_params; + cosmos_gov_v1_DepositParams deposit_params; + /* Deprecated: Prefer to use `params` instead. + voting_params defines all the paramaters of related to voting. */ + bool has_voting_params; + cosmos_gov_v1_VotingParams voting_params; + /* Deprecated: Prefer to use `params` instead. + tally_params defines all the paramaters of related to tally. */ + bool has_tally_params; + cosmos_gov_v1_TallyParams tally_params; + /* params defines all the paramaters of x/gov module. + + Since: cosmos-sdk 0.47 */ + bool has_params; + cosmos_gov_v1_Params params; + /* The constitution allows builders to lay a foundation and define purpose. + This is an immutable string set in genesis. + There are no amendments, to go outside of scope, just fork. + constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. + + Since: cosmos-sdk 0.48 */ + pb_callback_t constitution; +} cosmos_gov_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1_GenesisState_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_gov_v1_DepositParams_init_default, false, \ + cosmos_gov_v1_VotingParams_init_default, false, cosmos_gov_v1_TallyParams_init_default, false, \ + cosmos_gov_v1_Params_init_default, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_gov_v1_GenesisState_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_gov_v1_DepositParams_init_zero, false, \ + cosmos_gov_v1_VotingParams_init_zero, false, cosmos_gov_v1_TallyParams_init_zero, false, \ + cosmos_gov_v1_Params_init_zero, { \ + {NULL}, NULL \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1_GenesisState_starting_proposal_id_tag 1 +#define cosmos_gov_v1_GenesisState_deposits_tag 2 +#define cosmos_gov_v1_GenesisState_votes_tag 3 +#define cosmos_gov_v1_GenesisState_proposals_tag 4 +#define cosmos_gov_v1_GenesisState_deposit_params_tag 5 +#define cosmos_gov_v1_GenesisState_voting_params_tag 6 +#define cosmos_gov_v1_GenesisState_tally_params_tag 7 +#define cosmos_gov_v1_GenesisState_params_tag 8 +#define cosmos_gov_v1_GenesisState_constitution_tag 9 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, starting_proposal_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, deposits, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_params, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_params, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, tally_params, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 8) \ + X(a, CALLBACK, SINGULAR, STRING, constitution, 9) +#define cosmos_gov_v1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_GenesisState_DEFAULT NULL +#define cosmos_gov_v1_GenesisState_deposits_MSGTYPE cosmos_gov_v1_Deposit +#define cosmos_gov_v1_GenesisState_votes_MSGTYPE cosmos_gov_v1_Vote +#define cosmos_gov_v1_GenesisState_proposals_MSGTYPE cosmos_gov_v1_Proposal +#define cosmos_gov_v1_GenesisState_deposit_params_MSGTYPE cosmos_gov_v1_DepositParams +#define cosmos_gov_v1_GenesisState_voting_params_MSGTYPE cosmos_gov_v1_VotingParams +#define cosmos_gov_v1_GenesisState_tally_params_MSGTYPE cosmos_gov_v1_TallyParams +#define cosmos_gov_v1_GenesisState_params_MSGTYPE cosmos_gov_v1_Params + +extern const pb_msgdesc_t cosmos_gov_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1_GenesisState_fields &cosmos_gov_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1/gov.pb.c b/app/src/protobuf/cosmos/gov/v1/gov.pb.c new file mode 100644 index 0000000..8ac7c11 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/gov.pb.c @@ -0,0 +1,25 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1/gov.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1_WeightedVoteOption, cosmos_gov_v1_WeightedVoteOption, AUTO) + +PB_BIND(cosmos_gov_v1_Deposit, cosmos_gov_v1_Deposit, AUTO) + +PB_BIND(cosmos_gov_v1_Proposal, cosmos_gov_v1_Proposal, 2) + +PB_BIND(cosmos_gov_v1_TallyResult, cosmos_gov_v1_TallyResult, AUTO) + +PB_BIND(cosmos_gov_v1_Vote, cosmos_gov_v1_Vote, AUTO) + +PB_BIND(cosmos_gov_v1_DepositParams, cosmos_gov_v1_DepositParams, AUTO) + +PB_BIND(cosmos_gov_v1_VotingParams, cosmos_gov_v1_VotingParams, AUTO) + +PB_BIND(cosmos_gov_v1_TallyParams, cosmos_gov_v1_TallyParams, AUTO) + +PB_BIND(cosmos_gov_v1_Params, cosmos_gov_v1_Params, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1/gov.pb.h b/app/src/protobuf/cosmos/gov/v1/gov.pb.h new file mode 100644 index 0000000..f84bd47 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/gov.pb.h @@ -0,0 +1,513 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1_COSMOS_GOV_V1_GOV_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1_COSMOS_GOV_V1_GOV_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* VoteOption enumerates the valid vote options for a given governance proposal. */ +typedef enum _cosmos_gov_v1_VoteOption { + /* VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ + cosmos_gov_v1_VoteOption_VOTE_OPTION_UNSPECIFIED = 0, + /* VOTE_OPTION_YES defines a yes vote option. */ + cosmos_gov_v1_VoteOption_VOTE_OPTION_YES = 1, + /* VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + cosmos_gov_v1_VoteOption_VOTE_OPTION_ABSTAIN = 2, + /* VOTE_OPTION_NO defines a no vote option. */ + cosmos_gov_v1_VoteOption_VOTE_OPTION_NO = 3, + /* VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + cosmos_gov_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO = 4 +} cosmos_gov_v1_VoteOption; + +/* ProposalStatus enumerates the valid statuses of a proposal. */ +typedef enum _cosmos_gov_v1_ProposalStatus { + /* PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED = 0, + /* PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, + /* PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_VOTING_PERIOD = 2, + /* PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_PASSED = 3, + /* PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_REJECTED = 4, + /* PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. */ + cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_FAILED = 5 +} cosmos_gov_v1_ProposalStatus; + +/* Struct definitions */ +/* WeightedVoteOption defines a unit of vote for vote split. */ +typedef struct _cosmos_gov_v1_WeightedVoteOption { + /* option defines the valid vote options, it must not contain duplicate vote options. */ + cosmos_gov_v1_VoteOption option; + /* weight is the vote weight associated with the vote option. */ + pb_callback_t weight; +} cosmos_gov_v1_WeightedVoteOption; + +/* Deposit defines an amount deposited by an account address to an active + proposal. */ +typedef struct _cosmos_gov_v1_Deposit { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* amount to be deposited by depositor. */ + pb_callback_t amount; +} cosmos_gov_v1_Deposit; + +/* TallyResult defines a standard tally for a governance proposal. */ +typedef struct _cosmos_gov_v1_TallyResult { + /* yes_count is the number of yes votes on a proposal. */ + pb_callback_t yes_count; + /* abstain_count is the number of abstain votes on a proposal. */ + pb_callback_t abstain_count; + /* no_count is the number of no votes on a proposal. */ + pb_callback_t no_count; + /* no_with_veto_count is the number of no with veto votes on a proposal. */ + pb_callback_t no_with_veto_count; +} cosmos_gov_v1_TallyResult; + +/* Proposal defines the core field members of a governance proposal. */ +typedef struct _cosmos_gov_v1_Proposal { + /* id defines the unique id of the proposal. */ + uint64_t id; + /* messages are the arbitrary messages to be executed if the proposal passes. */ + pb_callback_t messages; + /* status defines the proposal status. */ + cosmos_gov_v1_ProposalStatus status; + /* final_tally_result is the final tally result of the proposal. When + querying a proposal via gRPC, this field is not populated until the + proposal's voting period has ended. */ + bool has_final_tally_result; + cosmos_gov_v1_TallyResult final_tally_result; + /* submit_time is the time of proposal submission. */ + bool has_submit_time; + google_protobuf_Timestamp submit_time; + /* deposit_end_time is the end time for deposition. */ + bool has_deposit_end_time; + google_protobuf_Timestamp deposit_end_time; + /* total_deposit is the total deposit on the proposal. */ + pb_callback_t total_deposit; + /* voting_start_time is the starting time to vote on a proposal. */ + bool has_voting_start_time; + google_protobuf_Timestamp voting_start_time; + /* voting_end_time is the end time of voting on a proposal. */ + bool has_voting_end_time; + google_protobuf_Timestamp voting_end_time; + /* metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/gov#proposal-3 */ + pb_callback_t metadata; + /* title is the title of the proposal + + Since: cosmos-sdk 0.47 */ + pb_callback_t title; + /* summary is a short summary of the proposal + + Since: cosmos-sdk 0.47 */ + pb_callback_t summary; + /* proposer is the address of the proposal sumbitter + + Since: cosmos-sdk 0.47 */ + pb_callback_t proposer; + /* expedited defines if the proposal is expedited + + Since: cosmos-sdk 0.48 */ + bool expedited; +} cosmos_gov_v1_Proposal; + +/* Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. */ +typedef struct _cosmos_gov_v1_Vote { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address of the proposal. */ + pb_callback_t voter; + /* options is the weighted vote options. */ + pb_callback_t options; + /* metadata is any arbitrary metadata to attached to the vote. + the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/gov#vote-5 */ + pb_callback_t metadata; +} cosmos_gov_v1_Vote; + +/* DepositParams defines the params for deposits on governance proposals. */ +typedef struct _cosmos_gov_v1_DepositParams { + /* Minimum deposit for a proposal to enter voting period. */ + pb_callback_t min_deposit; + /* Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + months. */ + bool has_max_deposit_period; + google_protobuf_Duration max_deposit_period; +} cosmos_gov_v1_DepositParams; + +/* VotingParams defines the params for voting on governance proposals. */ +typedef struct _cosmos_gov_v1_VotingParams { + /* Duration of the voting period. */ + bool has_voting_period; + google_protobuf_Duration voting_period; +} cosmos_gov_v1_VotingParams; + +/* TallyParams defines the params for tallying votes on governance proposals. */ +typedef struct _cosmos_gov_v1_TallyParams { + /* Minimum percentage of total stake needed to vote for a result to be + considered valid. */ + pb_callback_t quorum; + /* Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ + pb_callback_t threshold; + /* Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. */ + pb_callback_t veto_threshold; +} cosmos_gov_v1_TallyParams; + +/* Params defines the parameters for the x/gov module. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_gov_v1_Params { + /* Minimum deposit for a proposal to enter voting period. */ + pb_callback_t min_deposit; + /* Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + months. */ + bool has_max_deposit_period; + google_protobuf_Duration max_deposit_period; + /* Duration of the voting period. */ + bool has_voting_period; + google_protobuf_Duration voting_period; + /* Minimum percentage of total stake needed to vote for a result to be + considered valid. */ + pb_callback_t quorum; + /* Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ + pb_callback_t threshold; + /* Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. */ + pb_callback_t veto_threshold; + /* The ratio representing the proportion of the deposit value that must be paid at proposal submission. */ + pb_callback_t min_initial_deposit_ratio; + /* The cancel ratio which will not be returned back to the depositors when a proposal is cancelled. + + Since: cosmos-sdk 0.48 */ + pb_callback_t proposal_cancel_ratio; + /* The address which will receive (proposal_cancel_ratio * deposit) proposal deposits. + If empty, the (proposal_cancel_ratio * deposit) proposal deposits will be burned. + + Since: cosmos-sdk 0.48 */ + pb_callback_t proposal_cancel_dest; + /* Duration of the voting period of an expedited proposal. + + Since: cosmos-sdk 0.48 */ + bool has_expedited_voting_period; + google_protobuf_Duration expedited_voting_period; + /* Minimum proportion of Yes votes for proposal to pass. Default value: 0.67. + + Since: cosmos-sdk 0.48 */ + pb_callback_t expedited_threshold; + /* Minimum expedited deposit for a proposal to enter voting period. */ + pb_callback_t expedited_min_deposit; + /* burn deposits if a proposal does not meet quorum */ + bool burn_vote_quorum; + /* burn deposits if the proposal does not enter voting period */ + bool burn_proposal_deposit_prevote; + /* burn deposits if quorum with vote type no_veto is met */ + bool burn_vote_veto; +} cosmos_gov_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_gov_v1_VoteOption_MIN cosmos_gov_v1_VoteOption_VOTE_OPTION_UNSPECIFIED +#define _cosmos_gov_v1_VoteOption_MAX cosmos_gov_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO +#define _cosmos_gov_v1_VoteOption_ARRAYSIZE \ + ((cosmos_gov_v1_VoteOption)(cosmos_gov_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO + 1)) + +#define _cosmos_gov_v1_ProposalStatus_MIN cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED +#define _cosmos_gov_v1_ProposalStatus_MAX cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_FAILED +#define _cosmos_gov_v1_ProposalStatus_ARRAYSIZE \ + ((cosmos_gov_v1_ProposalStatus)(cosmos_gov_v1_ProposalStatus_PROPOSAL_STATUS_FAILED + 1)) + +#define cosmos_gov_v1_WeightedVoteOption_option_ENUMTYPE cosmos_gov_v1_VoteOption + +#define cosmos_gov_v1_Proposal_status_ENUMTYPE cosmos_gov_v1_ProposalStatus + +/* Initializer values for message structs */ +#define cosmos_gov_v1_WeightedVoteOption_init_default \ + { \ + _cosmos_gov_v1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Deposit_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Proposal_init_default \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1_ProposalStatus_MIN, false, cosmos_gov_v1_TallyResult_init_default, false, \ + google_protobuf_Timestamp_init_default, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, false, \ + google_protobuf_Timestamp_init_default, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_gov_v1_TallyResult_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Vote_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_DepositParams_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Duration_init_default } +#define cosmos_gov_v1_VotingParams_init_default \ + { false, google_protobuf_Duration_init_default } +#define cosmos_gov_v1_TallyParams_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Params_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Duration_init_default, false, google_protobuf_Duration_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_Duration_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0 \ + } +#define cosmos_gov_v1_WeightedVoteOption_init_zero \ + { \ + _cosmos_gov_v1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Deposit_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Proposal_init_zero \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1_ProposalStatus_MIN, false, cosmos_gov_v1_TallyResult_init_zero, false, \ + google_protobuf_Timestamp_init_zero, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, false, \ + google_protobuf_Timestamp_init_zero, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_gov_v1_TallyResult_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Vote_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_DepositParams_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Duration_init_zero } +#define cosmos_gov_v1_VotingParams_init_zero \ + { false, google_protobuf_Duration_init_zero } +#define cosmos_gov_v1_TallyParams_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_Params_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Duration_init_zero, false, google_protobuf_Duration_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_Duration_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0 \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1_WeightedVoteOption_option_tag 1 +#define cosmos_gov_v1_WeightedVoteOption_weight_tag 2 +#define cosmos_gov_v1_Deposit_proposal_id_tag 1 +#define cosmos_gov_v1_Deposit_depositor_tag 2 +#define cosmos_gov_v1_Deposit_amount_tag 3 +#define cosmos_gov_v1_TallyResult_yes_count_tag 1 +#define cosmos_gov_v1_TallyResult_abstain_count_tag 2 +#define cosmos_gov_v1_TallyResult_no_count_tag 3 +#define cosmos_gov_v1_TallyResult_no_with_veto_count_tag 4 +#define cosmos_gov_v1_Proposal_id_tag 1 +#define cosmos_gov_v1_Proposal_messages_tag 2 +#define cosmos_gov_v1_Proposal_status_tag 3 +#define cosmos_gov_v1_Proposal_final_tally_result_tag 4 +#define cosmos_gov_v1_Proposal_submit_time_tag 5 +#define cosmos_gov_v1_Proposal_deposit_end_time_tag 6 +#define cosmos_gov_v1_Proposal_total_deposit_tag 7 +#define cosmos_gov_v1_Proposal_voting_start_time_tag 8 +#define cosmos_gov_v1_Proposal_voting_end_time_tag 9 +#define cosmos_gov_v1_Proposal_metadata_tag 10 +#define cosmos_gov_v1_Proposal_title_tag 11 +#define cosmos_gov_v1_Proposal_summary_tag 12 +#define cosmos_gov_v1_Proposal_proposer_tag 13 +#define cosmos_gov_v1_Proposal_expedited_tag 14 +#define cosmos_gov_v1_Vote_proposal_id_tag 1 +#define cosmos_gov_v1_Vote_voter_tag 2 +#define cosmos_gov_v1_Vote_options_tag 4 +#define cosmos_gov_v1_Vote_metadata_tag 5 +#define cosmos_gov_v1_DepositParams_min_deposit_tag 1 +#define cosmos_gov_v1_DepositParams_max_deposit_period_tag 2 +#define cosmos_gov_v1_VotingParams_voting_period_tag 1 +#define cosmos_gov_v1_TallyParams_quorum_tag 1 +#define cosmos_gov_v1_TallyParams_threshold_tag 2 +#define cosmos_gov_v1_TallyParams_veto_threshold_tag 3 +#define cosmos_gov_v1_Params_min_deposit_tag 1 +#define cosmos_gov_v1_Params_max_deposit_period_tag 2 +#define cosmos_gov_v1_Params_voting_period_tag 3 +#define cosmos_gov_v1_Params_quorum_tag 4 +#define cosmos_gov_v1_Params_threshold_tag 5 +#define cosmos_gov_v1_Params_veto_threshold_tag 6 +#define cosmos_gov_v1_Params_min_initial_deposit_ratio_tag 7 +#define cosmos_gov_v1_Params_proposal_cancel_ratio_tag 8 +#define cosmos_gov_v1_Params_proposal_cancel_dest_tag 9 +#define cosmos_gov_v1_Params_expedited_voting_period_tag 10 +#define cosmos_gov_v1_Params_expedited_threshold_tag 11 +#define cosmos_gov_v1_Params_expedited_min_deposit_tag 12 +#define cosmos_gov_v1_Params_burn_vote_quorum_tag 13 +#define cosmos_gov_v1_Params_burn_proposal_deposit_prevote_tag 14 +#define cosmos_gov_v1_Params_burn_vote_veto_tag 15 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1_WeightedVoteOption_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, option, 1) \ + X(a, CALLBACK, SINGULAR, STRING, weight, 2) +#define cosmos_gov_v1_WeightedVoteOption_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_WeightedVoteOption_DEFAULT NULL + +#define cosmos_gov_v1_Deposit_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_gov_v1_Deposit_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_Deposit_DEFAULT NULL +#define cosmos_gov_v1_Deposit_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1_Proposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, messages, 2) \ + X(a, STATIC, SINGULAR, UENUM, status, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, final_tally_result, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, submit_time, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_end_time, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, total_deposit, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_start_time, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_end_time, 9) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 10) \ + X(a, CALLBACK, SINGULAR, STRING, title, 11) \ + X(a, CALLBACK, SINGULAR, STRING, summary, 12) \ + X(a, CALLBACK, SINGULAR, STRING, proposer, 13) \ + X(a, STATIC, SINGULAR, BOOL, expedited, 14) +#define cosmos_gov_v1_Proposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_Proposal_DEFAULT NULL +#define cosmos_gov_v1_Proposal_messages_MSGTYPE google_protobuf_Any +#define cosmos_gov_v1_Proposal_final_tally_result_MSGTYPE cosmos_gov_v1_TallyResult +#define cosmos_gov_v1_Proposal_submit_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1_Proposal_deposit_end_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1_Proposal_total_deposit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_gov_v1_Proposal_voting_start_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1_Proposal_voting_end_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_gov_v1_TallyResult_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, yes_count, 1) \ + X(a, CALLBACK, SINGULAR, STRING, abstain_count, 2) \ + X(a, CALLBACK, SINGULAR, STRING, no_count, 3) \ + X(a, CALLBACK, SINGULAR, STRING, no_with_veto_count, 4) +#define cosmos_gov_v1_TallyResult_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_TallyResult_DEFAULT NULL + +#define cosmos_gov_v1_Vote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, options, 4) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 5) +#define cosmos_gov_v1_Vote_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_Vote_DEFAULT NULL +#define cosmos_gov_v1_Vote_options_MSGTYPE cosmos_gov_v1_WeightedVoteOption + +#define cosmos_gov_v1_DepositParams_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, min_deposit, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_deposit_period, 2) +#define cosmos_gov_v1_DepositParams_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_DepositParams_DEFAULT NULL +#define cosmos_gov_v1_DepositParams_min_deposit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_gov_v1_DepositParams_max_deposit_period_MSGTYPE google_protobuf_Duration + +#define cosmos_gov_v1_VotingParams_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, voting_period, 1) +#define cosmos_gov_v1_VotingParams_CALLBACK NULL +#define cosmos_gov_v1_VotingParams_DEFAULT NULL +#define cosmos_gov_v1_VotingParams_voting_period_MSGTYPE google_protobuf_Duration + +#define cosmos_gov_v1_TallyParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, quorum, 1) \ + X(a, CALLBACK, SINGULAR, STRING, threshold, 2) \ + X(a, CALLBACK, SINGULAR, STRING, veto_threshold, 3) +#define cosmos_gov_v1_TallyParams_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_TallyParams_DEFAULT NULL + +#define cosmos_gov_v1_Params_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, min_deposit, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_deposit_period, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_period, 3) \ + X(a, CALLBACK, SINGULAR, STRING, quorum, 4) \ + X(a, CALLBACK, SINGULAR, STRING, threshold, 5) \ + X(a, CALLBACK, SINGULAR, STRING, veto_threshold, 6) \ + X(a, CALLBACK, SINGULAR, STRING, min_initial_deposit_ratio, 7) \ + X(a, CALLBACK, SINGULAR, STRING, proposal_cancel_ratio, 8) \ + X(a, CALLBACK, SINGULAR, STRING, proposal_cancel_dest, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, expedited_voting_period, 10) \ + X(a, CALLBACK, SINGULAR, STRING, expedited_threshold, 11) \ + X(a, CALLBACK, REPEATED, MESSAGE, expedited_min_deposit, 12) \ + X(a, STATIC, SINGULAR, BOOL, burn_vote_quorum, 13) \ + X(a, STATIC, SINGULAR, BOOL, burn_proposal_deposit_prevote, 14) \ + X(a, STATIC, SINGULAR, BOOL, burn_vote_veto, 15) +#define cosmos_gov_v1_Params_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_Params_DEFAULT NULL +#define cosmos_gov_v1_Params_min_deposit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_gov_v1_Params_max_deposit_period_MSGTYPE google_protobuf_Duration +#define cosmos_gov_v1_Params_voting_period_MSGTYPE google_protobuf_Duration +#define cosmos_gov_v1_Params_expedited_voting_period_MSGTYPE google_protobuf_Duration +#define cosmos_gov_v1_Params_expedited_min_deposit_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t cosmos_gov_v1_WeightedVoteOption_msg; +extern const pb_msgdesc_t cosmos_gov_v1_Deposit_msg; +extern const pb_msgdesc_t cosmos_gov_v1_Proposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1_TallyResult_msg; +extern const pb_msgdesc_t cosmos_gov_v1_Vote_msg; +extern const pb_msgdesc_t cosmos_gov_v1_DepositParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1_VotingParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1_TallyParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1_WeightedVoteOption_fields &cosmos_gov_v1_WeightedVoteOption_msg +#define cosmos_gov_v1_Deposit_fields &cosmos_gov_v1_Deposit_msg +#define cosmos_gov_v1_Proposal_fields &cosmos_gov_v1_Proposal_msg +#define cosmos_gov_v1_TallyResult_fields &cosmos_gov_v1_TallyResult_msg +#define cosmos_gov_v1_Vote_fields &cosmos_gov_v1_Vote_msg +#define cosmos_gov_v1_DepositParams_fields &cosmos_gov_v1_DepositParams_msg +#define cosmos_gov_v1_VotingParams_fields &cosmos_gov_v1_VotingParams_msg +#define cosmos_gov_v1_TallyParams_fields &cosmos_gov_v1_TallyParams_msg +#define cosmos_gov_v1_Params_fields &cosmos_gov_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1_WeightedVoteOption_size depends on runtime parameters */ +/* cosmos_gov_v1_Deposit_size depends on runtime parameters */ +/* cosmos_gov_v1_Proposal_size depends on runtime parameters */ +/* cosmos_gov_v1_TallyResult_size depends on runtime parameters */ +/* cosmos_gov_v1_Vote_size depends on runtime parameters */ +/* cosmos_gov_v1_DepositParams_size depends on runtime parameters */ +/* cosmos_gov_v1_TallyParams_size depends on runtime parameters */ +/* cosmos_gov_v1_Params_size depends on runtime parameters */ +#define COSMOS_GOV_V1_COSMOS_GOV_V1_GOV_PB_H_MAX_SIZE cosmos_gov_v1_VotingParams_size +#define cosmos_gov_v1_VotingParams_size 24 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1/query.pb.c b/app/src/protobuf/cosmos/gov/v1/query.pb.c new file mode 100644 index 0000000..4260243 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/query.pb.c @@ -0,0 +1,43 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1_QueryConstitutionRequest, cosmos_gov_v1_QueryConstitutionRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryConstitutionResponse, cosmos_gov_v1_QueryConstitutionResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryProposalRequest, cosmos_gov_v1_QueryProposalRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryProposalResponse, cosmos_gov_v1_QueryProposalResponse, 2) + +PB_BIND(cosmos_gov_v1_QueryProposalsRequest, cosmos_gov_v1_QueryProposalsRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryProposalsResponse, cosmos_gov_v1_QueryProposalsResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryVoteRequest, cosmos_gov_v1_QueryVoteRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryVoteResponse, cosmos_gov_v1_QueryVoteResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryVotesRequest, cosmos_gov_v1_QueryVotesRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryVotesResponse, cosmos_gov_v1_QueryVotesResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryParamsRequest, cosmos_gov_v1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryParamsResponse, cosmos_gov_v1_QueryParamsResponse, 2) + +PB_BIND(cosmos_gov_v1_QueryDepositRequest, cosmos_gov_v1_QueryDepositRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryDepositResponse, cosmos_gov_v1_QueryDepositResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryDepositsRequest, cosmos_gov_v1_QueryDepositsRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryDepositsResponse, cosmos_gov_v1_QueryDepositsResponse, AUTO) + +PB_BIND(cosmos_gov_v1_QueryTallyResultRequest, cosmos_gov_v1_QueryTallyResultRequest, AUTO) + +PB_BIND(cosmos_gov_v1_QueryTallyResultResponse, cosmos_gov_v1_QueryTallyResultResponse, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1/query.pb.h b/app/src/protobuf/cosmos/gov/v1/query.pb.h new file mode 100644 index 0000000..50a1d23 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/query.pb.h @@ -0,0 +1,500 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1_COSMOS_GOV_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1_COSMOS_GOV_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/gov/v1/gov.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryConstitutionRequest is the request type for the Query/Constitution RPC method */ +typedef struct _cosmos_gov_v1_QueryConstitutionRequest { + char dummy_field; +} cosmos_gov_v1_QueryConstitutionRequest; + +/* QueryConstitutionResponse is the response type for the Query/Constitution RPC method */ +typedef struct _cosmos_gov_v1_QueryConstitutionResponse { + pb_callback_t constitution; +} cosmos_gov_v1_QueryConstitutionResponse; + +/* QueryProposalRequest is the request type for the Query/Proposal RPC method. */ +typedef struct _cosmos_gov_v1_QueryProposalRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1_QueryProposalRequest; + +/* QueryProposalResponse is the response type for the Query/Proposal RPC method. */ +typedef struct _cosmos_gov_v1_QueryProposalResponse { + /* proposal is the requested governance proposal. */ + bool has_proposal; + cosmos_gov_v1_Proposal proposal; +} cosmos_gov_v1_QueryProposalResponse; + +/* QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ +typedef struct _cosmos_gov_v1_QueryProposalsRequest { + /* proposal_status defines the status of the proposals. */ + cosmos_gov_v1_ProposalStatus proposal_status; + /* voter defines the voter address for the proposals. */ + pb_callback_t voter; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1_QueryProposalsRequest; + +/* QueryProposalsResponse is the response type for the Query/Proposals RPC + method. */ +typedef struct _cosmos_gov_v1_QueryProposalsResponse { + /* proposals defines all the requested governance proposals. */ + pb_callback_t proposals; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1_QueryProposalsResponse; + +/* QueryVoteRequest is the request type for the Query/Vote RPC method. */ +typedef struct _cosmos_gov_v1_QueryVoteRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter defines the voter address for the proposals. */ + pb_callback_t voter; +} cosmos_gov_v1_QueryVoteRequest; + +/* QueryVoteResponse is the response type for the Query/Vote RPC method. */ +typedef struct _cosmos_gov_v1_QueryVoteResponse { + /* vote defines the queried vote. */ + bool has_vote; + cosmos_gov_v1_Vote vote; +} cosmos_gov_v1_QueryVoteResponse; + +/* QueryVotesRequest is the request type for the Query/Votes RPC method. */ +typedef struct _cosmos_gov_v1_QueryVotesRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1_QueryVotesRequest; + +/* QueryVotesResponse is the response type for the Query/Votes RPC method. */ +typedef struct _cosmos_gov_v1_QueryVotesResponse { + /* votes defines the queried votes. */ + pb_callback_t votes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1_QueryVotesResponse; + +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _cosmos_gov_v1_QueryParamsRequest { + /* params_type defines which parameters to query for, can be one of "voting", + "tallying" or "deposit". */ + pb_callback_t params_type; +} cosmos_gov_v1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _cosmos_gov_v1_QueryParamsResponse { + /* Deprecated: Prefer to use `params` instead. + voting_params defines the parameters related to voting. */ + bool has_voting_params; + cosmos_gov_v1_VotingParams voting_params; + /* Deprecated: Prefer to use `params` instead. + deposit_params defines the parameters related to deposit. */ + bool has_deposit_params; + cosmos_gov_v1_DepositParams deposit_params; + /* Deprecated: Prefer to use `params` instead. + tally_params defines the parameters related to tally. */ + bool has_tally_params; + cosmos_gov_v1_TallyParams tally_params; + /* params defines all the paramaters of x/gov module. + + Since: cosmos-sdk 0.47 */ + bool has_params; + cosmos_gov_v1_Params params; +} cosmos_gov_v1_QueryParamsResponse; + +/* QueryDepositRequest is the request type for the Query/Deposit RPC method. */ +typedef struct _cosmos_gov_v1_QueryDepositRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; +} cosmos_gov_v1_QueryDepositRequest; + +/* QueryDepositResponse is the response type for the Query/Deposit RPC method. */ +typedef struct _cosmos_gov_v1_QueryDepositResponse { + /* deposit defines the requested deposit. */ + bool has_deposit; + cosmos_gov_v1_Deposit deposit; +} cosmos_gov_v1_QueryDepositResponse; + +/* QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ +typedef struct _cosmos_gov_v1_QueryDepositsRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1_QueryDepositsRequest; + +/* QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ +typedef struct _cosmos_gov_v1_QueryDepositsResponse { + /* deposits defines the requested deposits. */ + pb_callback_t deposits; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1_QueryDepositsResponse; + +/* QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ +typedef struct _cosmos_gov_v1_QueryTallyResultRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1_QueryTallyResultRequest; + +/* QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ +typedef struct _cosmos_gov_v1_QueryTallyResultResponse { + /* tally defines the requested tally. */ + bool has_tally; + cosmos_gov_v1_TallyResult tally; +} cosmos_gov_v1_QueryTallyResultResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1_QueryConstitutionRequest_init_default \ + { 0 } +#define cosmos_gov_v1_QueryConstitutionResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryProposalRequest_init_default \ + { 0 } +#define cosmos_gov_v1_QueryProposalResponse_init_default \ + { false, cosmos_gov_v1_Proposal_init_default } +#define cosmos_gov_v1_QueryProposalsRequest_init_default \ + { \ + _cosmos_gov_v1_ProposalStatus_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_default \ + } +#define cosmos_gov_v1_QueryProposalsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1_QueryVoteRequest_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryVoteResponse_init_default \ + { false, cosmos_gov_v1_Vote_init_default } +#define cosmos_gov_v1_QueryVotesRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_gov_v1_QueryVotesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1_QueryParamsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryParamsResponse_init_default \ + { \ + false, cosmos_gov_v1_VotingParams_init_default, false, cosmos_gov_v1_DepositParams_init_default, false, \ + cosmos_gov_v1_TallyParams_init_default, false, cosmos_gov_v1_Params_init_default \ + } +#define cosmos_gov_v1_QueryDepositRequest_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryDepositResponse_init_default \ + { false, cosmos_gov_v1_Deposit_init_default } +#define cosmos_gov_v1_QueryDepositsRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_gov_v1_QueryDepositsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1_QueryTallyResultRequest_init_default \ + { 0 } +#define cosmos_gov_v1_QueryTallyResultResponse_init_default \ + { false, cosmos_gov_v1_TallyResult_init_default } +#define cosmos_gov_v1_QueryConstitutionRequest_init_zero \ + { 0 } +#define cosmos_gov_v1_QueryConstitutionResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryProposalRequest_init_zero \ + { 0 } +#define cosmos_gov_v1_QueryProposalResponse_init_zero \ + { false, cosmos_gov_v1_Proposal_init_zero } +#define cosmos_gov_v1_QueryProposalsRequest_init_zero \ + { \ + _cosmos_gov_v1_ProposalStatus_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_zero \ + } +#define cosmos_gov_v1_QueryProposalsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1_QueryVoteRequest_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryVoteResponse_init_zero \ + { false, cosmos_gov_v1_Vote_init_zero } +#define cosmos_gov_v1_QueryVotesRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_gov_v1_QueryVotesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1_QueryParamsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryParamsResponse_init_zero \ + { \ + false, cosmos_gov_v1_VotingParams_init_zero, false, cosmos_gov_v1_DepositParams_init_zero, false, \ + cosmos_gov_v1_TallyParams_init_zero, false, cosmos_gov_v1_Params_init_zero \ + } +#define cosmos_gov_v1_QueryDepositRequest_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_QueryDepositResponse_init_zero \ + { false, cosmos_gov_v1_Deposit_init_zero } +#define cosmos_gov_v1_QueryDepositsRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_gov_v1_QueryDepositsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1_QueryTallyResultRequest_init_zero \ + { 0 } +#define cosmos_gov_v1_QueryTallyResultResponse_init_zero \ + { false, cosmos_gov_v1_TallyResult_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1_QueryConstitutionResponse_constitution_tag 1 +#define cosmos_gov_v1_QueryProposalRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryProposalResponse_proposal_tag 1 +#define cosmos_gov_v1_QueryProposalsRequest_proposal_status_tag 1 +#define cosmos_gov_v1_QueryProposalsRequest_voter_tag 2 +#define cosmos_gov_v1_QueryProposalsRequest_depositor_tag 3 +#define cosmos_gov_v1_QueryProposalsRequest_pagination_tag 4 +#define cosmos_gov_v1_QueryProposalsResponse_proposals_tag 1 +#define cosmos_gov_v1_QueryProposalsResponse_pagination_tag 2 +#define cosmos_gov_v1_QueryVoteRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryVoteRequest_voter_tag 2 +#define cosmos_gov_v1_QueryVoteResponse_vote_tag 1 +#define cosmos_gov_v1_QueryVotesRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryVotesRequest_pagination_tag 2 +#define cosmos_gov_v1_QueryVotesResponse_votes_tag 1 +#define cosmos_gov_v1_QueryVotesResponse_pagination_tag 2 +#define cosmos_gov_v1_QueryParamsRequest_params_type_tag 1 +#define cosmos_gov_v1_QueryParamsResponse_voting_params_tag 1 +#define cosmos_gov_v1_QueryParamsResponse_deposit_params_tag 2 +#define cosmos_gov_v1_QueryParamsResponse_tally_params_tag 3 +#define cosmos_gov_v1_QueryParamsResponse_params_tag 4 +#define cosmos_gov_v1_QueryDepositRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryDepositRequest_depositor_tag 2 +#define cosmos_gov_v1_QueryDepositResponse_deposit_tag 1 +#define cosmos_gov_v1_QueryDepositsRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryDepositsRequest_pagination_tag 2 +#define cosmos_gov_v1_QueryDepositsResponse_deposits_tag 1 +#define cosmos_gov_v1_QueryDepositsResponse_pagination_tag 2 +#define cosmos_gov_v1_QueryTallyResultRequest_proposal_id_tag 1 +#define cosmos_gov_v1_QueryTallyResultResponse_tally_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1_QueryConstitutionRequest_FIELDLIST(X, a) + +#define cosmos_gov_v1_QueryConstitutionRequest_CALLBACK NULL +#define cosmos_gov_v1_QueryConstitutionRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryConstitutionResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, constitution, 1) +#define cosmos_gov_v1_QueryConstitutionResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryConstitutionResponse_DEFAULT NULL + +#define cosmos_gov_v1_QueryProposalRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1_QueryProposalRequest_CALLBACK NULL +#define cosmos_gov_v1_QueryProposalRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryProposalResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define cosmos_gov_v1_QueryProposalResponse_CALLBACK NULL +#define cosmos_gov_v1_QueryProposalResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryProposalResponse_proposal_MSGTYPE cosmos_gov_v1_Proposal + +#define cosmos_gov_v1_QueryProposalsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, proposal_status, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_gov_v1_QueryProposalsRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryProposalsRequest_DEFAULT NULL +#define cosmos_gov_v1_QueryProposalsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1_QueryProposalsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1_QueryProposalsResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryProposalsResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryProposalsResponse_proposals_MSGTYPE cosmos_gov_v1_Proposal +#define cosmos_gov_v1_QueryProposalsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1_QueryVoteRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) +#define cosmos_gov_v1_QueryVoteRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryVoteRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryVoteResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) +#define cosmos_gov_v1_QueryVoteResponse_CALLBACK NULL +#define cosmos_gov_v1_QueryVoteResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryVoteResponse_vote_MSGTYPE cosmos_gov_v1_Vote + +#define cosmos_gov_v1_QueryVotesRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1_QueryVotesRequest_CALLBACK NULL +#define cosmos_gov_v1_QueryVotesRequest_DEFAULT NULL +#define cosmos_gov_v1_QueryVotesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1_QueryVotesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1_QueryVotesResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryVotesResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryVotesResponse_votes_MSGTYPE cosmos_gov_v1_Vote +#define cosmos_gov_v1_QueryVotesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1_QueryParamsRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, params_type, 1) +#define cosmos_gov_v1_QueryParamsRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryParamsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_params, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, tally_params, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 4) +#define cosmos_gov_v1_QueryParamsResponse_CALLBACK NULL +#define cosmos_gov_v1_QueryParamsResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryParamsResponse_voting_params_MSGTYPE cosmos_gov_v1_VotingParams +#define cosmos_gov_v1_QueryParamsResponse_deposit_params_MSGTYPE cosmos_gov_v1_DepositParams +#define cosmos_gov_v1_QueryParamsResponse_tally_params_MSGTYPE cosmos_gov_v1_TallyParams +#define cosmos_gov_v1_QueryParamsResponse_params_MSGTYPE cosmos_gov_v1_Params + +#define cosmos_gov_v1_QueryDepositRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) +#define cosmos_gov_v1_QueryDepositRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryDepositRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryDepositResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, deposit, 1) +#define cosmos_gov_v1_QueryDepositResponse_CALLBACK NULL +#define cosmos_gov_v1_QueryDepositResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryDepositResponse_deposit_MSGTYPE cosmos_gov_v1_Deposit + +#define cosmos_gov_v1_QueryDepositsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1_QueryDepositsRequest_CALLBACK NULL +#define cosmos_gov_v1_QueryDepositsRequest_DEFAULT NULL +#define cosmos_gov_v1_QueryDepositsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1_QueryDepositsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, deposits, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1_QueryDepositsResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_QueryDepositsResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryDepositsResponse_deposits_MSGTYPE cosmos_gov_v1_Deposit +#define cosmos_gov_v1_QueryDepositsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1_QueryTallyResultRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1_QueryTallyResultRequest_CALLBACK NULL +#define cosmos_gov_v1_QueryTallyResultRequest_DEFAULT NULL + +#define cosmos_gov_v1_QueryTallyResultResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tally, 1) +#define cosmos_gov_v1_QueryTallyResultResponse_CALLBACK NULL +#define cosmos_gov_v1_QueryTallyResultResponse_DEFAULT NULL +#define cosmos_gov_v1_QueryTallyResultResponse_tally_MSGTYPE cosmos_gov_v1_TallyResult + +extern const pb_msgdesc_t cosmos_gov_v1_QueryConstitutionRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryConstitutionResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryProposalRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryProposalResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryProposalsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryProposalsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryVoteRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryVoteResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryVotesRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryVotesResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryDepositRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryDepositResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryDepositsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryDepositsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryTallyResultRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1_QueryTallyResultResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1_QueryConstitutionRequest_fields &cosmos_gov_v1_QueryConstitutionRequest_msg +#define cosmos_gov_v1_QueryConstitutionResponse_fields &cosmos_gov_v1_QueryConstitutionResponse_msg +#define cosmos_gov_v1_QueryProposalRequest_fields &cosmos_gov_v1_QueryProposalRequest_msg +#define cosmos_gov_v1_QueryProposalResponse_fields &cosmos_gov_v1_QueryProposalResponse_msg +#define cosmos_gov_v1_QueryProposalsRequest_fields &cosmos_gov_v1_QueryProposalsRequest_msg +#define cosmos_gov_v1_QueryProposalsResponse_fields &cosmos_gov_v1_QueryProposalsResponse_msg +#define cosmos_gov_v1_QueryVoteRequest_fields &cosmos_gov_v1_QueryVoteRequest_msg +#define cosmos_gov_v1_QueryVoteResponse_fields &cosmos_gov_v1_QueryVoteResponse_msg +#define cosmos_gov_v1_QueryVotesRequest_fields &cosmos_gov_v1_QueryVotesRequest_msg +#define cosmos_gov_v1_QueryVotesResponse_fields &cosmos_gov_v1_QueryVotesResponse_msg +#define cosmos_gov_v1_QueryParamsRequest_fields &cosmos_gov_v1_QueryParamsRequest_msg +#define cosmos_gov_v1_QueryParamsResponse_fields &cosmos_gov_v1_QueryParamsResponse_msg +#define cosmos_gov_v1_QueryDepositRequest_fields &cosmos_gov_v1_QueryDepositRequest_msg +#define cosmos_gov_v1_QueryDepositResponse_fields &cosmos_gov_v1_QueryDepositResponse_msg +#define cosmos_gov_v1_QueryDepositsRequest_fields &cosmos_gov_v1_QueryDepositsRequest_msg +#define cosmos_gov_v1_QueryDepositsResponse_fields &cosmos_gov_v1_QueryDepositsResponse_msg +#define cosmos_gov_v1_QueryTallyResultRequest_fields &cosmos_gov_v1_QueryTallyResultRequest_msg +#define cosmos_gov_v1_QueryTallyResultResponse_fields &cosmos_gov_v1_QueryTallyResultResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1_QueryConstitutionResponse_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryProposalsRequest_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryProposalsResponse_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryVoteRequest_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryVotesResponse_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryParamsRequest_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryDepositRequest_size depends on runtime parameters */ +/* cosmos_gov_v1_QueryDepositsResponse_size depends on runtime parameters */ +#define cosmos_gov_v1_QueryConstitutionRequest_size 0 +#define cosmos_gov_v1_QueryProposalRequest_size 11 +#define cosmos_gov_v1_QueryTallyResultRequest_size 11 +#if defined(cosmos_gov_v1_Proposal_size) +#define cosmos_gov_v1_QueryProposalResponse_size (6 + cosmos_gov_v1_Proposal_size) +#endif +#if defined(cosmos_gov_v1_Vote_size) +#define cosmos_gov_v1_QueryVoteResponse_size (6 + cosmos_gov_v1_Vote_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_gov_v1_QueryDepositsRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_gov_v1_QueryVotesRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(cosmos_gov_v1_DepositParams_size) && defined(cosmos_gov_v1_TallyParams_size) && \ + defined(cosmos_gov_v1_Params_size) +#define COSMOS_GOV_V1_COSMOS_GOV_V1_QUERY_PB_H_MAX_SIZE cosmos_gov_v1_QueryParamsResponse_size +#define cosmos_gov_v1_QueryParamsResponse_size \ + (44 + cosmos_gov_v1_DepositParams_size + cosmos_gov_v1_TallyParams_size + cosmos_gov_v1_Params_size) +#endif +#if defined(cosmos_gov_v1_Deposit_size) +#define cosmos_gov_v1_QueryDepositResponse_size (6 + cosmos_gov_v1_Deposit_size) +#endif +#if defined(cosmos_gov_v1_TallyResult_size) +#define cosmos_gov_v1_QueryTallyResultResponse_size (6 + cosmos_gov_v1_TallyResult_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1/tx.pb.c b/app/src/protobuf/cosmos/gov/v1/tx.pb.c new file mode 100644 index 0000000..9ef2973 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/tx.pb.c @@ -0,0 +1,35 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1_MsgSubmitProposal, cosmos_gov_v1_MsgSubmitProposal, AUTO) + +PB_BIND(cosmos_gov_v1_MsgSubmitProposalResponse, cosmos_gov_v1_MsgSubmitProposalResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgExecLegacyContent, cosmos_gov_v1_MsgExecLegacyContent, AUTO) + +PB_BIND(cosmos_gov_v1_MsgExecLegacyContentResponse, cosmos_gov_v1_MsgExecLegacyContentResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgVote, cosmos_gov_v1_MsgVote, AUTO) + +PB_BIND(cosmos_gov_v1_MsgVoteResponse, cosmos_gov_v1_MsgVoteResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgVoteWeighted, cosmos_gov_v1_MsgVoteWeighted, AUTO) + +PB_BIND(cosmos_gov_v1_MsgVoteWeightedResponse, cosmos_gov_v1_MsgVoteWeightedResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgDeposit, cosmos_gov_v1_MsgDeposit, AUTO) + +PB_BIND(cosmos_gov_v1_MsgDepositResponse, cosmos_gov_v1_MsgDepositResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgUpdateParams, cosmos_gov_v1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_gov_v1_MsgUpdateParamsResponse, cosmos_gov_v1_MsgUpdateParamsResponse, AUTO) + +PB_BIND(cosmos_gov_v1_MsgCancelProposal, cosmos_gov_v1_MsgCancelProposal, AUTO) + +PB_BIND(cosmos_gov_v1_MsgCancelProposalResponse, cosmos_gov_v1_MsgCancelProposalResponse, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1/tx.pb.h b/app/src/protobuf/cosmos/gov/v1/tx.pb.h new file mode 100644 index 0000000..b2dd8c5 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1/tx.pb.h @@ -0,0 +1,419 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1_COSMOS_GOV_V1_TX_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1_COSMOS_GOV_V1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/gov/v1/gov.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary + proposal Content. */ +typedef struct _cosmos_gov_v1_MsgSubmitProposal { + /* messages are the arbitrary messages to be executed if proposal passes. */ + pb_callback_t messages; + /* initial_deposit is the deposit value that must be paid at proposal submission. */ + pb_callback_t initial_deposit; + /* proposer is the account address of the proposer. */ + pb_callback_t proposer; + /* metadata is any arbitrary metadata attached to the proposal. */ + pb_callback_t metadata; + /* title is the title of the proposal. + + Since: cosmos-sdk 0.47 */ + pb_callback_t title; + /* summary is the summary of the proposal + + Since: cosmos-sdk 0.47 */ + pb_callback_t summary; + /* expedided defines if the proposal is expedited or not + + Since: cosmos-sdk 0.48 */ + bool expedited; +} cosmos_gov_v1_MsgSubmitProposal; + +/* MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ +typedef struct _cosmos_gov_v1_MsgSubmitProposalResponse { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1_MsgSubmitProposalResponse; + +/* MsgExecLegacyContent is used to wrap the legacy content field into a message. + This ensures backwards compatibility with v1beta1.MsgSubmitProposal. */ +typedef struct _cosmos_gov_v1_MsgExecLegacyContent { + /* content is the proposal's content. */ + bool has_content; + google_protobuf_Any content; + /* authority must be the gov module address. */ + pb_callback_t authority; +} cosmos_gov_v1_MsgExecLegacyContent; + +/* MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. */ +typedef struct _cosmos_gov_v1_MsgExecLegacyContentResponse { + char dummy_field; +} cosmos_gov_v1_MsgExecLegacyContentResponse; + +/* MsgVote defines a message to cast a vote. */ +typedef struct _cosmos_gov_v1_MsgVote { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address for the proposal. */ + pb_callback_t voter; + /* option defines the vote option. */ + cosmos_gov_v1_VoteOption option; + /* metadata is any arbitrary metadata attached to the Vote. */ + pb_callback_t metadata; +} cosmos_gov_v1_MsgVote; + +/* MsgVoteResponse defines the Msg/Vote response type. */ +typedef struct _cosmos_gov_v1_MsgVoteResponse { + char dummy_field; +} cosmos_gov_v1_MsgVoteResponse; + +/* MsgVoteWeighted defines a message to cast a vote. */ +typedef struct _cosmos_gov_v1_MsgVoteWeighted { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address for the proposal. */ + pb_callback_t voter; + /* options defines the weighted vote options. */ + pb_callback_t options; + /* metadata is any arbitrary metadata attached to the VoteWeighted. */ + pb_callback_t metadata; +} cosmos_gov_v1_MsgVoteWeighted; + +/* MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. */ +typedef struct _cosmos_gov_v1_MsgVoteWeightedResponse { + char dummy_field; +} cosmos_gov_v1_MsgVoteWeightedResponse; + +/* MsgDeposit defines a message to submit a deposit to an existing proposal. */ +typedef struct _cosmos_gov_v1_MsgDeposit { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* amount to be deposited by depositor. */ + pb_callback_t amount; +} cosmos_gov_v1_MsgDeposit; + +/* MsgDepositResponse defines the Msg/Deposit response type. */ +typedef struct _cosmos_gov_v1_MsgDepositResponse { + char dummy_field; +} cosmos_gov_v1_MsgDepositResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_gov_v1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/gov parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_gov_v1_Params params; +} cosmos_gov_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_gov_v1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_gov_v1_MsgUpdateParamsResponse; + +/* MsgCancelProposal is the Msg/CancelProposal request type. + + Since: cosmos-sdk 0.48 */ +typedef struct _cosmos_gov_v1_MsgCancelProposal { + uint64_t proposal_id; + pb_callback_t proposer; +} cosmos_gov_v1_MsgCancelProposal; + +/* MsgCancelProposalResponse defines the response structure for executing a + MsgCancelProposal message. + + Since: cosmos-sdk 0.48 */ +typedef struct _cosmos_gov_v1_MsgCancelProposalResponse { + uint64_t proposal_id; + /* canceled_time is the time when proposal is canceled. */ + bool has_canceled_time; + google_protobuf_Timestamp canceled_time; + /* canceled_height defines the block height at which the proposal is canceled. */ + uint64_t canceled_height; +} cosmos_gov_v1_MsgCancelProposalResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1_MsgSubmitProposal_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_gov_v1_MsgSubmitProposalResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgExecLegacyContent_init_default \ + { \ + false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgExecLegacyContentResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgVote_init_default \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgVoteResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgVoteWeighted_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgVoteWeightedResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgDeposit_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgDepositResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_gov_v1_Params_init_default } +#define cosmos_gov_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_gov_v1_MsgCancelProposal_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgCancelProposalResponse_init_default \ + { 0, false, google_protobuf_Timestamp_init_default, 0 } +#define cosmos_gov_v1_MsgSubmitProposal_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_gov_v1_MsgSubmitProposalResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgExecLegacyContent_init_zero \ + { \ + false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgExecLegacyContentResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgVote_init_zero \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgVoteResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgVoteWeighted_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgVoteWeightedResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgDeposit_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgDepositResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_gov_v1_Params_init_zero } +#define cosmos_gov_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } +#define cosmos_gov_v1_MsgCancelProposal_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1_MsgCancelProposalResponse_init_zero \ + { 0, false, google_protobuf_Timestamp_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1_MsgSubmitProposal_messages_tag 1 +#define cosmos_gov_v1_MsgSubmitProposal_initial_deposit_tag 2 +#define cosmos_gov_v1_MsgSubmitProposal_proposer_tag 3 +#define cosmos_gov_v1_MsgSubmitProposal_metadata_tag 4 +#define cosmos_gov_v1_MsgSubmitProposal_title_tag 5 +#define cosmos_gov_v1_MsgSubmitProposal_summary_tag 6 +#define cosmos_gov_v1_MsgSubmitProposal_expedited_tag 7 +#define cosmos_gov_v1_MsgSubmitProposalResponse_proposal_id_tag 1 +#define cosmos_gov_v1_MsgExecLegacyContent_content_tag 1 +#define cosmos_gov_v1_MsgExecLegacyContent_authority_tag 2 +#define cosmos_gov_v1_MsgVote_proposal_id_tag 1 +#define cosmos_gov_v1_MsgVote_voter_tag 2 +#define cosmos_gov_v1_MsgVote_option_tag 3 +#define cosmos_gov_v1_MsgVote_metadata_tag 4 +#define cosmos_gov_v1_MsgVoteWeighted_proposal_id_tag 1 +#define cosmos_gov_v1_MsgVoteWeighted_voter_tag 2 +#define cosmos_gov_v1_MsgVoteWeighted_options_tag 3 +#define cosmos_gov_v1_MsgVoteWeighted_metadata_tag 4 +#define cosmos_gov_v1_MsgDeposit_proposal_id_tag 1 +#define cosmos_gov_v1_MsgDeposit_depositor_tag 2 +#define cosmos_gov_v1_MsgDeposit_amount_tag 3 +#define cosmos_gov_v1_MsgUpdateParams_authority_tag 1 +#define cosmos_gov_v1_MsgUpdateParams_params_tag 2 +#define cosmos_gov_v1_MsgCancelProposal_proposal_id_tag 1 +#define cosmos_gov_v1_MsgCancelProposal_proposer_tag 2 +#define cosmos_gov_v1_MsgCancelProposalResponse_proposal_id_tag 1 +#define cosmos_gov_v1_MsgCancelProposalResponse_canceled_time_tag 2 +#define cosmos_gov_v1_MsgCancelProposalResponse_canceled_height_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1_MsgSubmitProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, messages, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, initial_deposit, 2) \ + X(a, CALLBACK, SINGULAR, STRING, proposer, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) \ + X(a, CALLBACK, SINGULAR, STRING, title, 5) \ + X(a, CALLBACK, SINGULAR, STRING, summary, 6) \ + X(a, STATIC, SINGULAR, BOOL, expedited, 7) +#define cosmos_gov_v1_MsgSubmitProposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgSubmitProposal_DEFAULT NULL +#define cosmos_gov_v1_MsgSubmitProposal_messages_MSGTYPE google_protobuf_Any +#define cosmos_gov_v1_MsgSubmitProposal_initial_deposit_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1_MsgSubmitProposalResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1_MsgSubmitProposalResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgSubmitProposalResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgExecLegacyContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, content, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_gov_v1_MsgExecLegacyContent_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgExecLegacyContent_DEFAULT NULL +#define cosmos_gov_v1_MsgExecLegacyContent_content_MSGTYPE google_protobuf_Any + +#define cosmos_gov_v1_MsgExecLegacyContentResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1_MsgExecLegacyContentResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgExecLegacyContentResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgVote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, STATIC, SINGULAR, UENUM, option, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) +#define cosmos_gov_v1_MsgVote_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgVote_DEFAULT NULL + +#define cosmos_gov_v1_MsgVoteResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1_MsgVoteResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgVoteResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgVoteWeighted_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, options, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) +#define cosmos_gov_v1_MsgVoteWeighted_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgVoteWeighted_DEFAULT NULL +#define cosmos_gov_v1_MsgVoteWeighted_options_MSGTYPE cosmos_gov_v1_WeightedVoteOption + +#define cosmos_gov_v1_MsgVoteWeightedResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1_MsgVoteWeightedResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgVoteWeightedResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgDeposit_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_gov_v1_MsgDeposit_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgDeposit_DEFAULT NULL +#define cosmos_gov_v1_MsgDeposit_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1_MsgDepositResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1_MsgDepositResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgDepositResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_gov_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgUpdateParams_DEFAULT NULL +#define cosmos_gov_v1_MsgUpdateParams_params_MSGTYPE cosmos_gov_v1_Params + +#define cosmos_gov_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgUpdateParamsResponse_DEFAULT NULL + +#define cosmos_gov_v1_MsgCancelProposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, proposer, 2) +#define cosmos_gov_v1_MsgCancelProposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1_MsgCancelProposal_DEFAULT NULL + +#define cosmos_gov_v1_MsgCancelProposalResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, canceled_time, 2) \ + X(a, STATIC, SINGULAR, UINT64, canceled_height, 3) +#define cosmos_gov_v1_MsgCancelProposalResponse_CALLBACK NULL +#define cosmos_gov_v1_MsgCancelProposalResponse_DEFAULT NULL +#define cosmos_gov_v1_MsgCancelProposalResponse_canceled_time_MSGTYPE google_protobuf_Timestamp + +extern const pb_msgdesc_t cosmos_gov_v1_MsgSubmitProposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgSubmitProposalResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgExecLegacyContent_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgExecLegacyContentResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgVote_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgVoteResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgVoteWeighted_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgVoteWeightedResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgDeposit_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgDepositResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgUpdateParamsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgCancelProposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1_MsgCancelProposalResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1_MsgSubmitProposal_fields &cosmos_gov_v1_MsgSubmitProposal_msg +#define cosmos_gov_v1_MsgSubmitProposalResponse_fields &cosmos_gov_v1_MsgSubmitProposalResponse_msg +#define cosmos_gov_v1_MsgExecLegacyContent_fields &cosmos_gov_v1_MsgExecLegacyContent_msg +#define cosmos_gov_v1_MsgExecLegacyContentResponse_fields &cosmos_gov_v1_MsgExecLegacyContentResponse_msg +#define cosmos_gov_v1_MsgVote_fields &cosmos_gov_v1_MsgVote_msg +#define cosmos_gov_v1_MsgVoteResponse_fields &cosmos_gov_v1_MsgVoteResponse_msg +#define cosmos_gov_v1_MsgVoteWeighted_fields &cosmos_gov_v1_MsgVoteWeighted_msg +#define cosmos_gov_v1_MsgVoteWeightedResponse_fields &cosmos_gov_v1_MsgVoteWeightedResponse_msg +#define cosmos_gov_v1_MsgDeposit_fields &cosmos_gov_v1_MsgDeposit_msg +#define cosmos_gov_v1_MsgDepositResponse_fields &cosmos_gov_v1_MsgDepositResponse_msg +#define cosmos_gov_v1_MsgUpdateParams_fields &cosmos_gov_v1_MsgUpdateParams_msg +#define cosmos_gov_v1_MsgUpdateParamsResponse_fields &cosmos_gov_v1_MsgUpdateParamsResponse_msg +#define cosmos_gov_v1_MsgCancelProposal_fields &cosmos_gov_v1_MsgCancelProposal_msg +#define cosmos_gov_v1_MsgCancelProposalResponse_fields &cosmos_gov_v1_MsgCancelProposalResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1_MsgSubmitProposal_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgExecLegacyContent_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgVote_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgVoteWeighted_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgDeposit_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgUpdateParams_size depends on runtime parameters */ +/* cosmos_gov_v1_MsgCancelProposal_size depends on runtime parameters */ +#define COSMOS_GOV_V1_COSMOS_GOV_V1_TX_PB_H_MAX_SIZE cosmos_gov_v1_MsgCancelProposalResponse_size +#define cosmos_gov_v1_MsgCancelProposalResponse_size 46 +#define cosmos_gov_v1_MsgDepositResponse_size 0 +#define cosmos_gov_v1_MsgExecLegacyContentResponse_size 0 +#define cosmos_gov_v1_MsgSubmitProposalResponse_size 11 +#define cosmos_gov_v1_MsgUpdateParamsResponse_size 0 +#define cosmos_gov_v1_MsgVoteResponse_size 0 +#define cosmos_gov_v1_MsgVoteWeightedResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.c new file mode 100644 index 0000000..dd4d4c5 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1beta1_GenesisState, cosmos_gov_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.h new file mode 100644 index 0000000..05e1b07 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/genesis.pb.h @@ -0,0 +1,93 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/gov/v1beta1/gov.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the gov module's genesis state. */ +typedef struct _cosmos_gov_v1beta1_GenesisState { + /* starting_proposal_id is the ID of the starting proposal. */ + uint64_t starting_proposal_id; + /* deposits defines all the deposits present at genesis. */ + pb_callback_t deposits; + /* votes defines all the votes present at genesis. */ + pb_callback_t votes; + /* proposals defines all the proposals present at genesis. */ + pb_callback_t proposals; + /* params defines all the parameters of related to deposit. */ + bool has_deposit_params; + cosmos_gov_v1beta1_DepositParams deposit_params; + /* params defines all the parameters of related to voting. */ + bool has_voting_params; + cosmos_gov_v1beta1_VotingParams voting_params; + /* params defines all the parameters of related to tally. */ + bool has_tally_params; + cosmos_gov_v1beta1_TallyParams tally_params; +} cosmos_gov_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1beta1_GenesisState_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_gov_v1beta1_DepositParams_init_default, false, \ + cosmos_gov_v1beta1_VotingParams_init_default, false, cosmos_gov_v1beta1_TallyParams_init_default \ + } +#define cosmos_gov_v1beta1_GenesisState_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_gov_v1beta1_DepositParams_init_zero, false, \ + cosmos_gov_v1beta1_VotingParams_init_zero, false, cosmos_gov_v1beta1_TallyParams_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1beta1_GenesisState_starting_proposal_id_tag 1 +#define cosmos_gov_v1beta1_GenesisState_deposits_tag 2 +#define cosmos_gov_v1beta1_GenesisState_votes_tag 3 +#define cosmos_gov_v1beta1_GenesisState_proposals_tag 4 +#define cosmos_gov_v1beta1_GenesisState_deposit_params_tag 5 +#define cosmos_gov_v1beta1_GenesisState_voting_params_tag 6 +#define cosmos_gov_v1beta1_GenesisState_tally_params_tag 7 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, starting_proposal_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, deposits, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_params, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_params, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, tally_params, 7) +#define cosmos_gov_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_gov_v1beta1_GenesisState_deposits_MSGTYPE cosmos_gov_v1beta1_Deposit +#define cosmos_gov_v1beta1_GenesisState_votes_MSGTYPE cosmos_gov_v1beta1_Vote +#define cosmos_gov_v1beta1_GenesisState_proposals_MSGTYPE cosmos_gov_v1beta1_Proposal +#define cosmos_gov_v1beta1_GenesisState_deposit_params_MSGTYPE cosmos_gov_v1beta1_DepositParams +#define cosmos_gov_v1beta1_GenesisState_voting_params_MSGTYPE cosmos_gov_v1beta1_VotingParams +#define cosmos_gov_v1beta1_GenesisState_tally_params_MSGTYPE cosmos_gov_v1beta1_TallyParams + +extern const pb_msgdesc_t cosmos_gov_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1beta1_GenesisState_fields &cosmos_gov_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1beta1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.c b/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.c new file mode 100644 index 0000000..99bf384 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.c @@ -0,0 +1,25 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1beta1/gov.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1beta1_WeightedVoteOption, cosmos_gov_v1beta1_WeightedVoteOption, AUTO) + +PB_BIND(cosmos_gov_v1beta1_TextProposal, cosmos_gov_v1beta1_TextProposal, AUTO) + +PB_BIND(cosmos_gov_v1beta1_Deposit, cosmos_gov_v1beta1_Deposit, AUTO) + +PB_BIND(cosmos_gov_v1beta1_Proposal, cosmos_gov_v1beta1_Proposal, AUTO) + +PB_BIND(cosmos_gov_v1beta1_TallyResult, cosmos_gov_v1beta1_TallyResult, AUTO) + +PB_BIND(cosmos_gov_v1beta1_Vote, cosmos_gov_v1beta1_Vote, AUTO) + +PB_BIND(cosmos_gov_v1beta1_DepositParams, cosmos_gov_v1beta1_DepositParams, AUTO) + +PB_BIND(cosmos_gov_v1beta1_VotingParams, cosmos_gov_v1beta1_VotingParams, AUTO) + +PB_BIND(cosmos_gov_v1beta1_TallyParams, cosmos_gov_v1beta1_TallyParams, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.h b/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.h new file mode 100644 index 0000000..343af48 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/gov.pb.h @@ -0,0 +1,415 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_GOV_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_GOV_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* VoteOption enumerates the valid vote options for a given governance proposal. */ +typedef enum _cosmos_gov_v1beta1_VoteOption { + /* VOTE_OPTION_UNSPECIFIED defines a no-op vote option. */ + cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_UNSPECIFIED = 0, + /* VOTE_OPTION_YES defines a yes vote option. */ + cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_YES = 1, + /* VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_ABSTAIN = 2, + /* VOTE_OPTION_NO defines a no vote option. */ + cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_NO = 3, + /* VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_NO_WITH_VETO = 4 +} cosmos_gov_v1beta1_VoteOption; + +/* ProposalStatus enumerates the valid statuses of a proposal. */ +typedef enum _cosmos_gov_v1beta1_ProposalStatus { + /* PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED = 0, + /* PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + period. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_DEPOSIT_PERIOD = 1, + /* PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + period. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_VOTING_PERIOD = 2, + /* PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + passed. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_PASSED = 3, + /* PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + been rejected. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_REJECTED = 4, + /* PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + failed. */ + cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_FAILED = 5 +} cosmos_gov_v1beta1_ProposalStatus; + +/* Struct definitions */ +/* WeightedVoteOption defines a unit of vote for vote split. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_gov_v1beta1_WeightedVoteOption { + /* option defines the valid vote options, it must not contain duplicate vote options. */ + cosmos_gov_v1beta1_VoteOption option; + /* weight is the vote weight associated with the vote option. */ + pb_callback_t weight; +} cosmos_gov_v1beta1_WeightedVoteOption; + +/* TextProposal defines a standard text proposal whose changes need to be + manually updated in case of approval. */ +typedef struct _cosmos_gov_v1beta1_TextProposal { + /* title of the proposal. */ + pb_callback_t title; + /* description associated with the proposal. */ + pb_callback_t description; +} cosmos_gov_v1beta1_TextProposal; + +/* Deposit defines an amount deposited by an account address to an active + proposal. */ +typedef struct _cosmos_gov_v1beta1_Deposit { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* amount to be deposited by depositor. */ + pb_callback_t amount; +} cosmos_gov_v1beta1_Deposit; + +/* TallyResult defines a standard tally for a governance proposal. */ +typedef struct _cosmos_gov_v1beta1_TallyResult { + /* yes is the number of yes votes on a proposal. */ + pb_callback_t yes; + /* abstain is the number of abstain votes on a proposal. */ + pb_callback_t abstain; + /* no is the number of no votes on a proposal. */ + pb_callback_t no; + /* no_with_veto is the number of no with veto votes on a proposal. */ + pb_callback_t no_with_veto; +} cosmos_gov_v1beta1_TallyResult; + +/* Proposal defines the core field members of a governance proposal. */ +typedef struct _cosmos_gov_v1beta1_Proposal { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* content is the proposal's content. */ + bool has_content; + google_protobuf_Any content; + /* status defines the proposal status. */ + cosmos_gov_v1beta1_ProposalStatus status; + /* final_tally_result is the final tally result of the proposal. When + querying a proposal via gRPC, this field is not populated until the + proposal's voting period has ended. */ + bool has_final_tally_result; + cosmos_gov_v1beta1_TallyResult final_tally_result; + /* submit_time is the time of proposal submission. */ + bool has_submit_time; + google_protobuf_Timestamp submit_time; + /* deposit_end_time is the end time for deposition. */ + bool has_deposit_end_time; + google_protobuf_Timestamp deposit_end_time; + /* total_deposit is the total deposit on the proposal. */ + pb_callback_t total_deposit; + /* voting_start_time is the starting time to vote on a proposal. */ + bool has_voting_start_time; + google_protobuf_Timestamp voting_start_time; + /* voting_end_time is the end time of voting on a proposal. */ + bool has_voting_end_time; + google_protobuf_Timestamp voting_end_time; +} cosmos_gov_v1beta1_Proposal; + +/* Vote defines a vote on a governance proposal. + A Vote consists of a proposal ID, the voter, and the vote option. */ +typedef struct _cosmos_gov_v1beta1_Vote { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address of the proposal. */ + pb_callback_t voter; + /* Deprecated: Prefer to use `options` instead. This field is set in queries + if and only if `len(options) == 1` and that option has weight 1. In all + other cases, this field will default to VOTE_OPTION_UNSPECIFIED. */ + cosmos_gov_v1beta1_VoteOption option; + /* options is the weighted vote options. + + Since: cosmos-sdk 0.43 */ + pb_callback_t options; +} cosmos_gov_v1beta1_Vote; + +/* DepositParams defines the params for deposits on governance proposals. */ +typedef struct _cosmos_gov_v1beta1_DepositParams { + /* Minimum deposit for a proposal to enter voting period. */ + pb_callback_t min_deposit; + /* Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + months. */ + bool has_max_deposit_period; + google_protobuf_Duration max_deposit_period; +} cosmos_gov_v1beta1_DepositParams; + +/* VotingParams defines the params for voting on governance proposals. */ +typedef struct _cosmos_gov_v1beta1_VotingParams { + /* Duration of the voting period. */ + bool has_voting_period; + google_protobuf_Duration voting_period; +} cosmos_gov_v1beta1_VotingParams; + +/* TallyParams defines the params for tallying votes on governance proposals. */ +typedef struct _cosmos_gov_v1beta1_TallyParams { + /* Minimum percentage of total stake needed to vote for a result to be + considered valid. */ + pb_callback_t quorum; + /* Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. */ + pb_callback_t threshold; + /* Minimum value of Veto votes to Total votes ratio for proposal to be + vetoed. Default value: 1/3. */ + pb_callback_t veto_threshold; +} cosmos_gov_v1beta1_TallyParams; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_gov_v1beta1_VoteOption_MIN cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_UNSPECIFIED +#define _cosmos_gov_v1beta1_VoteOption_MAX cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_NO_WITH_VETO +#define _cosmos_gov_v1beta1_VoteOption_ARRAYSIZE \ + ((cosmos_gov_v1beta1_VoteOption)(cosmos_gov_v1beta1_VoteOption_VOTE_OPTION_NO_WITH_VETO + 1)) + +#define _cosmos_gov_v1beta1_ProposalStatus_MIN cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED +#define _cosmos_gov_v1beta1_ProposalStatus_MAX cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_FAILED +#define _cosmos_gov_v1beta1_ProposalStatus_ARRAYSIZE \ + ((cosmos_gov_v1beta1_ProposalStatus)(cosmos_gov_v1beta1_ProposalStatus_PROPOSAL_STATUS_FAILED + 1)) + +#define cosmos_gov_v1beta1_WeightedVoteOption_option_ENUMTYPE cosmos_gov_v1beta1_VoteOption + +#define cosmos_gov_v1beta1_Proposal_status_ENUMTYPE cosmos_gov_v1beta1_ProposalStatus + +#define cosmos_gov_v1beta1_Vote_option_ENUMTYPE cosmos_gov_v1beta1_VoteOption + +/* Initializer values for message structs */ +#define cosmos_gov_v1beta1_WeightedVoteOption_init_default \ + { \ + _cosmos_gov_v1beta1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_TextProposal_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Deposit_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Proposal_init_default \ + { \ + 0, false, google_protobuf_Any_init_default, _cosmos_gov_v1beta1_ProposalStatus_MIN, false, \ + cosmos_gov_v1beta1_TallyResult_init_default, false, google_protobuf_Timestamp_init_default, false, \ + google_protobuf_Timestamp_init_default, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, false, \ + google_protobuf_Timestamp_init_default \ + } +#define cosmos_gov_v1beta1_TallyResult_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Vote_init_default \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1beta1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_DepositParams_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Duration_init_default } +#define cosmos_gov_v1beta1_VotingParams_init_default \ + { false, google_protobuf_Duration_init_default } +#define cosmos_gov_v1beta1_TallyParams_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_WeightedVoteOption_init_zero \ + { \ + _cosmos_gov_v1beta1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_TextProposal_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Deposit_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Proposal_init_zero \ + { \ + 0, false, google_protobuf_Any_init_zero, _cosmos_gov_v1beta1_ProposalStatus_MIN, false, \ + cosmos_gov_v1beta1_TallyResult_init_zero, false, google_protobuf_Timestamp_init_zero, false, \ + google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, false, \ + google_protobuf_Timestamp_init_zero \ + } +#define cosmos_gov_v1beta1_TallyResult_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_Vote_init_zero \ + { \ + 0, {{NULL}, NULL}, _cosmos_gov_v1beta1_VoteOption_MIN, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_DepositParams_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Duration_init_zero } +#define cosmos_gov_v1beta1_VotingParams_init_zero \ + { false, google_protobuf_Duration_init_zero } +#define cosmos_gov_v1beta1_TallyParams_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1beta1_WeightedVoteOption_option_tag 1 +#define cosmos_gov_v1beta1_WeightedVoteOption_weight_tag 2 +#define cosmos_gov_v1beta1_TextProposal_title_tag 1 +#define cosmos_gov_v1beta1_TextProposal_description_tag 2 +#define cosmos_gov_v1beta1_Deposit_proposal_id_tag 1 +#define cosmos_gov_v1beta1_Deposit_depositor_tag 2 +#define cosmos_gov_v1beta1_Deposit_amount_tag 3 +#define cosmos_gov_v1beta1_TallyResult_yes_tag 1 +#define cosmos_gov_v1beta1_TallyResult_abstain_tag 2 +#define cosmos_gov_v1beta1_TallyResult_no_tag 3 +#define cosmos_gov_v1beta1_TallyResult_no_with_veto_tag 4 +#define cosmos_gov_v1beta1_Proposal_proposal_id_tag 1 +#define cosmos_gov_v1beta1_Proposal_content_tag 2 +#define cosmos_gov_v1beta1_Proposal_status_tag 3 +#define cosmos_gov_v1beta1_Proposal_final_tally_result_tag 4 +#define cosmos_gov_v1beta1_Proposal_submit_time_tag 5 +#define cosmos_gov_v1beta1_Proposal_deposit_end_time_tag 6 +#define cosmos_gov_v1beta1_Proposal_total_deposit_tag 7 +#define cosmos_gov_v1beta1_Proposal_voting_start_time_tag 8 +#define cosmos_gov_v1beta1_Proposal_voting_end_time_tag 9 +#define cosmos_gov_v1beta1_Vote_proposal_id_tag 1 +#define cosmos_gov_v1beta1_Vote_voter_tag 2 +#define cosmos_gov_v1beta1_Vote_option_tag 3 +#define cosmos_gov_v1beta1_Vote_options_tag 4 +#define cosmos_gov_v1beta1_DepositParams_min_deposit_tag 1 +#define cosmos_gov_v1beta1_DepositParams_max_deposit_period_tag 2 +#define cosmos_gov_v1beta1_VotingParams_voting_period_tag 1 +#define cosmos_gov_v1beta1_TallyParams_quorum_tag 1 +#define cosmos_gov_v1beta1_TallyParams_threshold_tag 2 +#define cosmos_gov_v1beta1_TallyParams_veto_threshold_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1beta1_WeightedVoteOption_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, option, 1) \ + X(a, CALLBACK, SINGULAR, STRING, weight, 2) +#define cosmos_gov_v1beta1_WeightedVoteOption_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_WeightedVoteOption_DEFAULT NULL + +#define cosmos_gov_v1beta1_TextProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) +#define cosmos_gov_v1beta1_TextProposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_TextProposal_DEFAULT NULL + +#define cosmos_gov_v1beta1_Deposit_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_gov_v1beta1_Deposit_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_Deposit_DEFAULT NULL +#define cosmos_gov_v1beta1_Deposit_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1beta1_Proposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, content, 2) \ + X(a, STATIC, SINGULAR, UENUM, status, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, final_tally_result, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, submit_time, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_end_time, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, total_deposit, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_start_time, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_end_time, 9) +#define cosmos_gov_v1beta1_Proposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_Proposal_DEFAULT NULL +#define cosmos_gov_v1beta1_Proposal_content_MSGTYPE google_protobuf_Any +#define cosmos_gov_v1beta1_Proposal_final_tally_result_MSGTYPE cosmos_gov_v1beta1_TallyResult +#define cosmos_gov_v1beta1_Proposal_submit_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1beta1_Proposal_deposit_end_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1beta1_Proposal_total_deposit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_gov_v1beta1_Proposal_voting_start_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_gov_v1beta1_Proposal_voting_end_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_gov_v1beta1_TallyResult_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, yes, 1) \ + X(a, CALLBACK, SINGULAR, STRING, abstain, 2) \ + X(a, CALLBACK, SINGULAR, STRING, no, 3) \ + X(a, CALLBACK, SINGULAR, STRING, no_with_veto, 4) +#define cosmos_gov_v1beta1_TallyResult_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_TallyResult_DEFAULT NULL + +#define cosmos_gov_v1beta1_Vote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, STATIC, SINGULAR, UENUM, option, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, options, 4) +#define cosmos_gov_v1beta1_Vote_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_Vote_DEFAULT NULL +#define cosmos_gov_v1beta1_Vote_options_MSGTYPE cosmos_gov_v1beta1_WeightedVoteOption + +#define cosmos_gov_v1beta1_DepositParams_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, min_deposit, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_deposit_period, 2) +#define cosmos_gov_v1beta1_DepositParams_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_DepositParams_DEFAULT NULL +#define cosmos_gov_v1beta1_DepositParams_min_deposit_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_gov_v1beta1_DepositParams_max_deposit_period_MSGTYPE google_protobuf_Duration + +#define cosmos_gov_v1beta1_VotingParams_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, voting_period, 1) +#define cosmos_gov_v1beta1_VotingParams_CALLBACK NULL +#define cosmos_gov_v1beta1_VotingParams_DEFAULT NULL +#define cosmos_gov_v1beta1_VotingParams_voting_period_MSGTYPE google_protobuf_Duration + +#define cosmos_gov_v1beta1_TallyParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, quorum, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, threshold, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, veto_threshold, 3) +#define cosmos_gov_v1beta1_TallyParams_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_TallyParams_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_gov_v1beta1_WeightedVoteOption_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_TextProposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_Deposit_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_Proposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_TallyResult_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_Vote_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_DepositParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_VotingParams_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_TallyParams_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1beta1_WeightedVoteOption_fields &cosmos_gov_v1beta1_WeightedVoteOption_msg +#define cosmos_gov_v1beta1_TextProposal_fields &cosmos_gov_v1beta1_TextProposal_msg +#define cosmos_gov_v1beta1_Deposit_fields &cosmos_gov_v1beta1_Deposit_msg +#define cosmos_gov_v1beta1_Proposal_fields &cosmos_gov_v1beta1_Proposal_msg +#define cosmos_gov_v1beta1_TallyResult_fields &cosmos_gov_v1beta1_TallyResult_msg +#define cosmos_gov_v1beta1_Vote_fields &cosmos_gov_v1beta1_Vote_msg +#define cosmos_gov_v1beta1_DepositParams_fields &cosmos_gov_v1beta1_DepositParams_msg +#define cosmos_gov_v1beta1_VotingParams_fields &cosmos_gov_v1beta1_VotingParams_msg +#define cosmos_gov_v1beta1_TallyParams_fields &cosmos_gov_v1beta1_TallyParams_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1beta1_WeightedVoteOption_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_TextProposal_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_Deposit_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_Proposal_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_TallyResult_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_Vote_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_DepositParams_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_TallyParams_size depends on runtime parameters */ +#define COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_GOV_PB_H_MAX_SIZE cosmos_gov_v1beta1_VotingParams_size +#define cosmos_gov_v1beta1_VotingParams_size 24 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1beta1/query.pb.c b/app/src/protobuf/cosmos/gov/v1beta1/query.pb.c new file mode 100644 index 0000000..3b47ab2 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/query.pb.c @@ -0,0 +1,39 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1beta1_QueryProposalRequest, cosmos_gov_v1beta1_QueryProposalRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryProposalResponse, cosmos_gov_v1beta1_QueryProposalResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryProposalsRequest, cosmos_gov_v1beta1_QueryProposalsRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryProposalsResponse, cosmos_gov_v1beta1_QueryProposalsResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryVoteRequest, cosmos_gov_v1beta1_QueryVoteRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryVoteResponse, cosmos_gov_v1beta1_QueryVoteResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryVotesRequest, cosmos_gov_v1beta1_QueryVotesRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryVotesResponse, cosmos_gov_v1beta1_QueryVotesResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryParamsRequest, cosmos_gov_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryParamsResponse, cosmos_gov_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryDepositRequest, cosmos_gov_v1beta1_QueryDepositRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryDepositResponse, cosmos_gov_v1beta1_QueryDepositResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryDepositsRequest, cosmos_gov_v1beta1_QueryDepositsRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryDepositsResponse, cosmos_gov_v1beta1_QueryDepositsResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryTallyResultRequest, cosmos_gov_v1beta1_QueryTallyResultRequest, AUTO) + +PB_BIND(cosmos_gov_v1beta1_QueryTallyResultResponse, cosmos_gov_v1beta1_QueryTallyResultResponse, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1beta1/query.pb.h b/app/src/protobuf/cosmos/gov/v1beta1/query.pb.h new file mode 100644 index 0000000..6cffd2b --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/query.pb.h @@ -0,0 +1,451 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/gov/v1beta1/gov.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryProposalRequest is the request type for the Query/Proposal RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryProposalRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1beta1_QueryProposalRequest; + +/* QueryProposalResponse is the response type for the Query/Proposal RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryProposalResponse { + bool has_proposal; + cosmos_gov_v1beta1_Proposal proposal; +} cosmos_gov_v1beta1_QueryProposalResponse; + +/* QueryProposalsRequest is the request type for the Query/Proposals RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryProposalsRequest { + /* proposal_status defines the status of the proposals. */ + cosmos_gov_v1beta1_ProposalStatus proposal_status; + /* voter defines the voter address for the proposals. */ + pb_callback_t voter; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1beta1_QueryProposalsRequest; + +/* QueryProposalsResponse is the response type for the Query/Proposals RPC + method. */ +typedef struct _cosmos_gov_v1beta1_QueryProposalsResponse { + /* proposals defines all the requested governance proposals. */ + pb_callback_t proposals; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1beta1_QueryProposalsResponse; + +/* QueryVoteRequest is the request type for the Query/Vote RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryVoteRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter defines the voter address for the proposals. */ + pb_callback_t voter; +} cosmos_gov_v1beta1_QueryVoteRequest; + +/* QueryVoteResponse is the response type for the Query/Vote RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryVoteResponse { + /* vote defines the queried vote. */ + bool has_vote; + cosmos_gov_v1beta1_Vote vote; +} cosmos_gov_v1beta1_QueryVoteResponse; + +/* QueryVotesRequest is the request type for the Query/Votes RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryVotesRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1beta1_QueryVotesRequest; + +/* QueryVotesResponse is the response type for the Query/Votes RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryVotesResponse { + /* votes defines the queried votes. */ + pb_callback_t votes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1beta1_QueryVotesResponse; + +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryParamsRequest { + /* params_type defines which parameters to query for, can be one of "voting", + "tallying" or "deposit". */ + pb_callback_t params_type; +} cosmos_gov_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryParamsResponse { + /* voting_params defines the parameters related to voting. */ + bool has_voting_params; + cosmos_gov_v1beta1_VotingParams voting_params; + /* deposit_params defines the parameters related to deposit. */ + bool has_deposit_params; + cosmos_gov_v1beta1_DepositParams deposit_params; + /* tally_params defines the parameters related to tally. */ + bool has_tally_params; + cosmos_gov_v1beta1_TallyParams tally_params; +} cosmos_gov_v1beta1_QueryParamsResponse; + +/* QueryDepositRequest is the request type for the Query/Deposit RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryDepositRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; +} cosmos_gov_v1beta1_QueryDepositRequest; + +/* QueryDepositResponse is the response type for the Query/Deposit RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryDepositResponse { + /* deposit defines the requested deposit. */ + bool has_deposit; + cosmos_gov_v1beta1_Deposit deposit; +} cosmos_gov_v1beta1_QueryDepositResponse; + +/* QueryDepositsRequest is the request type for the Query/Deposits RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryDepositsRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_gov_v1beta1_QueryDepositsRequest; + +/* QueryDepositsResponse is the response type for the Query/Deposits RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryDepositsResponse { + /* deposits defines the requested deposits. */ + pb_callback_t deposits; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_gov_v1beta1_QueryDepositsResponse; + +/* QueryTallyResultRequest is the request type for the Query/Tally RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryTallyResultRequest { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1beta1_QueryTallyResultRequest; + +/* QueryTallyResultResponse is the response type for the Query/Tally RPC method. */ +typedef struct _cosmos_gov_v1beta1_QueryTallyResultResponse { + /* tally defines the requested tally. */ + bool has_tally; + cosmos_gov_v1beta1_TallyResult tally; +} cosmos_gov_v1beta1_QueryTallyResultResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1beta1_QueryProposalRequest_init_default \ + { 0 } +#define cosmos_gov_v1beta1_QueryProposalResponse_init_default \ + { false, cosmos_gov_v1beta1_Proposal_init_default } +#define cosmos_gov_v1beta1_QueryProposalsRequest_init_default \ + { \ + _cosmos_gov_v1beta1_ProposalStatus_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_default \ + } +#define cosmos_gov_v1beta1_QueryProposalsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1beta1_QueryVoteRequest_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryVoteResponse_init_default \ + { false, cosmos_gov_v1beta1_Vote_init_default } +#define cosmos_gov_v1beta1_QueryVotesRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_gov_v1beta1_QueryVotesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1beta1_QueryParamsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryParamsResponse_init_default \ + { \ + false, cosmos_gov_v1beta1_VotingParams_init_default, false, cosmos_gov_v1beta1_DepositParams_init_default, false, \ + cosmos_gov_v1beta1_TallyParams_init_default \ + } +#define cosmos_gov_v1beta1_QueryDepositRequest_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryDepositResponse_init_default \ + { false, cosmos_gov_v1beta1_Deposit_init_default } +#define cosmos_gov_v1beta1_QueryDepositsRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_gov_v1beta1_QueryDepositsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_gov_v1beta1_QueryTallyResultRequest_init_default \ + { 0 } +#define cosmos_gov_v1beta1_QueryTallyResultResponse_init_default \ + { false, cosmos_gov_v1beta1_TallyResult_init_default } +#define cosmos_gov_v1beta1_QueryProposalRequest_init_zero \ + { 0 } +#define cosmos_gov_v1beta1_QueryProposalResponse_init_zero \ + { false, cosmos_gov_v1beta1_Proposal_init_zero } +#define cosmos_gov_v1beta1_QueryProposalsRequest_init_zero \ + { \ + _cosmos_gov_v1beta1_ProposalStatus_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_zero \ + } +#define cosmos_gov_v1beta1_QueryProposalsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1beta1_QueryVoteRequest_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryVoteResponse_init_zero \ + { false, cosmos_gov_v1beta1_Vote_init_zero } +#define cosmos_gov_v1beta1_QueryVotesRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_gov_v1beta1_QueryVotesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1beta1_QueryParamsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryParamsResponse_init_zero \ + { \ + false, cosmos_gov_v1beta1_VotingParams_init_zero, false, cosmos_gov_v1beta1_DepositParams_init_zero, false, \ + cosmos_gov_v1beta1_TallyParams_init_zero \ + } +#define cosmos_gov_v1beta1_QueryDepositRequest_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_QueryDepositResponse_init_zero \ + { false, cosmos_gov_v1beta1_Deposit_init_zero } +#define cosmos_gov_v1beta1_QueryDepositsRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_gov_v1beta1_QueryDepositsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_gov_v1beta1_QueryTallyResultRequest_init_zero \ + { 0 } +#define cosmos_gov_v1beta1_QueryTallyResultResponse_init_zero \ + { false, cosmos_gov_v1beta1_TallyResult_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1beta1_QueryProposalRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryProposalResponse_proposal_tag 1 +#define cosmos_gov_v1beta1_QueryProposalsRequest_proposal_status_tag 1 +#define cosmos_gov_v1beta1_QueryProposalsRequest_voter_tag 2 +#define cosmos_gov_v1beta1_QueryProposalsRequest_depositor_tag 3 +#define cosmos_gov_v1beta1_QueryProposalsRequest_pagination_tag 4 +#define cosmos_gov_v1beta1_QueryProposalsResponse_proposals_tag 1 +#define cosmos_gov_v1beta1_QueryProposalsResponse_pagination_tag 2 +#define cosmos_gov_v1beta1_QueryVoteRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryVoteRequest_voter_tag 2 +#define cosmos_gov_v1beta1_QueryVoteResponse_vote_tag 1 +#define cosmos_gov_v1beta1_QueryVotesRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryVotesRequest_pagination_tag 2 +#define cosmos_gov_v1beta1_QueryVotesResponse_votes_tag 1 +#define cosmos_gov_v1beta1_QueryVotesResponse_pagination_tag 2 +#define cosmos_gov_v1beta1_QueryParamsRequest_params_type_tag 1 +#define cosmos_gov_v1beta1_QueryParamsResponse_voting_params_tag 1 +#define cosmos_gov_v1beta1_QueryParamsResponse_deposit_params_tag 2 +#define cosmos_gov_v1beta1_QueryParamsResponse_tally_params_tag 3 +#define cosmos_gov_v1beta1_QueryDepositRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryDepositRequest_depositor_tag 2 +#define cosmos_gov_v1beta1_QueryDepositResponse_deposit_tag 1 +#define cosmos_gov_v1beta1_QueryDepositsRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryDepositsRequest_pagination_tag 2 +#define cosmos_gov_v1beta1_QueryDepositsResponse_deposits_tag 1 +#define cosmos_gov_v1beta1_QueryDepositsResponse_pagination_tag 2 +#define cosmos_gov_v1beta1_QueryTallyResultRequest_proposal_id_tag 1 +#define cosmos_gov_v1beta1_QueryTallyResultResponse_tally_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1beta1_QueryProposalRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1beta1_QueryProposalRequest_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryProposalRequest_DEFAULT NULL + +#define cosmos_gov_v1beta1_QueryProposalResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define cosmos_gov_v1beta1_QueryProposalResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryProposalResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryProposalResponse_proposal_MSGTYPE cosmos_gov_v1beta1_Proposal + +#define cosmos_gov_v1beta1_QueryProposalsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, proposal_status, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_gov_v1beta1_QueryProposalsRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryProposalsRequest_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryProposalsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1beta1_QueryProposalsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1beta1_QueryProposalsResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryProposalsResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryProposalsResponse_proposals_MSGTYPE cosmos_gov_v1beta1_Proposal +#define cosmos_gov_v1beta1_QueryProposalsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1beta1_QueryVoteRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) +#define cosmos_gov_v1beta1_QueryVoteRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryVoteRequest_DEFAULT NULL + +#define cosmos_gov_v1beta1_QueryVoteResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) +#define cosmos_gov_v1beta1_QueryVoteResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryVoteResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryVoteResponse_vote_MSGTYPE cosmos_gov_v1beta1_Vote + +#define cosmos_gov_v1beta1_QueryVotesRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1beta1_QueryVotesRequest_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryVotesRequest_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryVotesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1beta1_QueryVotesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1beta1_QueryVotesResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryVotesResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryVotesResponse_votes_MSGTYPE cosmos_gov_v1beta1_Vote +#define cosmos_gov_v1beta1_QueryVotesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1beta1_QueryParamsRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, params_type, 1) +#define cosmos_gov_v1beta1_QueryParamsRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_gov_v1beta1_QueryParamsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_params, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, tally_params, 3) +#define cosmos_gov_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryParamsResponse_voting_params_MSGTYPE cosmos_gov_v1beta1_VotingParams +#define cosmos_gov_v1beta1_QueryParamsResponse_deposit_params_MSGTYPE cosmos_gov_v1beta1_DepositParams +#define cosmos_gov_v1beta1_QueryParamsResponse_tally_params_MSGTYPE cosmos_gov_v1beta1_TallyParams + +#define cosmos_gov_v1beta1_QueryDepositRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) +#define cosmos_gov_v1beta1_QueryDepositRequest_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryDepositRequest_DEFAULT NULL + +#define cosmos_gov_v1beta1_QueryDepositResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, deposit, 1) +#define cosmos_gov_v1beta1_QueryDepositResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryDepositResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryDepositResponse_deposit_MSGTYPE cosmos_gov_v1beta1_Deposit + +#define cosmos_gov_v1beta1_QueryDepositsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1beta1_QueryDepositsRequest_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryDepositsRequest_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryDepositsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_gov_v1beta1_QueryDepositsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, deposits, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_gov_v1beta1_QueryDepositsResponse_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_QueryDepositsResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryDepositsResponse_deposits_MSGTYPE cosmos_gov_v1beta1_Deposit +#define cosmos_gov_v1beta1_QueryDepositsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_gov_v1beta1_QueryTallyResultRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1beta1_QueryTallyResultRequest_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryTallyResultRequest_DEFAULT NULL + +#define cosmos_gov_v1beta1_QueryTallyResultResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tally, 1) +#define cosmos_gov_v1beta1_QueryTallyResultResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_QueryTallyResultResponse_DEFAULT NULL +#define cosmos_gov_v1beta1_QueryTallyResultResponse_tally_MSGTYPE cosmos_gov_v1beta1_TallyResult + +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryProposalRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryProposalResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryProposalsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryProposalsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryVoteRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryVoteResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryVotesRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryVotesResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryDepositRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryDepositResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryDepositsRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryDepositsResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryTallyResultRequest_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_QueryTallyResultResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1beta1_QueryProposalRequest_fields &cosmos_gov_v1beta1_QueryProposalRequest_msg +#define cosmos_gov_v1beta1_QueryProposalResponse_fields &cosmos_gov_v1beta1_QueryProposalResponse_msg +#define cosmos_gov_v1beta1_QueryProposalsRequest_fields &cosmos_gov_v1beta1_QueryProposalsRequest_msg +#define cosmos_gov_v1beta1_QueryProposalsResponse_fields &cosmos_gov_v1beta1_QueryProposalsResponse_msg +#define cosmos_gov_v1beta1_QueryVoteRequest_fields &cosmos_gov_v1beta1_QueryVoteRequest_msg +#define cosmos_gov_v1beta1_QueryVoteResponse_fields &cosmos_gov_v1beta1_QueryVoteResponse_msg +#define cosmos_gov_v1beta1_QueryVotesRequest_fields &cosmos_gov_v1beta1_QueryVotesRequest_msg +#define cosmos_gov_v1beta1_QueryVotesResponse_fields &cosmos_gov_v1beta1_QueryVotesResponse_msg +#define cosmos_gov_v1beta1_QueryParamsRequest_fields &cosmos_gov_v1beta1_QueryParamsRequest_msg +#define cosmos_gov_v1beta1_QueryParamsResponse_fields &cosmos_gov_v1beta1_QueryParamsResponse_msg +#define cosmos_gov_v1beta1_QueryDepositRequest_fields &cosmos_gov_v1beta1_QueryDepositRequest_msg +#define cosmos_gov_v1beta1_QueryDepositResponse_fields &cosmos_gov_v1beta1_QueryDepositResponse_msg +#define cosmos_gov_v1beta1_QueryDepositsRequest_fields &cosmos_gov_v1beta1_QueryDepositsRequest_msg +#define cosmos_gov_v1beta1_QueryDepositsResponse_fields &cosmos_gov_v1beta1_QueryDepositsResponse_msg +#define cosmos_gov_v1beta1_QueryTallyResultRequest_fields &cosmos_gov_v1beta1_QueryTallyResultRequest_msg +#define cosmos_gov_v1beta1_QueryTallyResultResponse_fields &cosmos_gov_v1beta1_QueryTallyResultResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1beta1_QueryProposalsRequest_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryProposalsResponse_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryVoteRequest_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryVotesResponse_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryParamsRequest_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryDepositRequest_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_QueryDepositsResponse_size depends on runtime parameters */ +#define cosmos_gov_v1beta1_QueryProposalRequest_size 11 +#define cosmos_gov_v1beta1_QueryTallyResultRequest_size 11 +#if defined(cosmos_gov_v1beta1_Proposal_size) +#define cosmos_gov_v1beta1_QueryProposalResponse_size (6 + cosmos_gov_v1beta1_Proposal_size) +#endif +#if defined(cosmos_gov_v1beta1_Vote_size) +#define cosmos_gov_v1beta1_QueryVoteResponse_size (6 + cosmos_gov_v1beta1_Vote_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_gov_v1beta1_QueryDepositsRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_gov_v1beta1_QueryVotesRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(cosmos_gov_v1beta1_DepositParams_size) && defined(cosmos_gov_v1beta1_TallyParams_size) +#define COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_gov_v1beta1_QueryParamsResponse_size +#define cosmos_gov_v1beta1_QueryParamsResponse_size \ + (38 + cosmos_gov_v1beta1_DepositParams_size + cosmos_gov_v1beta1_TallyParams_size) +#endif +#if defined(cosmos_gov_v1beta1_Deposit_size) +#define cosmos_gov_v1beta1_QueryDepositResponse_size (6 + cosmos_gov_v1beta1_Deposit_size) +#endif +#if defined(cosmos_gov_v1beta1_TallyResult_size) +#define cosmos_gov_v1beta1_QueryTallyResultResponse_size (6 + cosmos_gov_v1beta1_TallyResult_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.c new file mode 100644 index 0000000..b9d909c --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.c @@ -0,0 +1,23 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/gov/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_gov_v1beta1_MsgSubmitProposal, cosmos_gov_v1beta1_MsgSubmitProposal, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgSubmitProposalResponse, cosmos_gov_v1beta1_MsgSubmitProposalResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgVote, cosmos_gov_v1beta1_MsgVote, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgVoteResponse, cosmos_gov_v1beta1_MsgVoteResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgVoteWeighted, cosmos_gov_v1beta1_MsgVoteWeighted, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgVoteWeightedResponse, cosmos_gov_v1beta1_MsgVoteWeightedResponse, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgDeposit, cosmos_gov_v1beta1_MsgDeposit, AUTO) + +PB_BIND(cosmos_gov_v1beta1_MsgDepositResponse, cosmos_gov_v1beta1_MsgDepositResponse, AUTO) diff --git a/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.h new file mode 100644 index 0000000..8c1e958 --- /dev/null +++ b/app/src/protobuf/cosmos/gov/v1beta1/tx.pb.h @@ -0,0 +1,239 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/gov/v1beta1/gov.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary + proposal Content. */ +typedef struct _cosmos_gov_v1beta1_MsgSubmitProposal { + /* content is the proposal's content. */ + bool has_content; + google_protobuf_Any content; + /* initial_deposit is the deposit value that must be paid at proposal submission. */ + pb_callback_t initial_deposit; + /* proposer is the account address of the proposer. */ + pb_callback_t proposer; +} cosmos_gov_v1beta1_MsgSubmitProposal; + +/* MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. */ +typedef struct _cosmos_gov_v1beta1_MsgSubmitProposalResponse { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; +} cosmos_gov_v1beta1_MsgSubmitProposalResponse; + +/* MsgVote defines a message to cast a vote. */ +typedef struct _cosmos_gov_v1beta1_MsgVote { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address for the proposal. */ + pb_callback_t voter; + /* option defines the vote option. */ + cosmos_gov_v1beta1_VoteOption option; +} cosmos_gov_v1beta1_MsgVote; + +/* MsgVoteResponse defines the Msg/Vote response type. */ +typedef struct _cosmos_gov_v1beta1_MsgVoteResponse { + char dummy_field; +} cosmos_gov_v1beta1_MsgVoteResponse; + +/* MsgVoteWeighted defines a message to cast a vote. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_gov_v1beta1_MsgVoteWeighted { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* voter is the voter address for the proposal. */ + pb_callback_t voter; + /* options defines the weighted vote options. */ + pb_callback_t options; +} cosmos_gov_v1beta1_MsgVoteWeighted; + +/* MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_gov_v1beta1_MsgVoteWeightedResponse { + char dummy_field; +} cosmos_gov_v1beta1_MsgVoteWeightedResponse; + +/* MsgDeposit defines a message to submit a deposit to an existing proposal. */ +typedef struct _cosmos_gov_v1beta1_MsgDeposit { + /* proposal_id defines the unique id of the proposal. */ + uint64_t proposal_id; + /* depositor defines the deposit addresses from the proposals. */ + pb_callback_t depositor; + /* amount to be deposited by depositor. */ + pb_callback_t amount; +} cosmos_gov_v1beta1_MsgDeposit; + +/* MsgDepositResponse defines the Msg/Deposit response type. */ +typedef struct _cosmos_gov_v1beta1_MsgDepositResponse { + char dummy_field; +} cosmos_gov_v1beta1_MsgDepositResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_gov_v1beta1_MsgSubmitProposal_init_default \ + { \ + false, google_protobuf_Any_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_init_default \ + { 0 } +#define cosmos_gov_v1beta1_MsgVote_init_default \ + { 0, {{NULL}, NULL}, _cosmos_gov_v1beta1_VoteOption_MIN } +#define cosmos_gov_v1beta1_MsgVoteResponse_init_default \ + { 0 } +#define cosmos_gov_v1beta1_MsgVoteWeighted_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_init_default \ + { 0 } +#define cosmos_gov_v1beta1_MsgDeposit_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgDepositResponse_init_default \ + { 0 } +#define cosmos_gov_v1beta1_MsgSubmitProposal_init_zero \ + { \ + false, google_protobuf_Any_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_init_zero \ + { 0 } +#define cosmos_gov_v1beta1_MsgVote_init_zero \ + { 0, {{NULL}, NULL}, _cosmos_gov_v1beta1_VoteOption_MIN } +#define cosmos_gov_v1beta1_MsgVoteResponse_init_zero \ + { 0 } +#define cosmos_gov_v1beta1_MsgVoteWeighted_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_init_zero \ + { 0 } +#define cosmos_gov_v1beta1_MsgDeposit_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_gov_v1beta1_MsgDepositResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_gov_v1beta1_MsgSubmitProposal_content_tag 1 +#define cosmos_gov_v1beta1_MsgSubmitProposal_initial_deposit_tag 2 +#define cosmos_gov_v1beta1_MsgSubmitProposal_proposer_tag 3 +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_proposal_id_tag 1 +#define cosmos_gov_v1beta1_MsgVote_proposal_id_tag 1 +#define cosmos_gov_v1beta1_MsgVote_voter_tag 2 +#define cosmos_gov_v1beta1_MsgVote_option_tag 3 +#define cosmos_gov_v1beta1_MsgVoteWeighted_proposal_id_tag 1 +#define cosmos_gov_v1beta1_MsgVoteWeighted_voter_tag 2 +#define cosmos_gov_v1beta1_MsgVoteWeighted_options_tag 3 +#define cosmos_gov_v1beta1_MsgDeposit_proposal_id_tag 1 +#define cosmos_gov_v1beta1_MsgDeposit_depositor_tag 2 +#define cosmos_gov_v1beta1_MsgDeposit_amount_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_gov_v1beta1_MsgSubmitProposal_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, content, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, initial_deposit, 2) \ + X(a, CALLBACK, SINGULAR, STRING, proposer, 3) +#define cosmos_gov_v1beta1_MsgSubmitProposal_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_MsgSubmitProposal_DEFAULT NULL +#define cosmos_gov_v1beta1_MsgSubmitProposal_content_MSGTYPE google_protobuf_Any +#define cosmos_gov_v1beta1_MsgSubmitProposal_initial_deposit_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_DEFAULT NULL + +#define cosmos_gov_v1beta1_MsgVote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, STATIC, SINGULAR, UENUM, option, 3) +#define cosmos_gov_v1beta1_MsgVote_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_MsgVote_DEFAULT NULL + +#define cosmos_gov_v1beta1_MsgVoteResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1beta1_MsgVoteResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_MsgVoteResponse_DEFAULT NULL + +#define cosmos_gov_v1beta1_MsgVoteWeighted_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, options, 3) +#define cosmos_gov_v1beta1_MsgVoteWeighted_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_MsgVoteWeighted_DEFAULT NULL +#define cosmos_gov_v1beta1_MsgVoteWeighted_options_MSGTYPE cosmos_gov_v1beta1_WeightedVoteOption + +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_DEFAULT NULL + +#define cosmos_gov_v1beta1_MsgDeposit_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, depositor, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_gov_v1beta1_MsgDeposit_CALLBACK pb_default_field_callback +#define cosmos_gov_v1beta1_MsgDeposit_DEFAULT NULL +#define cosmos_gov_v1beta1_MsgDeposit_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_gov_v1beta1_MsgDepositResponse_FIELDLIST(X, a) + +#define cosmos_gov_v1beta1_MsgDepositResponse_CALLBACK NULL +#define cosmos_gov_v1beta1_MsgDepositResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgSubmitProposal_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgSubmitProposalResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgVote_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgVoteResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgVoteWeighted_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgVoteWeightedResponse_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgDeposit_msg; +extern const pb_msgdesc_t cosmos_gov_v1beta1_MsgDepositResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_gov_v1beta1_MsgSubmitProposal_fields &cosmos_gov_v1beta1_MsgSubmitProposal_msg +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_fields &cosmos_gov_v1beta1_MsgSubmitProposalResponse_msg +#define cosmos_gov_v1beta1_MsgVote_fields &cosmos_gov_v1beta1_MsgVote_msg +#define cosmos_gov_v1beta1_MsgVoteResponse_fields &cosmos_gov_v1beta1_MsgVoteResponse_msg +#define cosmos_gov_v1beta1_MsgVoteWeighted_fields &cosmos_gov_v1beta1_MsgVoteWeighted_msg +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_fields &cosmos_gov_v1beta1_MsgVoteWeightedResponse_msg +#define cosmos_gov_v1beta1_MsgDeposit_fields &cosmos_gov_v1beta1_MsgDeposit_msg +#define cosmos_gov_v1beta1_MsgDepositResponse_fields &cosmos_gov_v1beta1_MsgDepositResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_gov_v1beta1_MsgSubmitProposal_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_MsgVote_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_MsgVoteWeighted_size depends on runtime parameters */ +/* cosmos_gov_v1beta1_MsgDeposit_size depends on runtime parameters */ +#define COSMOS_GOV_V1BETA1_COSMOS_GOV_V1BETA1_TX_PB_H_MAX_SIZE cosmos_gov_v1beta1_MsgSubmitProposalResponse_size +#define cosmos_gov_v1beta1_MsgDepositResponse_size 0 +#define cosmos_gov_v1beta1_MsgSubmitProposalResponse_size 11 +#define cosmos_gov_v1beta1_MsgVoteResponse_size 0 +#define cosmos_gov_v1beta1_MsgVoteWeightedResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/module/v1/module.pb.c b/app/src/protobuf/cosmos/group/module/v1/module.pb.c new file mode 100644 index 0000000..c99119f --- /dev/null +++ b/app/src/protobuf/cosmos/group/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_module_v1_Module, cosmos_group_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/group/module/v1/module.pb.h b/app/src/protobuf/cosmos/group/module/v1/module.pb.h new file mode 100644 index 0000000..293d2a1 --- /dev/null +++ b/app/src/protobuf/cosmos/group/module/v1/module.pb.h @@ -0,0 +1,64 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_MODULE_V1_COSMOS_GROUP_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_GROUP_MODULE_V1_COSMOS_GROUP_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/app/v1alpha1/module.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/duration.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the group module. */ +typedef struct _cosmos_group_module_v1_Module { + /* max_execution_period defines the max duration after a proposal's voting period ends that members can send a MsgExec + to execute the proposal. */ + bool has_max_execution_period; + google_protobuf_Duration max_execution_period; + /* max_metadata_len defines the max length of the metadata bytes field for various entities within the group module. + Defaults to 255 if not explicitly set. */ + uint64_t max_metadata_len; +} cosmos_group_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_group_module_v1_Module_init_default \ + { false, google_protobuf_Duration_init_default, 0 } +#define cosmos_group_module_v1_Module_init_zero \ + { false, google_protobuf_Duration_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_module_v1_Module_max_execution_period_tag 1 +#define cosmos_group_module_v1_Module_max_metadata_len_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_module_v1_Module_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_execution_period, 1) \ + X(a, STATIC, SINGULAR, UINT64, max_metadata_len, 2) +#define cosmos_group_module_v1_Module_CALLBACK NULL +#define cosmos_group_module_v1_Module_DEFAULT NULL +#define cosmos_group_module_v1_Module_max_execution_period_MSGTYPE google_protobuf_Duration + +extern const pb_msgdesc_t cosmos_group_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_module_v1_Module_fields &cosmos_group_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_GROUP_MODULE_V1_COSMOS_GROUP_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_group_module_v1_Module_size +#define cosmos_group_module_v1_Module_size 35 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/v1/events.pb.c b/app/src/protobuf/cosmos/group/v1/events.pb.c new file mode 100644 index 0000000..74465c7 --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/events.pb.c @@ -0,0 +1,25 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/v1/events.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_v1_EventCreateGroup, cosmos_group_v1_EventCreateGroup, AUTO) + +PB_BIND(cosmos_group_v1_EventUpdateGroup, cosmos_group_v1_EventUpdateGroup, AUTO) + +PB_BIND(cosmos_group_v1_EventCreateGroupPolicy, cosmos_group_v1_EventCreateGroupPolicy, AUTO) + +PB_BIND(cosmos_group_v1_EventUpdateGroupPolicy, cosmos_group_v1_EventUpdateGroupPolicy, AUTO) + +PB_BIND(cosmos_group_v1_EventSubmitProposal, cosmos_group_v1_EventSubmitProposal, AUTO) + +PB_BIND(cosmos_group_v1_EventWithdrawProposal, cosmos_group_v1_EventWithdrawProposal, AUTO) + +PB_BIND(cosmos_group_v1_EventVote, cosmos_group_v1_EventVote, AUTO) + +PB_BIND(cosmos_group_v1_EventExec, cosmos_group_v1_EventExec, AUTO) + +PB_BIND(cosmos_group_v1_EventLeaveGroup, cosmos_group_v1_EventLeaveGroup, AUTO) diff --git a/app/src/protobuf/cosmos/group/v1/events.pb.h b/app/src/protobuf/cosmos/group/v1/events.pb.h new file mode 100644 index 0000000..c62a59b --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/events.pb.h @@ -0,0 +1,227 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_EVENTS_PB_H_INCLUDED +#define PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_EVENTS_PB_H_INCLUDED +#include + +#include "cosmos/group/v1/types.pb.h" +#include "cosmos_proto/cosmos.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* EventCreateGroup is an event emitted when a group is created. */ +typedef struct _cosmos_group_v1_EventCreateGroup { + /* group_id is the unique ID of the group. */ + uint64_t group_id; +} cosmos_group_v1_EventCreateGroup; + +/* EventUpdateGroup is an event emitted when a group is updated. */ +typedef struct _cosmos_group_v1_EventUpdateGroup { + /* group_id is the unique ID of the group. */ + uint64_t group_id; +} cosmos_group_v1_EventUpdateGroup; + +/* EventCreateGroupPolicy is an event emitted when a group policy is created. */ +typedef struct _cosmos_group_v1_EventCreateGroupPolicy { + /* address is the account address of the group policy. */ + pb_callback_t address; +} cosmos_group_v1_EventCreateGroupPolicy; + +/* EventUpdateGroupPolicy is an event emitted when a group policy is updated. */ +typedef struct _cosmos_group_v1_EventUpdateGroupPolicy { + /* address is the account address of the group policy. */ + pb_callback_t address; +} cosmos_group_v1_EventUpdateGroupPolicy; + +/* EventSubmitProposal is an event emitted when a proposal is created. */ +typedef struct _cosmos_group_v1_EventSubmitProposal { + /* proposal_id is the unique ID of the proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_EventSubmitProposal; + +/* EventWithdrawProposal is an event emitted when a proposal is withdrawn. */ +typedef struct _cosmos_group_v1_EventWithdrawProposal { + /* proposal_id is the unique ID of the proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_EventWithdrawProposal; + +/* EventVote is an event emitted when a voter votes on a proposal. */ +typedef struct _cosmos_group_v1_EventVote { + /* proposal_id is the unique ID of the proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_EventVote; + +/* EventExec is an event emitted when a proposal is executed. */ +typedef struct _cosmos_group_v1_EventExec { + /* proposal_id is the unique ID of the proposal. */ + uint64_t proposal_id; + /* result is the proposal execution result. */ + cosmos_group_v1_ProposalExecutorResult result; + /* logs contains error logs in case the execution result is FAILURE. */ + pb_callback_t logs; +} cosmos_group_v1_EventExec; + +/* EventLeaveGroup is an event emitted when group member leaves the group. */ +typedef struct _cosmos_group_v1_EventLeaveGroup { + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* address is the account address of the group member. */ + pb_callback_t address; +} cosmos_group_v1_EventLeaveGroup; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_group_v1_EventCreateGroup_init_default \ + { 0 } +#define cosmos_group_v1_EventUpdateGroup_init_default \ + { 0 } +#define cosmos_group_v1_EventCreateGroupPolicy_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventUpdateGroupPolicy_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventSubmitProposal_init_default \ + { 0 } +#define cosmos_group_v1_EventWithdrawProposal_init_default \ + { 0 } +#define cosmos_group_v1_EventVote_init_default \ + { 0 } +#define cosmos_group_v1_EventExec_init_default \ + { \ + 0, _cosmos_group_v1_ProposalExecutorResult_MIN, { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventLeaveGroup_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventCreateGroup_init_zero \ + { 0 } +#define cosmos_group_v1_EventUpdateGroup_init_zero \ + { 0 } +#define cosmos_group_v1_EventCreateGroupPolicy_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventUpdateGroupPolicy_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventSubmitProposal_init_zero \ + { 0 } +#define cosmos_group_v1_EventWithdrawProposal_init_zero \ + { 0 } +#define cosmos_group_v1_EventVote_init_zero \ + { 0 } +#define cosmos_group_v1_EventExec_init_zero \ + { \ + 0, _cosmos_group_v1_ProposalExecutorResult_MIN, { {NULL}, NULL } \ + } +#define cosmos_group_v1_EventLeaveGroup_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_v1_EventCreateGroup_group_id_tag 1 +#define cosmos_group_v1_EventUpdateGroup_group_id_tag 1 +#define cosmos_group_v1_EventCreateGroupPolicy_address_tag 1 +#define cosmos_group_v1_EventUpdateGroupPolicy_address_tag 1 +#define cosmos_group_v1_EventSubmitProposal_proposal_id_tag 1 +#define cosmos_group_v1_EventWithdrawProposal_proposal_id_tag 1 +#define cosmos_group_v1_EventVote_proposal_id_tag 1 +#define cosmos_group_v1_EventExec_proposal_id_tag 1 +#define cosmos_group_v1_EventExec_result_tag 2 +#define cosmos_group_v1_EventExec_logs_tag 3 +#define cosmos_group_v1_EventLeaveGroup_group_id_tag 1 +#define cosmos_group_v1_EventLeaveGroup_address_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_v1_EventCreateGroup_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, group_id, 1) +#define cosmos_group_v1_EventCreateGroup_CALLBACK NULL +#define cosmos_group_v1_EventCreateGroup_DEFAULT NULL + +#define cosmos_group_v1_EventUpdateGroup_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, group_id, 1) +#define cosmos_group_v1_EventUpdateGroup_CALLBACK NULL +#define cosmos_group_v1_EventUpdateGroup_DEFAULT NULL + +#define cosmos_group_v1_EventCreateGroupPolicy_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_group_v1_EventCreateGroupPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_EventCreateGroupPolicy_DEFAULT NULL + +#define cosmos_group_v1_EventUpdateGroupPolicy_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_group_v1_EventUpdateGroupPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_EventUpdateGroupPolicy_DEFAULT NULL + +#define cosmos_group_v1_EventSubmitProposal_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_EventSubmitProposal_CALLBACK NULL +#define cosmos_group_v1_EventSubmitProposal_DEFAULT NULL + +#define cosmos_group_v1_EventWithdrawProposal_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_EventWithdrawProposal_CALLBACK NULL +#define cosmos_group_v1_EventWithdrawProposal_DEFAULT NULL + +#define cosmos_group_v1_EventVote_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_EventVote_CALLBACK NULL +#define cosmos_group_v1_EventVote_DEFAULT NULL + +#define cosmos_group_v1_EventExec_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, SINGULAR, UENUM, result, 2) \ + X(a, CALLBACK, SINGULAR, STRING, logs, 3) +#define cosmos_group_v1_EventExec_CALLBACK pb_default_field_callback +#define cosmos_group_v1_EventExec_DEFAULT NULL + +#define cosmos_group_v1_EventLeaveGroup_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, address, 2) +#define cosmos_group_v1_EventLeaveGroup_CALLBACK pb_default_field_callback +#define cosmos_group_v1_EventLeaveGroup_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_group_v1_EventCreateGroup_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventUpdateGroup_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventCreateGroupPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventUpdateGroupPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventSubmitProposal_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventWithdrawProposal_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventVote_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventExec_msg; +extern const pb_msgdesc_t cosmos_group_v1_EventLeaveGroup_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_v1_EventCreateGroup_fields &cosmos_group_v1_EventCreateGroup_msg +#define cosmos_group_v1_EventUpdateGroup_fields &cosmos_group_v1_EventUpdateGroup_msg +#define cosmos_group_v1_EventCreateGroupPolicy_fields &cosmos_group_v1_EventCreateGroupPolicy_msg +#define cosmos_group_v1_EventUpdateGroupPolicy_fields &cosmos_group_v1_EventUpdateGroupPolicy_msg +#define cosmos_group_v1_EventSubmitProposal_fields &cosmos_group_v1_EventSubmitProposal_msg +#define cosmos_group_v1_EventWithdrawProposal_fields &cosmos_group_v1_EventWithdrawProposal_msg +#define cosmos_group_v1_EventVote_fields &cosmos_group_v1_EventVote_msg +#define cosmos_group_v1_EventExec_fields &cosmos_group_v1_EventExec_msg +#define cosmos_group_v1_EventLeaveGroup_fields &cosmos_group_v1_EventLeaveGroup_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_group_v1_EventCreateGroupPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_EventUpdateGroupPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_EventExec_size depends on runtime parameters */ +/* cosmos_group_v1_EventLeaveGroup_size depends on runtime parameters */ +#define COSMOS_GROUP_V1_COSMOS_GROUP_V1_EVENTS_PB_H_MAX_SIZE cosmos_group_v1_EventCreateGroup_size +#define cosmos_group_v1_EventCreateGroup_size 11 +#define cosmos_group_v1_EventSubmitProposal_size 11 +#define cosmos_group_v1_EventUpdateGroup_size 11 +#define cosmos_group_v1_EventVote_size 11 +#define cosmos_group_v1_EventWithdrawProposal_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/v1/genesis.pb.c b/app/src/protobuf/cosmos/group/v1/genesis.pb.c new file mode 100644 index 0000000..84aeecd --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_v1_GenesisState, cosmos_group_v1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/group/v1/genesis.pb.h b/app/src/protobuf/cosmos/group/v1/genesis.pb.h new file mode 100644 index 0000000..0f06ada --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/genesis.pb.h @@ -0,0 +1,92 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_GENESIS_PB_H_INCLUDED +#include + +#include "cosmos/group/v1/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the group module's genesis state. */ +typedef struct _cosmos_group_v1_GenesisState { + /* group_seq is the group table orm.Sequence, + it is used to get the next group ID. */ + uint64_t group_seq; + /* groups is the list of groups info. */ + pb_callback_t groups; + /* group_members is the list of groups members. */ + pb_callback_t group_members; + /* group_policy_seq is the group policy table orm.Sequence, + it is used to generate the next group policy account address. */ + uint64_t group_policy_seq; + /* group_policies is the list of group policies info. */ + pb_callback_t group_policies; + /* proposal_seq is the proposal table orm.Sequence, + it is used to get the next proposal ID. */ + uint64_t proposal_seq; + /* proposals is the list of proposals. */ + pb_callback_t proposals; + /* votes is the list of votes. */ + pb_callback_t votes; +} cosmos_group_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_group_v1_GenesisState_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_GenesisState_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_v1_GenesisState_group_seq_tag 1 +#define cosmos_group_v1_GenesisState_groups_tag 2 +#define cosmos_group_v1_GenesisState_group_members_tag 3 +#define cosmos_group_v1_GenesisState_group_policy_seq_tag 4 +#define cosmos_group_v1_GenesisState_group_policies_tag 5 +#define cosmos_group_v1_GenesisState_proposal_seq_tag 6 +#define cosmos_group_v1_GenesisState_proposals_tag 7 +#define cosmos_group_v1_GenesisState_votes_tag 8 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_v1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_seq, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, groups, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, group_members, 3) \ + X(a, STATIC, SINGULAR, UINT64, group_policy_seq, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, group_policies, 5) \ + X(a, STATIC, SINGULAR, UINT64, proposal_seq, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 8) +#define cosmos_group_v1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_group_v1_GenesisState_DEFAULT NULL +#define cosmos_group_v1_GenesisState_groups_MSGTYPE cosmos_group_v1_GroupInfo +#define cosmos_group_v1_GenesisState_group_members_MSGTYPE cosmos_group_v1_GroupMember +#define cosmos_group_v1_GenesisState_group_policies_MSGTYPE cosmos_group_v1_GroupPolicyInfo +#define cosmos_group_v1_GenesisState_proposals_MSGTYPE cosmos_group_v1_Proposal +#define cosmos_group_v1_GenesisState_votes_MSGTYPE cosmos_group_v1_Vote + +extern const pb_msgdesc_t cosmos_group_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_v1_GenesisState_fields &cosmos_group_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_group_v1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/v1/query.pb.c b/app/src/protobuf/cosmos/group/v1/query.pb.c new file mode 100644 index 0000000..5f2147e --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/query.pb.c @@ -0,0 +1,63 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_v1_QueryGroupInfoRequest, cosmos_group_v1_QueryGroupInfoRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupInfoResponse, cosmos_group_v1_QueryGroupInfoResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPolicyInfoRequest, cosmos_group_v1_QueryGroupPolicyInfoRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPolicyInfoResponse, cosmos_group_v1_QueryGroupPolicyInfoResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupMembersRequest, cosmos_group_v1_QueryGroupMembersRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupMembersResponse, cosmos_group_v1_QueryGroupMembersResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsByAdminRequest, cosmos_group_v1_QueryGroupsByAdminRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsByAdminResponse, cosmos_group_v1_QueryGroupsByAdminResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPoliciesByGroupRequest, cosmos_group_v1_QueryGroupPoliciesByGroupRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPoliciesByGroupResponse, cosmos_group_v1_QueryGroupPoliciesByGroupResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPoliciesByAdminRequest, cosmos_group_v1_QueryGroupPoliciesByAdminRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupPoliciesByAdminResponse, cosmos_group_v1_QueryGroupPoliciesByAdminResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryProposalRequest, cosmos_group_v1_QueryProposalRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryProposalResponse, cosmos_group_v1_QueryProposalResponse, 2) + +PB_BIND(cosmos_group_v1_QueryProposalsByGroupPolicyRequest, cosmos_group_v1_QueryProposalsByGroupPolicyRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryProposalsByGroupPolicyResponse, cosmos_group_v1_QueryProposalsByGroupPolicyResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryVoteByProposalVoterRequest, cosmos_group_v1_QueryVoteByProposalVoterRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryVoteByProposalVoterResponse, cosmos_group_v1_QueryVoteByProposalVoterResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryVotesByProposalRequest, cosmos_group_v1_QueryVotesByProposalRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryVotesByProposalResponse, cosmos_group_v1_QueryVotesByProposalResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryVotesByVoterRequest, cosmos_group_v1_QueryVotesByVoterRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryVotesByVoterResponse, cosmos_group_v1_QueryVotesByVoterResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsByMemberRequest, cosmos_group_v1_QueryGroupsByMemberRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsByMemberResponse, cosmos_group_v1_QueryGroupsByMemberResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryTallyResultRequest, cosmos_group_v1_QueryTallyResultRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryTallyResultResponse, cosmos_group_v1_QueryTallyResultResponse, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsRequest, cosmos_group_v1_QueryGroupsRequest, AUTO) + +PB_BIND(cosmos_group_v1_QueryGroupsResponse, cosmos_group_v1_QueryGroupsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/group/v1/query.pb.h b/app/src/protobuf/cosmos/group/v1/query.pb.h new file mode 100644 index 0000000..d012e27 --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/query.pb.h @@ -0,0 +1,712 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/group/v1/types.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryGroupInfoRequest is the Query/GroupInfo request type. */ +typedef struct _cosmos_group_v1_QueryGroupInfoRequest { + /* group_id is the unique ID of the group. */ + uint64_t group_id; +} cosmos_group_v1_QueryGroupInfoRequest; + +/* QueryGroupInfoResponse is the Query/GroupInfo response type. */ +typedef struct _cosmos_group_v1_QueryGroupInfoResponse { + /* info is the GroupInfo of the group. */ + bool has_info; + cosmos_group_v1_GroupInfo info; +} cosmos_group_v1_QueryGroupInfoResponse; + +/* QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. */ +typedef struct _cosmos_group_v1_QueryGroupPolicyInfoRequest { + /* address is the account address of the group policy. */ + pb_callback_t address; +} cosmos_group_v1_QueryGroupPolicyInfoRequest; + +/* QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. */ +typedef struct _cosmos_group_v1_QueryGroupPolicyInfoResponse { + /* info is the GroupPolicyInfo of the group policy. */ + bool has_info; + cosmos_group_v1_GroupPolicyInfo info; +} cosmos_group_v1_QueryGroupPolicyInfoResponse; + +/* QueryGroupMembersRequest is the Query/GroupMembers request type. */ +typedef struct _cosmos_group_v1_QueryGroupMembersRequest { + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupMembersRequest; + +/* QueryGroupMembersResponse is the Query/GroupMembersResponse response type. */ +typedef struct _cosmos_group_v1_QueryGroupMembersResponse { + /* members are the members of the group with given group_id. */ + pb_callback_t members; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupMembersResponse; + +/* QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. */ +typedef struct _cosmos_group_v1_QueryGroupsByAdminRequest { + /* admin is the account address of a group's admin. */ + pb_callback_t admin; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupsByAdminRequest; + +/* QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. */ +typedef struct _cosmos_group_v1_QueryGroupsByAdminResponse { + /* groups are the groups info with the provided admin. */ + pb_callback_t groups; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupsByAdminResponse; + +/* QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. */ +typedef struct _cosmos_group_v1_QueryGroupPoliciesByGroupRequest { + /* group_id is the unique ID of the group policy's group. */ + uint64_t group_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupPoliciesByGroupRequest; + +/* QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. */ +typedef struct _cosmos_group_v1_QueryGroupPoliciesByGroupResponse { + /* group_policies are the group policies info associated with the provided group. */ + pb_callback_t group_policies; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupPoliciesByGroupResponse; + +/* QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. */ +typedef struct _cosmos_group_v1_QueryGroupPoliciesByAdminRequest { + /* admin is the admin address of the group policy. */ + pb_callback_t admin; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupPoliciesByAdminRequest; + +/* QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. */ +typedef struct _cosmos_group_v1_QueryGroupPoliciesByAdminResponse { + /* group_policies are the group policies info with provided admin. */ + pb_callback_t group_policies; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupPoliciesByAdminResponse; + +/* QueryProposalRequest is the Query/Proposal request type. */ +typedef struct _cosmos_group_v1_QueryProposalRequest { + /* proposal_id is the unique ID of a proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_QueryProposalRequest; + +/* QueryProposalResponse is the Query/Proposal response type. */ +typedef struct _cosmos_group_v1_QueryProposalResponse { + /* proposal is the proposal info. */ + bool has_proposal; + cosmos_group_v1_Proposal proposal; +} cosmos_group_v1_QueryProposalResponse; + +/* QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. */ +typedef struct _cosmos_group_v1_QueryProposalsByGroupPolicyRequest { + /* address is the account address of the group policy related to proposals. */ + pb_callback_t address; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryProposalsByGroupPolicyRequest; + +/* QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. */ +typedef struct _cosmos_group_v1_QueryProposalsByGroupPolicyResponse { + /* proposals are the proposals with given group policy. */ + pb_callback_t proposals; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryProposalsByGroupPolicyResponse; + +/* QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. */ +typedef struct _cosmos_group_v1_QueryVoteByProposalVoterRequest { + /* proposal_id is the unique ID of a proposal. */ + uint64_t proposal_id; + /* voter is a proposal voter account address. */ + pb_callback_t voter; +} cosmos_group_v1_QueryVoteByProposalVoterRequest; + +/* QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. */ +typedef struct _cosmos_group_v1_QueryVoteByProposalVoterResponse { + /* vote is the vote with given proposal_id and voter. */ + bool has_vote; + cosmos_group_v1_Vote vote; +} cosmos_group_v1_QueryVoteByProposalVoterResponse; + +/* QueryVotesByProposalRequest is the Query/VotesByProposal request type. */ +typedef struct _cosmos_group_v1_QueryVotesByProposalRequest { + /* proposal_id is the unique ID of a proposal. */ + uint64_t proposal_id; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryVotesByProposalRequest; + +/* QueryVotesByProposalResponse is the Query/VotesByProposal response type. */ +typedef struct _cosmos_group_v1_QueryVotesByProposalResponse { + /* votes are the list of votes for given proposal_id. */ + pb_callback_t votes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryVotesByProposalResponse; + +/* QueryVotesByVoterRequest is the Query/VotesByVoter request type. */ +typedef struct _cosmos_group_v1_QueryVotesByVoterRequest { + /* voter is a proposal voter account address. */ + pb_callback_t voter; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryVotesByVoterRequest; + +/* QueryVotesByVoterResponse is the Query/VotesByVoter response type. */ +typedef struct _cosmos_group_v1_QueryVotesByVoterResponse { + /* votes are the list of votes by given voter. */ + pb_callback_t votes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryVotesByVoterResponse; + +/* QueryGroupsByMemberRequest is the Query/GroupsByMember request type. */ +typedef struct _cosmos_group_v1_QueryGroupsByMemberRequest { + /* address is the group member address. */ + pb_callback_t address; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupsByMemberRequest; + +/* QueryGroupsByMemberResponse is the Query/GroupsByMember response type. */ +typedef struct _cosmos_group_v1_QueryGroupsByMemberResponse { + /* groups are the groups info with the provided group member. */ + pb_callback_t groups; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupsByMemberResponse; + +/* QueryTallyResultRequest is the Query/TallyResult request type. */ +typedef struct _cosmos_group_v1_QueryTallyResultRequest { + /* proposal_id is the unique id of a proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_QueryTallyResultRequest; + +/* QueryTallyResultResponse is the Query/TallyResult response type. */ +typedef struct _cosmos_group_v1_QueryTallyResultResponse { + /* tally defines the requested tally. */ + bool has_tally; + cosmos_group_v1_TallyResult tally; +} cosmos_group_v1_QueryTallyResultResponse; + +/* QueryGroupsRequest is the Query/Groups request type. + + Since: cosmos-sdk 0.47.1 */ +typedef struct _cosmos_group_v1_QueryGroupsRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_group_v1_QueryGroupsRequest; + +/* QueryGroupsResponse is the Query/Groups response type. + + Since: cosmos-sdk 0.47.1 */ +typedef struct _cosmos_group_v1_QueryGroupsResponse { + /* `groups` is all the groups present in state. */ + pb_callback_t groups; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_group_v1_QueryGroupsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_group_v1_QueryGroupInfoRequest_init_default \ + { 0 } +#define cosmos_group_v1_QueryGroupInfoResponse_init_default \ + { false, cosmos_group_v1_GroupInfo_init_default } +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_init_default \ + { false, cosmos_group_v1_GroupPolicyInfo_init_default } +#define cosmos_group_v1_QueryGroupMembersRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupMembersResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryGroupsByAdminRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupsByAdminResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryProposalRequest_init_default \ + { 0 } +#define cosmos_group_v1_QueryProposalResponse_init_default \ + { false, cosmos_group_v1_Proposal_init_default } +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_init_default \ + { false, cosmos_group_v1_Vote_init_default } +#define cosmos_group_v1_QueryVotesByProposalRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryVotesByProposalResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryVotesByVoterRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryVotesByVoterResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryGroupsByMemberRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupsByMemberResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryTallyResultRequest_init_default \ + { 0 } +#define cosmos_group_v1_QueryTallyResultResponse_init_default \ + { false, cosmos_group_v1_TallyResult_init_default } +#define cosmos_group_v1_QueryGroupsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_group_v1_QueryGroupsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_group_v1_QueryGroupInfoRequest_init_zero \ + { 0 } +#define cosmos_group_v1_QueryGroupInfoResponse_init_zero \ + { false, cosmos_group_v1_GroupInfo_init_zero } +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_init_zero \ + { false, cosmos_group_v1_GroupPolicyInfo_init_zero } +#define cosmos_group_v1_QueryGroupMembersRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupMembersResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryGroupsByAdminRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupsByAdminResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryProposalRequest_init_zero \ + { 0 } +#define cosmos_group_v1_QueryProposalResponse_init_zero \ + { false, cosmos_group_v1_Proposal_init_zero } +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_init_zero \ + { false, cosmos_group_v1_Vote_init_zero } +#define cosmos_group_v1_QueryVotesByProposalRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryVotesByProposalResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryVotesByVoterRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryVotesByVoterResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryGroupsByMemberRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupsByMemberResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_group_v1_QueryTallyResultRequest_init_zero \ + { 0 } +#define cosmos_group_v1_QueryTallyResultResponse_init_zero \ + { false, cosmos_group_v1_TallyResult_init_zero } +#define cosmos_group_v1_QueryGroupsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_group_v1_QueryGroupsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_v1_QueryGroupInfoRequest_group_id_tag 1 +#define cosmos_group_v1_QueryGroupInfoResponse_info_tag 1 +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_address_tag 1 +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_info_tag 1 +#define cosmos_group_v1_QueryGroupMembersRequest_group_id_tag 1 +#define cosmos_group_v1_QueryGroupMembersRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupMembersResponse_members_tag 1 +#define cosmos_group_v1_QueryGroupMembersResponse_pagination_tag 2 +#define cosmos_group_v1_QueryGroupsByAdminRequest_admin_tag 1 +#define cosmos_group_v1_QueryGroupsByAdminRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupsByAdminResponse_groups_tag 1 +#define cosmos_group_v1_QueryGroupsByAdminResponse_pagination_tag 2 +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_group_id_tag 1 +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_group_policies_tag 1 +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_pagination_tag 2 +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_admin_tag 1 +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_group_policies_tag 1 +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_pagination_tag 2 +#define cosmos_group_v1_QueryProposalRequest_proposal_id_tag 1 +#define cosmos_group_v1_QueryProposalResponse_proposal_tag 1 +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_address_tag 1 +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_pagination_tag 2 +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_proposals_tag 1 +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_pagination_tag 2 +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_proposal_id_tag 1 +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_voter_tag 2 +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_vote_tag 1 +#define cosmos_group_v1_QueryVotesByProposalRequest_proposal_id_tag 1 +#define cosmos_group_v1_QueryVotesByProposalRequest_pagination_tag 2 +#define cosmos_group_v1_QueryVotesByProposalResponse_votes_tag 1 +#define cosmos_group_v1_QueryVotesByProposalResponse_pagination_tag 2 +#define cosmos_group_v1_QueryVotesByVoterRequest_voter_tag 1 +#define cosmos_group_v1_QueryVotesByVoterRequest_pagination_tag 2 +#define cosmos_group_v1_QueryVotesByVoterResponse_votes_tag 1 +#define cosmos_group_v1_QueryVotesByVoterResponse_pagination_tag 2 +#define cosmos_group_v1_QueryGroupsByMemberRequest_address_tag 1 +#define cosmos_group_v1_QueryGroupsByMemberRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupsByMemberResponse_groups_tag 1 +#define cosmos_group_v1_QueryGroupsByMemberResponse_pagination_tag 2 +#define cosmos_group_v1_QueryTallyResultRequest_proposal_id_tag 1 +#define cosmos_group_v1_QueryTallyResultResponse_tally_tag 1 +#define cosmos_group_v1_QueryGroupsRequest_pagination_tag 2 +#define cosmos_group_v1_QueryGroupsResponse_groups_tag 1 +#define cosmos_group_v1_QueryGroupsResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_v1_QueryGroupInfoRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, group_id, 1) +#define cosmos_group_v1_QueryGroupInfoRequest_CALLBACK NULL +#define cosmos_group_v1_QueryGroupInfoRequest_DEFAULT NULL + +#define cosmos_group_v1_QueryGroupInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, info, 1) +#define cosmos_group_v1_QueryGroupInfoResponse_CALLBACK NULL +#define cosmos_group_v1_QueryGroupInfoResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupInfoResponse_info_MSGTYPE cosmos_group_v1_GroupInfo + +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_DEFAULT NULL + +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, info, 1) +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_CALLBACK NULL +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_info_MSGTYPE cosmos_group_v1_GroupPolicyInfo + +#define cosmos_group_v1_QueryGroupMembersRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupMembersRequest_CALLBACK NULL +#define cosmos_group_v1_QueryGroupMembersRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupMembersRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupMembersResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, members, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupMembersResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupMembersResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupMembersResponse_members_MSGTYPE cosmos_group_v1_GroupMember +#define cosmos_group_v1_QueryGroupMembersResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryGroupsByAdminRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsByAdminRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupsByAdminRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsByAdminRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupsByAdminResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, groups, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsByAdminResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupsByAdminResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsByAdminResponse_groups_MSGTYPE cosmos_group_v1_GroupInfo +#define cosmos_group_v1_QueryGroupsByAdminResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_CALLBACK NULL +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, group_policies, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_group_policies_MSGTYPE cosmos_group_v1_GroupPolicyInfo +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, group_policies, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_group_policies_MSGTYPE cosmos_group_v1_GroupPolicyInfo +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryProposalRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_QueryProposalRequest_CALLBACK NULL +#define cosmos_group_v1_QueryProposalRequest_DEFAULT NULL + +#define cosmos_group_v1_QueryProposalResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define cosmos_group_v1_QueryProposalResponse_CALLBACK NULL +#define cosmos_group_v1_QueryProposalResponse_DEFAULT NULL +#define cosmos_group_v1_QueryProposalResponse_proposal_MSGTYPE cosmos_group_v1_Proposal + +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_DEFAULT NULL +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, proposals, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_DEFAULT NULL +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_proposals_MSGTYPE cosmos_group_v1_Proposal +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_DEFAULT NULL + +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_CALLBACK NULL +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_DEFAULT NULL +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_vote_MSGTYPE cosmos_group_v1_Vote + +#define cosmos_group_v1_QueryVotesByProposalRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryVotesByProposalRequest_CALLBACK NULL +#define cosmos_group_v1_QueryVotesByProposalRequest_DEFAULT NULL +#define cosmos_group_v1_QueryVotesByProposalRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryVotesByProposalResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryVotesByProposalResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryVotesByProposalResponse_DEFAULT NULL +#define cosmos_group_v1_QueryVotesByProposalResponse_votes_MSGTYPE cosmos_group_v1_Vote +#define cosmos_group_v1_QueryVotesByProposalResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryVotesByVoterRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryVotesByVoterRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryVotesByVoterRequest_DEFAULT NULL +#define cosmos_group_v1_QueryVotesByVoterRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryVotesByVoterResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryVotesByVoterResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryVotesByVoterResponse_DEFAULT NULL +#define cosmos_group_v1_QueryVotesByVoterResponse_votes_MSGTYPE cosmos_group_v1_Vote +#define cosmos_group_v1_QueryVotesByVoterResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryGroupsByMemberRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsByMemberRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupsByMemberRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsByMemberRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupsByMemberResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, groups, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsByMemberResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupsByMemberResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsByMemberResponse_groups_MSGTYPE cosmos_group_v1_GroupInfo +#define cosmos_group_v1_QueryGroupsByMemberResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_group_v1_QueryTallyResultRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_QueryTallyResultRequest_CALLBACK NULL +#define cosmos_group_v1_QueryTallyResultRequest_DEFAULT NULL + +#define cosmos_group_v1_QueryTallyResultResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tally, 1) +#define cosmos_group_v1_QueryTallyResultResponse_CALLBACK NULL +#define cosmos_group_v1_QueryTallyResultResponse_DEFAULT NULL +#define cosmos_group_v1_QueryTallyResultResponse_tally_MSGTYPE cosmos_group_v1_TallyResult + +#define cosmos_group_v1_QueryGroupsRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsRequest_CALLBACK NULL +#define cosmos_group_v1_QueryGroupsRequest_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_group_v1_QueryGroupsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, groups, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_group_v1_QueryGroupsResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_QueryGroupsResponse_DEFAULT NULL +#define cosmos_group_v1_QueryGroupsResponse_groups_MSGTYPE cosmos_group_v1_GroupInfo +#define cosmos_group_v1_QueryGroupsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupInfoRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupInfoResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPolicyInfoRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPolicyInfoResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupMembersRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupMembersResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsByAdminRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsByAdminResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPoliciesByGroupRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPoliciesByGroupResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPoliciesByAdminRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupPoliciesByAdminResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryProposalRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryProposalResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryProposalsByGroupPolicyRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryProposalsByGroupPolicyResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVoteByProposalVoterRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVoteByProposalVoterResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVotesByProposalRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVotesByProposalResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVotesByVoterRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryVotesByVoterResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsByMemberRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsByMemberResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryTallyResultRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryTallyResultResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_QueryGroupsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_v1_QueryGroupInfoRequest_fields &cosmos_group_v1_QueryGroupInfoRequest_msg +#define cosmos_group_v1_QueryGroupInfoResponse_fields &cosmos_group_v1_QueryGroupInfoResponse_msg +#define cosmos_group_v1_QueryGroupPolicyInfoRequest_fields &cosmos_group_v1_QueryGroupPolicyInfoRequest_msg +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_fields &cosmos_group_v1_QueryGroupPolicyInfoResponse_msg +#define cosmos_group_v1_QueryGroupMembersRequest_fields &cosmos_group_v1_QueryGroupMembersRequest_msg +#define cosmos_group_v1_QueryGroupMembersResponse_fields &cosmos_group_v1_QueryGroupMembersResponse_msg +#define cosmos_group_v1_QueryGroupsByAdminRequest_fields &cosmos_group_v1_QueryGroupsByAdminRequest_msg +#define cosmos_group_v1_QueryGroupsByAdminResponse_fields &cosmos_group_v1_QueryGroupsByAdminResponse_msg +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_fields &cosmos_group_v1_QueryGroupPoliciesByGroupRequest_msg +#define cosmos_group_v1_QueryGroupPoliciesByGroupResponse_fields &cosmos_group_v1_QueryGroupPoliciesByGroupResponse_msg +#define cosmos_group_v1_QueryGroupPoliciesByAdminRequest_fields &cosmos_group_v1_QueryGroupPoliciesByAdminRequest_msg +#define cosmos_group_v1_QueryGroupPoliciesByAdminResponse_fields &cosmos_group_v1_QueryGroupPoliciesByAdminResponse_msg +#define cosmos_group_v1_QueryProposalRequest_fields &cosmos_group_v1_QueryProposalRequest_msg +#define cosmos_group_v1_QueryProposalResponse_fields &cosmos_group_v1_QueryProposalResponse_msg +#define cosmos_group_v1_QueryProposalsByGroupPolicyRequest_fields &cosmos_group_v1_QueryProposalsByGroupPolicyRequest_msg +#define cosmos_group_v1_QueryProposalsByGroupPolicyResponse_fields &cosmos_group_v1_QueryProposalsByGroupPolicyResponse_msg +#define cosmos_group_v1_QueryVoteByProposalVoterRequest_fields &cosmos_group_v1_QueryVoteByProposalVoterRequest_msg +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_fields &cosmos_group_v1_QueryVoteByProposalVoterResponse_msg +#define cosmos_group_v1_QueryVotesByProposalRequest_fields &cosmos_group_v1_QueryVotesByProposalRequest_msg +#define cosmos_group_v1_QueryVotesByProposalResponse_fields &cosmos_group_v1_QueryVotesByProposalResponse_msg +#define cosmos_group_v1_QueryVotesByVoterRequest_fields &cosmos_group_v1_QueryVotesByVoterRequest_msg +#define cosmos_group_v1_QueryVotesByVoterResponse_fields &cosmos_group_v1_QueryVotesByVoterResponse_msg +#define cosmos_group_v1_QueryGroupsByMemberRequest_fields &cosmos_group_v1_QueryGroupsByMemberRequest_msg +#define cosmos_group_v1_QueryGroupsByMemberResponse_fields &cosmos_group_v1_QueryGroupsByMemberResponse_msg +#define cosmos_group_v1_QueryTallyResultRequest_fields &cosmos_group_v1_QueryTallyResultRequest_msg +#define cosmos_group_v1_QueryTallyResultResponse_fields &cosmos_group_v1_QueryTallyResultResponse_msg +#define cosmos_group_v1_QueryGroupsRequest_fields &cosmos_group_v1_QueryGroupsRequest_msg +#define cosmos_group_v1_QueryGroupsResponse_fields &cosmos_group_v1_QueryGroupsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_group_v1_QueryGroupPolicyInfoRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupMembersResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupsByAdminRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupsByAdminResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupPoliciesByGroupResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupPoliciesByAdminRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupPoliciesByAdminResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryProposalsByGroupPolicyRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryProposalsByGroupPolicyResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryVoteByProposalVoterRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryVotesByProposalResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryVotesByVoterRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryVotesByVoterResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupsByMemberRequest_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupsByMemberResponse_size depends on runtime parameters */ +/* cosmos_group_v1_QueryGroupsResponse_size depends on runtime parameters */ +#define cosmos_group_v1_QueryGroupInfoRequest_size 11 +#define cosmos_group_v1_QueryProposalRequest_size 11 +#define cosmos_group_v1_QueryTallyResultRequest_size 11 +#if defined(cosmos_group_v1_GroupInfo_size) +#define cosmos_group_v1_QueryGroupInfoResponse_size (6 + cosmos_group_v1_GroupInfo_size) +#endif +#if defined(cosmos_group_v1_GroupPolicyInfo_size) +#define cosmos_group_v1_QueryGroupPolicyInfoResponse_size (6 + cosmos_group_v1_GroupPolicyInfo_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define COSMOS_GROUP_V1_COSMOS_GROUP_V1_QUERY_PB_H_MAX_SIZE cosmos_group_v1_QueryGroupMembersRequest_size +#define cosmos_group_v1_QueryGroupMembersRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_group_v1_QueryGroupPoliciesByGroupRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_group_v1_QueryGroupsRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_group_v1_QueryVotesByProposalRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(cosmos_group_v1_Proposal_size) +#define cosmos_group_v1_QueryProposalResponse_size (6 + cosmos_group_v1_Proposal_size) +#endif +#if defined(cosmos_group_v1_Vote_size) +#define cosmos_group_v1_QueryVoteByProposalVoterResponse_size (6 + cosmos_group_v1_Vote_size) +#endif +#if defined(cosmos_group_v1_TallyResult_size) +#define cosmos_group_v1_QueryTallyResultResponse_size (6 + cosmos_group_v1_TallyResult_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/v1/tx.pb.c b/app/src/protobuf/cosmos/group/v1/tx.pb.c new file mode 100644 index 0000000..bcbf1be --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/tx.pb.c @@ -0,0 +1,64 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_v1_MsgCreateGroup, cosmos_group_v1_MsgCreateGroup, AUTO) + +PB_BIND(cosmos_group_v1_MsgCreateGroupResponse, cosmos_group_v1_MsgCreateGroupResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupMembers, cosmos_group_v1_MsgUpdateGroupMembers, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupMembersResponse, cosmos_group_v1_MsgUpdateGroupMembersResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupAdmin, cosmos_group_v1_MsgUpdateGroupAdmin, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupAdminResponse, cosmos_group_v1_MsgUpdateGroupAdminResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupMetadata, cosmos_group_v1_MsgUpdateGroupMetadata, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupMetadataResponse, cosmos_group_v1_MsgUpdateGroupMetadataResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgCreateGroupPolicy, cosmos_group_v1_MsgCreateGroupPolicy, AUTO) + +PB_BIND(cosmos_group_v1_MsgCreateGroupPolicyResponse, cosmos_group_v1_MsgCreateGroupPolicyResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyAdmin, cosmos_group_v1_MsgUpdateGroupPolicyAdmin, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse, cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgCreateGroupWithPolicy, cosmos_group_v1_MsgCreateGroupWithPolicy, AUTO) + +PB_BIND(cosmos_group_v1_MsgCreateGroupWithPolicyResponse, cosmos_group_v1_MsgCreateGroupWithPolicyResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy, cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse, + cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyMetadata, cosmos_group_v1_MsgUpdateGroupPolicyMetadata, AUTO) + +PB_BIND(cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse, cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgSubmitProposal, cosmos_group_v1_MsgSubmitProposal, AUTO) + +PB_BIND(cosmos_group_v1_MsgSubmitProposalResponse, cosmos_group_v1_MsgSubmitProposalResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgWithdrawProposal, cosmos_group_v1_MsgWithdrawProposal, AUTO) + +PB_BIND(cosmos_group_v1_MsgWithdrawProposalResponse, cosmos_group_v1_MsgWithdrawProposalResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgVote, cosmos_group_v1_MsgVote, AUTO) + +PB_BIND(cosmos_group_v1_MsgVoteResponse, cosmos_group_v1_MsgVoteResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgExec, cosmos_group_v1_MsgExec, AUTO) + +PB_BIND(cosmos_group_v1_MsgExecResponse, cosmos_group_v1_MsgExecResponse, AUTO) + +PB_BIND(cosmos_group_v1_MsgLeaveGroup, cosmos_group_v1_MsgLeaveGroup, AUTO) + +PB_BIND(cosmos_group_v1_MsgLeaveGroupResponse, cosmos_group_v1_MsgLeaveGroupResponse, AUTO) diff --git a/app/src/protobuf/cosmos/group/v1/tx.pb.h b/app/src/protobuf/cosmos/group/v1/tx.pb.h new file mode 100644 index 0000000..ca15de1 --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/tx.pb.h @@ -0,0 +1,787 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_TX_PB_H_INCLUDED +#define PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/group/v1/types.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* Exec defines modes of execution of a proposal on creation or on new vote. */ +typedef enum _cosmos_group_v1_Exec { + /* An empty value means that there should be a separate + MsgExec request for the proposal to execute. */ + cosmos_group_v1_Exec_EXEC_UNSPECIFIED = 0, + /* Try to execute the proposal immediately. + If the proposal is not allowed per the DecisionPolicy, + the proposal will still be open and could + be executed at a later point. */ + cosmos_group_v1_Exec_EXEC_TRY = 1 +} cosmos_group_v1_Exec; + +/* Struct definitions */ +/* MsgCreateGroup is the Msg/CreateGroup request type. */ +typedef struct _cosmos_group_v1_MsgCreateGroup { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* members defines the group members. */ + pb_callback_t members; + /* metadata is any arbitrary metadata to attached to the group. */ + pb_callback_t metadata; +} cosmos_group_v1_MsgCreateGroup; + +/* MsgCreateGroupResponse is the Msg/CreateGroup response type. */ +typedef struct _cosmos_group_v1_MsgCreateGroupResponse { + /* group_id is the unique ID of the newly created group. */ + uint64_t group_id; +} cosmos_group_v1_MsgCreateGroupResponse; + +/* MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupMembers { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* member_updates is the list of members to update, + set weight to 0 to remove a member. */ + pb_callback_t member_updates; +} cosmos_group_v1_MsgUpdateGroupMembers; + +/* MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupMembersResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupMembersResponse; + +/* MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupAdmin { + /* admin is the current account address of the group admin. */ + pb_callback_t admin; + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* new_admin is the group new admin account address. */ + pb_callback_t new_admin; +} cosmos_group_v1_MsgUpdateGroupAdmin; + +/* MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupAdminResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupAdminResponse; + +/* MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupMetadata { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* metadata is the updated group's metadata. */ + pb_callback_t metadata; +} cosmos_group_v1_MsgUpdateGroupMetadata; + +/* MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupMetadataResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupMetadataResponse; + +/* MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. */ +typedef struct _cosmos_group_v1_MsgCreateGroupPolicy { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* metadata is any arbitrary metadata attached to the group policy. */ + pb_callback_t metadata; + /* decision_policy specifies the group policy's decision policy. */ + bool has_decision_policy; + google_protobuf_Any decision_policy; +} cosmos_group_v1_MsgCreateGroupPolicy; + +/* MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. */ +typedef struct _cosmos_group_v1_MsgCreateGroupPolicyResponse { + /* address is the account address of the newly created group policy. */ + pb_callback_t address; +} cosmos_group_v1_MsgCreateGroupPolicyResponse; + +/* MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyAdmin { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_policy_address is the account address of the group policy. */ + pb_callback_t group_policy_address; + /* new_admin is the new group policy admin. */ + pb_callback_t new_admin; +} cosmos_group_v1_MsgUpdateGroupPolicyAdmin; + +/* MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse; + +/* MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. */ +typedef struct _cosmos_group_v1_MsgCreateGroupWithPolicy { + /* admin is the account address of the group and group policy admin. */ + pb_callback_t admin; + /* members defines the group members. */ + pb_callback_t members; + /* group_metadata is any arbitrary metadata attached to the group. */ + pb_callback_t group_metadata; + /* group_policy_metadata is any arbitrary metadata attached to the group policy. */ + pb_callback_t group_policy_metadata; + /* group_policy_as_admin is a boolean field, if set to true, the group policy account address will be used as group + and group policy admin. */ + bool group_policy_as_admin; + /* decision_policy specifies the group policy's decision policy. */ + bool has_decision_policy; + google_protobuf_Any decision_policy; +} cosmos_group_v1_MsgCreateGroupWithPolicy; + +/* MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. */ +typedef struct _cosmos_group_v1_MsgCreateGroupWithPolicyResponse { + /* group_id is the unique ID of the newly created group with policy. */ + uint64_t group_id; + /* group_policy_address is the account address of the newly created group policy. */ + pb_callback_t group_policy_address; +} cosmos_group_v1_MsgCreateGroupWithPolicyResponse; + +/* MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_policy_address is the account address of group policy. */ + pb_callback_t group_policy_address; + /* decision_policy is the updated group policy's decision policy. */ + bool has_decision_policy; + google_protobuf_Any decision_policy; +} cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy; + +/* MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse; + +/* MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyMetadata { + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* group_policy_address is the account address of group policy. */ + pb_callback_t group_policy_address; + /* metadata is the group policy metadata to be updated. */ + pb_callback_t metadata; +} cosmos_group_v1_MsgUpdateGroupPolicyMetadata; + +/* MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. */ +typedef struct _cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse { + char dummy_field; +} cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse; + +/* MsgSubmitProposal is the Msg/SubmitProposal request type. */ +typedef struct _cosmos_group_v1_MsgSubmitProposal { + /* group_policy_address is the account address of group policy. */ + pb_callback_t group_policy_address; + /* proposers are the account addresses of the proposers. + Proposers signatures will be counted as yes votes. */ + pb_callback_t proposers; + /* metadata is any arbitrary metadata attached to the proposal. */ + pb_callback_t metadata; + /* messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */ + pb_callback_t messages; + /* exec defines the mode of execution of the proposal, + whether it should be executed immediately on creation or not. + If so, proposers signatures are considered as Yes votes. */ + cosmos_group_v1_Exec exec; + /* title is the title of the proposal. + + Since: cosmos-sdk 0.47 */ + pb_callback_t title; + /* summary is the summary of the proposal. + + Since: cosmos-sdk 0.47 */ + pb_callback_t summary; +} cosmos_group_v1_MsgSubmitProposal; + +/* MsgSubmitProposalResponse is the Msg/SubmitProposal response type. */ +typedef struct _cosmos_group_v1_MsgSubmitProposalResponse { + /* proposal is the unique ID of the proposal. */ + uint64_t proposal_id; +} cosmos_group_v1_MsgSubmitProposalResponse; + +/* MsgWithdrawProposal is the Msg/WithdrawProposal request type. */ +typedef struct _cosmos_group_v1_MsgWithdrawProposal { + /* proposal is the unique ID of the proposal. */ + uint64_t proposal_id; + /* address is the admin of the group policy or one of the proposer of the proposal. */ + pb_callback_t address; +} cosmos_group_v1_MsgWithdrawProposal; + +/* MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. */ +typedef struct _cosmos_group_v1_MsgWithdrawProposalResponse { + char dummy_field; +} cosmos_group_v1_MsgWithdrawProposalResponse; + +/* MsgVote is the Msg/Vote request type. */ +typedef struct _cosmos_group_v1_MsgVote { + /* proposal is the unique ID of the proposal. */ + uint64_t proposal_id; + /* voter is the voter account address. */ + pb_callback_t voter; + /* option is the voter's choice on the proposal. */ + cosmos_group_v1_VoteOption option; + /* metadata is any arbitrary metadata attached to the vote. */ + pb_callback_t metadata; + /* exec defines whether the proposal should be executed + immediately after voting or not. */ + cosmos_group_v1_Exec exec; +} cosmos_group_v1_MsgVote; + +/* MsgVoteResponse is the Msg/Vote response type. */ +typedef struct _cosmos_group_v1_MsgVoteResponse { + char dummy_field; +} cosmos_group_v1_MsgVoteResponse; + +/* MsgExec is the Msg/Exec request type. */ +typedef struct _cosmos_group_v1_MsgExec { + /* proposal is the unique ID of the proposal. */ + uint64_t proposal_id; + /* executor is the account address used to execute the proposal. */ + pb_callback_t executor; +} cosmos_group_v1_MsgExec; + +/* MsgExecResponse is the Msg/Exec request type. */ +typedef struct _cosmos_group_v1_MsgExecResponse { + /* result is the final result of the proposal execution. */ + cosmos_group_v1_ProposalExecutorResult result; +} cosmos_group_v1_MsgExecResponse; + +/* MsgLeaveGroup is the Msg/LeaveGroup request type. */ +typedef struct _cosmos_group_v1_MsgLeaveGroup { + /* address is the account address of the group member. */ + pb_callback_t address; + /* group_id is the unique ID of the group. */ + uint64_t group_id; +} cosmos_group_v1_MsgLeaveGroup; + +/* MsgLeaveGroupResponse is the Msg/LeaveGroup response type. */ +typedef struct _cosmos_group_v1_MsgLeaveGroupResponse { + char dummy_field; +} cosmos_group_v1_MsgLeaveGroupResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_group_v1_Exec_MIN cosmos_group_v1_Exec_EXEC_UNSPECIFIED +#define _cosmos_group_v1_Exec_MAX cosmos_group_v1_Exec_EXEC_TRY +#define _cosmos_group_v1_Exec_ARRAYSIZE ((cosmos_group_v1_Exec)(cosmos_group_v1_Exec_EXEC_TRY + 1)) + +#define cosmos_group_v1_MsgSubmitProposal_exec_ENUMTYPE cosmos_group_v1_Exec + +#define cosmos_group_v1_MsgVote_option_ENUMTYPE cosmos_group_v1_VoteOption +#define cosmos_group_v1_MsgVote_exec_ENUMTYPE cosmos_group_v1_Exec + +#define cosmos_group_v1_MsgExecResponse_result_ENUMTYPE cosmos_group_v1_ProposalExecutorResult + +/* Initializer values for message structs */ +#define cosmos_group_v1_MsgCreateGroup_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgCreateGroupResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupMembers_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupAdmin_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupMetadata_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgCreateGroupPolicy_init_default \ + { {{NULL}, NULL}, 0, {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgCreateGroupWithPolicy_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Any_init_default } +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgSubmitProposal_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _cosmos_group_v1_Exec_MIN, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_group_v1_MsgSubmitProposalResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgWithdrawProposal_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgWithdrawProposalResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgVote_init_default \ + { 0, {{NULL}, NULL}, _cosmos_group_v1_VoteOption_MIN, {{NULL}, NULL}, _cosmos_group_v1_Exec_MIN } +#define cosmos_group_v1_MsgVoteResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgExec_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgExecResponse_init_default \ + { _cosmos_group_v1_ProposalExecutorResult_MIN } +#define cosmos_group_v1_MsgLeaveGroup_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_group_v1_MsgLeaveGroupResponse_init_default \ + { 0 } +#define cosmos_group_v1_MsgCreateGroup_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgCreateGroupResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupMembers_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupAdmin_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupMetadata_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgCreateGroupPolicy_init_zero \ + { {{NULL}, NULL}, 0, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgCreateGroupWithPolicy_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Any_init_zero } +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgSubmitProposal_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _cosmos_group_v1_Exec_MIN, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_group_v1_MsgSubmitProposalResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgWithdrawProposal_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgWithdrawProposalResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgVote_init_zero \ + { 0, {{NULL}, NULL}, _cosmos_group_v1_VoteOption_MIN, {{NULL}, NULL}, _cosmos_group_v1_Exec_MIN } +#define cosmos_group_v1_MsgVoteResponse_init_zero \ + { 0 } +#define cosmos_group_v1_MsgExec_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_group_v1_MsgExecResponse_init_zero \ + { _cosmos_group_v1_ProposalExecutorResult_MIN } +#define cosmos_group_v1_MsgLeaveGroup_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_group_v1_MsgLeaveGroupResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_v1_MsgCreateGroup_admin_tag 1 +#define cosmos_group_v1_MsgCreateGroup_members_tag 2 +#define cosmos_group_v1_MsgCreateGroup_metadata_tag 3 +#define cosmos_group_v1_MsgCreateGroupResponse_group_id_tag 1 +#define cosmos_group_v1_MsgUpdateGroupMembers_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupMembers_group_id_tag 2 +#define cosmos_group_v1_MsgUpdateGroupMembers_member_updates_tag 3 +#define cosmos_group_v1_MsgUpdateGroupAdmin_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupAdmin_group_id_tag 2 +#define cosmos_group_v1_MsgUpdateGroupAdmin_new_admin_tag 3 +#define cosmos_group_v1_MsgUpdateGroupMetadata_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupMetadata_group_id_tag 2 +#define cosmos_group_v1_MsgUpdateGroupMetadata_metadata_tag 3 +#define cosmos_group_v1_MsgCreateGroupPolicy_admin_tag 1 +#define cosmos_group_v1_MsgCreateGroupPolicy_group_id_tag 2 +#define cosmos_group_v1_MsgCreateGroupPolicy_metadata_tag 3 +#define cosmos_group_v1_MsgCreateGroupPolicy_decision_policy_tag 4 +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_address_tag 1 +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_group_policy_address_tag 2 +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_new_admin_tag 3 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_admin_tag 1 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_members_tag 2 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_group_metadata_tag 3 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_group_policy_metadata_tag 4 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_group_policy_as_admin_tag 5 +#define cosmos_group_v1_MsgCreateGroupWithPolicy_decision_policy_tag 6 +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_group_id_tag 1 +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_group_policy_address_tag 2 +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_group_policy_address_tag 2 +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_decision_policy_tag 3 +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_admin_tag 1 +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_group_policy_address_tag 2 +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_metadata_tag 3 +#define cosmos_group_v1_MsgSubmitProposal_group_policy_address_tag 1 +#define cosmos_group_v1_MsgSubmitProposal_proposers_tag 2 +#define cosmos_group_v1_MsgSubmitProposal_metadata_tag 3 +#define cosmos_group_v1_MsgSubmitProposal_messages_tag 4 +#define cosmos_group_v1_MsgSubmitProposal_exec_tag 5 +#define cosmos_group_v1_MsgSubmitProposal_title_tag 6 +#define cosmos_group_v1_MsgSubmitProposal_summary_tag 7 +#define cosmos_group_v1_MsgSubmitProposalResponse_proposal_id_tag 1 +#define cosmos_group_v1_MsgWithdrawProposal_proposal_id_tag 1 +#define cosmos_group_v1_MsgWithdrawProposal_address_tag 2 +#define cosmos_group_v1_MsgVote_proposal_id_tag 1 +#define cosmos_group_v1_MsgVote_voter_tag 2 +#define cosmos_group_v1_MsgVote_option_tag 3 +#define cosmos_group_v1_MsgVote_metadata_tag 4 +#define cosmos_group_v1_MsgVote_exec_tag 5 +#define cosmos_group_v1_MsgExec_proposal_id_tag 1 +#define cosmos_group_v1_MsgExec_executor_tag 2 +#define cosmos_group_v1_MsgExecResponse_result_tag 2 +#define cosmos_group_v1_MsgLeaveGroup_address_tag 1 +#define cosmos_group_v1_MsgLeaveGroup_group_id_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_v1_MsgCreateGroup_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, members, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) +#define cosmos_group_v1_MsgCreateGroup_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgCreateGroup_DEFAULT NULL +#define cosmos_group_v1_MsgCreateGroup_members_MSGTYPE cosmos_group_v1_MemberRequest + +#define cosmos_group_v1_MsgCreateGroupResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, group_id, 1) +#define cosmos_group_v1_MsgCreateGroupResponse_CALLBACK NULL +#define cosmos_group_v1_MsgCreateGroupResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupMembers_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, member_updates, 3) +#define cosmos_group_v1_MsgUpdateGroupMembers_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupMembers_DEFAULT NULL +#define cosmos_group_v1_MsgUpdateGroupMembers_member_updates_MSGTYPE cosmos_group_v1_MemberRequest + +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupAdmin_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, new_admin, 3) +#define cosmos_group_v1_MsgUpdateGroupAdmin_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupAdmin_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupMetadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) +#define cosmos_group_v1_MsgUpdateGroupMetadata_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupMetadata_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgCreateGroupPolicy_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, decision_policy, 4) +#define cosmos_group_v1_MsgCreateGroupPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgCreateGroupPolicy_DEFAULT NULL +#define cosmos_group_v1_MsgCreateGroupPolicy_decision_policy_MSGTYPE google_protobuf_Any + +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, new_admin, 3) +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgCreateGroupWithPolicy_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, members, 2) \ + X(a, CALLBACK, SINGULAR, STRING, group_metadata, 3) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_metadata, 4) \ + X(a, STATIC, SINGULAR, BOOL, group_policy_as_admin, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, decision_policy, 6) +#define cosmos_group_v1_MsgCreateGroupWithPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgCreateGroupWithPolicy_DEFAULT NULL +#define cosmos_group_v1_MsgCreateGroupWithPolicy_members_MSGTYPE cosmos_group_v1_MemberRequest +#define cosmos_group_v1_MsgCreateGroupWithPolicy_decision_policy_MSGTYPE google_protobuf_Any + +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 2) +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, decision_policy, 3) +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_DEFAULT NULL +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_decision_policy_MSGTYPE google_protobuf_Any + +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 1) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_DEFAULT NULL + +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_CALLBACK NULL +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgSubmitProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 1) \ + X(a, CALLBACK, REPEATED, STRING, proposers, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, messages, 4) \ + X(a, STATIC, SINGULAR, UENUM, exec, 5) \ + X(a, CALLBACK, SINGULAR, STRING, title, 6) \ + X(a, CALLBACK, SINGULAR, STRING, summary, 7) +#define cosmos_group_v1_MsgSubmitProposal_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgSubmitProposal_DEFAULT NULL +#define cosmos_group_v1_MsgSubmitProposal_messages_MSGTYPE google_protobuf_Any + +#define cosmos_group_v1_MsgSubmitProposalResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) +#define cosmos_group_v1_MsgSubmitProposalResponse_CALLBACK NULL +#define cosmos_group_v1_MsgSubmitProposalResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgWithdrawProposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, address, 2) +#define cosmos_group_v1_MsgWithdrawProposal_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgWithdrawProposal_DEFAULT NULL + +#define cosmos_group_v1_MsgWithdrawProposalResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgWithdrawProposalResponse_CALLBACK NULL +#define cosmos_group_v1_MsgWithdrawProposalResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgVote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, STATIC, SINGULAR, UENUM, option, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) \ + X(a, STATIC, SINGULAR, UENUM, exec, 5) +#define cosmos_group_v1_MsgVote_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgVote_DEFAULT NULL + +#define cosmos_group_v1_MsgVoteResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgVoteResponse_CALLBACK NULL +#define cosmos_group_v1_MsgVoteResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgExec_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, executor, 2) +#define cosmos_group_v1_MsgExec_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgExec_DEFAULT NULL + +#define cosmos_group_v1_MsgExecResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 2) +#define cosmos_group_v1_MsgExecResponse_CALLBACK NULL +#define cosmos_group_v1_MsgExecResponse_DEFAULT NULL + +#define cosmos_group_v1_MsgLeaveGroup_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) +#define cosmos_group_v1_MsgLeaveGroup_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MsgLeaveGroup_DEFAULT NULL + +#define cosmos_group_v1_MsgLeaveGroupResponse_FIELDLIST(X, a) + +#define cosmos_group_v1_MsgLeaveGroupResponse_CALLBACK NULL +#define cosmos_group_v1_MsgLeaveGroupResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroup_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroupResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupMembers_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupMembersResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupAdmin_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupAdminResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupMetadata_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupMetadataResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroupPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroupPolicyResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyAdmin_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroupWithPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgCreateGroupWithPolicyResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyMetadata_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgSubmitProposal_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgSubmitProposalResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgWithdrawProposal_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgWithdrawProposalResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgVote_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgVoteResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgExec_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgExecResponse_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgLeaveGroup_msg; +extern const pb_msgdesc_t cosmos_group_v1_MsgLeaveGroupResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_v1_MsgCreateGroup_fields &cosmos_group_v1_MsgCreateGroup_msg +#define cosmos_group_v1_MsgCreateGroupResponse_fields &cosmos_group_v1_MsgCreateGroupResponse_msg +#define cosmos_group_v1_MsgUpdateGroupMembers_fields &cosmos_group_v1_MsgUpdateGroupMembers_msg +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_fields &cosmos_group_v1_MsgUpdateGroupMembersResponse_msg +#define cosmos_group_v1_MsgUpdateGroupAdmin_fields &cosmos_group_v1_MsgUpdateGroupAdmin_msg +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_fields &cosmos_group_v1_MsgUpdateGroupAdminResponse_msg +#define cosmos_group_v1_MsgUpdateGroupMetadata_fields &cosmos_group_v1_MsgUpdateGroupMetadata_msg +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_fields &cosmos_group_v1_MsgUpdateGroupMetadataResponse_msg +#define cosmos_group_v1_MsgCreateGroupPolicy_fields &cosmos_group_v1_MsgCreateGroupPolicy_msg +#define cosmos_group_v1_MsgCreateGroupPolicyResponse_fields &cosmos_group_v1_MsgCreateGroupPolicyResponse_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyAdmin_fields &cosmos_group_v1_MsgUpdateGroupPolicyAdmin_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_fields &cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_msg +#define cosmos_group_v1_MsgCreateGroupWithPolicy_fields &cosmos_group_v1_MsgCreateGroupWithPolicy_msg +#define cosmos_group_v1_MsgCreateGroupWithPolicyResponse_fields &cosmos_group_v1_MsgCreateGroupWithPolicyResponse_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_fields &cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_fields \ + &cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadata_fields &cosmos_group_v1_MsgUpdateGroupPolicyMetadata_msg +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_fields &cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_msg +#define cosmos_group_v1_MsgSubmitProposal_fields &cosmos_group_v1_MsgSubmitProposal_msg +#define cosmos_group_v1_MsgSubmitProposalResponse_fields &cosmos_group_v1_MsgSubmitProposalResponse_msg +#define cosmos_group_v1_MsgWithdrawProposal_fields &cosmos_group_v1_MsgWithdrawProposal_msg +#define cosmos_group_v1_MsgWithdrawProposalResponse_fields &cosmos_group_v1_MsgWithdrawProposalResponse_msg +#define cosmos_group_v1_MsgVote_fields &cosmos_group_v1_MsgVote_msg +#define cosmos_group_v1_MsgVoteResponse_fields &cosmos_group_v1_MsgVoteResponse_msg +#define cosmos_group_v1_MsgExec_fields &cosmos_group_v1_MsgExec_msg +#define cosmos_group_v1_MsgExecResponse_fields &cosmos_group_v1_MsgExecResponse_msg +#define cosmos_group_v1_MsgLeaveGroup_fields &cosmos_group_v1_MsgLeaveGroup_msg +#define cosmos_group_v1_MsgLeaveGroupResponse_fields &cosmos_group_v1_MsgLeaveGroupResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_group_v1_MsgCreateGroup_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupMembers_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupAdmin_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupMetadata_size depends on runtime parameters */ +/* cosmos_group_v1_MsgCreateGroupPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_MsgCreateGroupPolicyResponse_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupPolicyAdmin_size depends on runtime parameters */ +/* cosmos_group_v1_MsgCreateGroupWithPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_MsgCreateGroupWithPolicyResponse_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_MsgUpdateGroupPolicyMetadata_size depends on runtime parameters */ +/* cosmos_group_v1_MsgSubmitProposal_size depends on runtime parameters */ +/* cosmos_group_v1_MsgWithdrawProposal_size depends on runtime parameters */ +/* cosmos_group_v1_MsgVote_size depends on runtime parameters */ +/* cosmos_group_v1_MsgExec_size depends on runtime parameters */ +/* cosmos_group_v1_MsgLeaveGroup_size depends on runtime parameters */ +#define COSMOS_GROUP_V1_COSMOS_GROUP_V1_TX_PB_H_MAX_SIZE cosmos_group_v1_MsgCreateGroupResponse_size +#define cosmos_group_v1_MsgCreateGroupResponse_size 11 +#define cosmos_group_v1_MsgExecResponse_size 2 +#define cosmos_group_v1_MsgLeaveGroupResponse_size 0 +#define cosmos_group_v1_MsgSubmitProposalResponse_size 11 +#define cosmos_group_v1_MsgUpdateGroupAdminResponse_size 0 +#define cosmos_group_v1_MsgUpdateGroupMembersResponse_size 0 +#define cosmos_group_v1_MsgUpdateGroupMetadataResponse_size 0 +#define cosmos_group_v1_MsgUpdateGroupPolicyAdminResponse_size 0 +#define cosmos_group_v1_MsgUpdateGroupPolicyDecisionPolicyResponse_size 0 +#define cosmos_group_v1_MsgUpdateGroupPolicyMetadataResponse_size 0 +#define cosmos_group_v1_MsgVoteResponse_size 0 +#define cosmos_group_v1_MsgWithdrawProposalResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/group/v1/types.pb.c b/app/src/protobuf/cosmos/group/v1/types.pb.c new file mode 100644 index 0000000..d5b82f3 --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/types.pb.c @@ -0,0 +1,29 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/group/v1/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_group_v1_Member, cosmos_group_v1_Member, AUTO) + +PB_BIND(cosmos_group_v1_MemberRequest, cosmos_group_v1_MemberRequest, AUTO) + +PB_BIND(cosmos_group_v1_ThresholdDecisionPolicy, cosmos_group_v1_ThresholdDecisionPolicy, AUTO) + +PB_BIND(cosmos_group_v1_PercentageDecisionPolicy, cosmos_group_v1_PercentageDecisionPolicy, AUTO) + +PB_BIND(cosmos_group_v1_DecisionPolicyWindows, cosmos_group_v1_DecisionPolicyWindows, AUTO) + +PB_BIND(cosmos_group_v1_GroupInfo, cosmos_group_v1_GroupInfo, AUTO) + +PB_BIND(cosmos_group_v1_GroupMember, cosmos_group_v1_GroupMember, AUTO) + +PB_BIND(cosmos_group_v1_GroupPolicyInfo, cosmos_group_v1_GroupPolicyInfo, AUTO) + +PB_BIND(cosmos_group_v1_Proposal, cosmos_group_v1_Proposal, AUTO) + +PB_BIND(cosmos_group_v1_TallyResult, cosmos_group_v1_TallyResult, AUTO) + +PB_BIND(cosmos_group_v1_Vote, cosmos_group_v1_Vote, AUTO) diff --git a/app/src/protobuf/cosmos/group/v1/types.pb.h b/app/src/protobuf/cosmos/group/v1/types.pb.h new file mode 100644 index 0000000..9603d21 --- /dev/null +++ b/app/src/protobuf/cosmos/group/v1/types.pb.h @@ -0,0 +1,586 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_TYPES_PB_H_INCLUDED +#define PB_COSMOS_GROUP_V1_COSMOS_GROUP_V1_TYPES_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* VoteOption enumerates the valid vote options for a given proposal. */ +typedef enum _cosmos_group_v1_VoteOption { + /* VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will + return an error. */ + cosmos_group_v1_VoteOption_VOTE_OPTION_UNSPECIFIED = 0, + /* VOTE_OPTION_YES defines a yes vote option. */ + cosmos_group_v1_VoteOption_VOTE_OPTION_YES = 1, + /* VOTE_OPTION_ABSTAIN defines an abstain vote option. */ + cosmos_group_v1_VoteOption_VOTE_OPTION_ABSTAIN = 2, + /* VOTE_OPTION_NO defines a no vote option. */ + cosmos_group_v1_VoteOption_VOTE_OPTION_NO = 3, + /* VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. */ + cosmos_group_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO = 4 +} cosmos_group_v1_VoteOption; + +/* ProposalStatus defines proposal statuses. */ +typedef enum _cosmos_group_v1_ProposalStatus { + /* An empty value is invalid and not allowed. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED = 0, + /* Initial status of a proposal when submitted. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_SUBMITTED = 1, + /* Final status of a proposal when the final tally is done and the outcome + passes the group policy's decision policy. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_ACCEPTED = 2, + /* Final status of a proposal when the final tally is done and the outcome + is rejected by the group policy's decision policy. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_REJECTED = 3, + /* Final status of a proposal when the group policy is modified before the + final tally. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_ABORTED = 4, + /* A proposal can be withdrawn before the voting start time by the owner. + When this happens the final status is Withdrawn. */ + cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_WITHDRAWN = 5 +} cosmos_group_v1_ProposalStatus; + +/* ProposalExecutorResult defines types of proposal executor results. */ +typedef enum _cosmos_group_v1_ProposalExecutorResult { + /* An empty value is not allowed. */ + cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0, + /* We have not yet run the executor. */ + cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1, + /* The executor was successful and proposed action updated state. */ + cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2, + /* The executor returned an error and proposed action didn't update state. */ + cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_FAILURE = 3 +} cosmos_group_v1_ProposalExecutorResult; + +/* Struct definitions */ +/* Member represents a group member with an account address, + non-zero weight, metadata and added_at timestamp. */ +typedef struct _cosmos_group_v1_Member { + /* address is the member's account address. */ + pb_callback_t address; + /* weight is the member's voting weight that should be greater than 0. */ + pb_callback_t weight; + /* metadata is any arbitrary metadata attached to the member. */ + pb_callback_t metadata; + /* added_at is a timestamp specifying when a member was added. */ + bool has_added_at; + google_protobuf_Timestamp added_at; +} cosmos_group_v1_Member; + +/* MemberRequest represents a group member to be used in Msg server requests. + Contrary to `Member`, it doesn't have any `added_at` field + since this field cannot be set as part of requests. */ +typedef struct _cosmos_group_v1_MemberRequest { + /* address is the member's account address. */ + pb_callback_t address; + /* weight is the member's voting weight that should be greater than 0. */ + pb_callback_t weight; + /* metadata is any arbitrary metadata attached to the member. */ + pb_callback_t metadata; +} cosmos_group_v1_MemberRequest; + +/* DecisionPolicyWindows defines the different windows for voting and execution. */ +typedef struct _cosmos_group_v1_DecisionPolicyWindows { + /* voting_period is the duration from submission of a proposal to the end of voting period + Within this times votes can be submitted with MsgVote. */ + bool has_voting_period; + google_protobuf_Duration voting_period; + /* min_execution_period is the minimum duration after the proposal submission + where members can start sending MsgExec. This means that the window for + sending a MsgExec transaction is: + `[ submission + min_execution_period ; submission + voting_period + max_execution_period]` + where max_execution_period is a app-specific config, defined in the keeper. + If not set, min_execution_period will default to 0. + + Please make sure to set a `min_execution_period` that is smaller than + `voting_period + max_execution_period`, or else the above execution window + is empty, meaning that all proposals created with this decision policy + won't be able to be executed. */ + bool has_min_execution_period; + google_protobuf_Duration min_execution_period; +} cosmos_group_v1_DecisionPolicyWindows; + +/* ThresholdDecisionPolicy is a decision policy where a proposal passes when it + satisfies the two following conditions: + 1. The sum of all `YES` voter's weights is greater or equal than the defined + `threshold`. + 2. The voting and execution periods of the proposal respect the parameters + given by `windows`. */ +typedef struct _cosmos_group_v1_ThresholdDecisionPolicy { + /* threshold is the minimum weighted sum of `YES` votes that must be met or + exceeded for a proposal to succeed. */ + pb_callback_t threshold; + /* windows defines the different windows for voting and execution. */ + bool has_windows; + cosmos_group_v1_DecisionPolicyWindows windows; +} cosmos_group_v1_ThresholdDecisionPolicy; + +/* PercentageDecisionPolicy is a decision policy where a proposal passes when + it satisfies the two following conditions: + 1. The percentage of all `YES` voters' weights out of the total group weight + is greater or equal than the given `percentage`. + 2. The voting and execution periods of the proposal respect the parameters + given by `windows`. */ +typedef struct _cosmos_group_v1_PercentageDecisionPolicy { + /* percentage is the minimum percentage of the weighted sum of `YES` votes must + meet for a proposal to succeed. */ + pb_callback_t percentage; + /* windows defines the different windows for voting and execution. */ + bool has_windows; + cosmos_group_v1_DecisionPolicyWindows windows; +} cosmos_group_v1_PercentageDecisionPolicy; + +/* GroupInfo represents the high-level on-chain information for a group. */ +typedef struct _cosmos_group_v1_GroupInfo { + /* id is the unique ID of the group. */ + uint64_t id; + /* admin is the account address of the group's admin. */ + pb_callback_t admin; + /* metadata is any arbitrary metadata to attached to the group. + the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#group-1 */ + pb_callback_t metadata; + /* version is used to track changes to a group's membership structure that + would break existing proposals. Whenever any members weight is changed, + or any member is added or removed this version is incremented and will + cause proposals based on older versions of this group to fail */ + uint64_t version; + /* total_weight is the sum of the group members' weights. */ + pb_callback_t total_weight; + /* created_at is a timestamp specifying when a group was created. */ + bool has_created_at; + google_protobuf_Timestamp created_at; +} cosmos_group_v1_GroupInfo; + +/* GroupMember represents the relationship between a group and a member. */ +typedef struct _cosmos_group_v1_GroupMember { + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* member is the member data. */ + bool has_member; + cosmos_group_v1_Member member; +} cosmos_group_v1_GroupMember; + +/* GroupPolicyInfo represents the high-level on-chain information for a group policy. */ +typedef struct _cosmos_group_v1_GroupPolicyInfo { + /* address is the account address of group policy. */ + pb_callback_t address; + /* group_id is the unique ID of the group. */ + uint64_t group_id; + /* admin is the account address of the group admin. */ + pb_callback_t admin; + /* metadata is any arbitrary metadata attached to the group policy. + the recommended format of the metadata is to be found here: + https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 */ + pb_callback_t metadata; + /* version is used to track changes to a group's GroupPolicyInfo structure that + would create a different result on a running proposal. */ + uint64_t version; + /* decision_policy specifies the group policy's decision policy. */ + bool has_decision_policy; + google_protobuf_Any decision_policy; + /* created_at is a timestamp specifying when a group policy was created. */ + bool has_created_at; + google_protobuf_Timestamp created_at; +} cosmos_group_v1_GroupPolicyInfo; + +/* TallyResult represents the sum of weighted votes for each vote option. */ +typedef struct _cosmos_group_v1_TallyResult { + /* yes_count is the weighted sum of yes votes. */ + pb_callback_t yes_count; + /* abstain_count is the weighted sum of abstainers. */ + pb_callback_t abstain_count; + /* no_count is the weighted sum of no votes. */ + pb_callback_t no_count; + /* no_with_veto_count is the weighted sum of veto. */ + pb_callback_t no_with_veto_count; +} cosmos_group_v1_TallyResult; + +/* Proposal defines a group proposal. Any member of a group can submit a proposal + for a group policy to decide upon. + A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal + passes as well as some optional metadata associated with the proposal. */ +typedef struct _cosmos_group_v1_Proposal { + /* id is the unique id of the proposal. */ + uint64_t id; + /* group_policy_address is the account address of group policy. */ + pb_callback_t group_policy_address; + /* metadata is any arbitrary metadata attached to the proposal. + the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#proposal-4 */ + pb_callback_t metadata; + /* proposers are the account addresses of the proposers. */ + pb_callback_t proposers; + /* submit_time is a timestamp specifying when a proposal was submitted. */ + bool has_submit_time; + google_protobuf_Timestamp submit_time; + /* group_version tracks the version of the group at proposal submission. + This field is here for informational purposes only. */ + uint64_t group_version; + /* group_policy_version tracks the version of the group policy at proposal submission. + When a decision policy is changed, existing proposals from previous policy + versions will become invalid with the `ABORTED` status. + This field is here for informational purposes only. */ + uint64_t group_policy_version; + /* status represents the high level position in the life cycle of the proposal. Initial value is Submitted. */ + cosmos_group_v1_ProposalStatus status; + /* final_tally_result contains the sums of all weighted votes for this + proposal for each vote option. It is empty at submission, and only + populated after tallying, at voting period end or at proposal execution, + whichever happens first. */ + bool has_final_tally_result; + cosmos_group_v1_TallyResult final_tally_result; + /* voting_period_end is the timestamp before which voting must be done. + Unless a successful MsgExec is called before (to execute a proposal whose + tally is successful before the voting period ends), tallying will be done + at this point, and the `final_tally_result`and `status` fields will be + accordingly updated. */ + bool has_voting_period_end; + google_protobuf_Timestamp voting_period_end; + /* executor_result is the final result of the proposal execution. Initial value is NotRun. */ + cosmos_group_v1_ProposalExecutorResult executor_result; + /* messages is a list of `sdk.Msg`s that will be executed if the proposal passes. */ + pb_callback_t messages; + /* title is the title of the proposal + + Since: cosmos-sdk 0.47 */ + pb_callback_t title; + /* summary is a short summary of the proposal + + Since: cosmos-sdk 0.47 */ + pb_callback_t summary; +} cosmos_group_v1_Proposal; + +/* Vote represents a vote for a proposal.string metadata */ +typedef struct _cosmos_group_v1_Vote { + /* proposal is the unique ID of the proposal. */ + uint64_t proposal_id; + /* voter is the account address of the voter. */ + pb_callback_t voter; + /* option is the voter's choice on the proposal. */ + cosmos_group_v1_VoteOption option; + /* metadata is any arbitrary metadata attached to the vote. + the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#vote-2 */ + pb_callback_t metadata; + /* submit_time is the timestamp when the vote was submitted. */ + bool has_submit_time; + google_protobuf_Timestamp submit_time; +} cosmos_group_v1_Vote; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_group_v1_VoteOption_MIN cosmos_group_v1_VoteOption_VOTE_OPTION_UNSPECIFIED +#define _cosmos_group_v1_VoteOption_MAX cosmos_group_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO +#define _cosmos_group_v1_VoteOption_ARRAYSIZE \ + ((cosmos_group_v1_VoteOption)(cosmos_group_v1_VoteOption_VOTE_OPTION_NO_WITH_VETO + 1)) + +#define _cosmos_group_v1_ProposalStatus_MIN cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_UNSPECIFIED +#define _cosmos_group_v1_ProposalStatus_MAX cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_WITHDRAWN +#define _cosmos_group_v1_ProposalStatus_ARRAYSIZE \ + ((cosmos_group_v1_ProposalStatus)(cosmos_group_v1_ProposalStatus_PROPOSAL_STATUS_WITHDRAWN + 1)) + +#define _cosmos_group_v1_ProposalExecutorResult_MIN \ + cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED +#define _cosmos_group_v1_ProposalExecutorResult_MAX cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_FAILURE +#define _cosmos_group_v1_ProposalExecutorResult_ARRAYSIZE \ + ((cosmos_group_v1_ProposalExecutorResult)(cosmos_group_v1_ProposalExecutorResult_PROPOSAL_EXECUTOR_RESULT_FAILURE + 1)) + +#define cosmos_group_v1_Proposal_status_ENUMTYPE cosmos_group_v1_ProposalStatus +#define cosmos_group_v1_Proposal_executor_result_ENUMTYPE cosmos_group_v1_ProposalExecutorResult + +#define cosmos_group_v1_Vote_option_ENUMTYPE cosmos_group_v1_VoteOption + +/* Initializer values for message structs */ +#define cosmos_group_v1_Member_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default } +#define cosmos_group_v1_MemberRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_ThresholdDecisionPolicy_init_default \ + { {{NULL}, NULL}, false, cosmos_group_v1_DecisionPolicyWindows_init_default } +#define cosmos_group_v1_PercentageDecisionPolicy_init_default \ + { {{NULL}, NULL}, false, cosmos_group_v1_DecisionPolicyWindows_init_default } +#define cosmos_group_v1_DecisionPolicyWindows_init_default \ + { false, google_protobuf_Duration_init_default, false, google_protobuf_Duration_init_default } +#define cosmos_group_v1_GroupInfo_init_default \ + { 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default } +#define cosmos_group_v1_GroupMember_init_default \ + { 0, false, cosmos_group_v1_Member_init_default } +#define cosmos_group_v1_GroupPolicyInfo_init_default \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Any_init_default, false, \ + google_protobuf_Timestamp_init_default \ + } +#define cosmos_group_v1_Proposal_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, 0, 0, \ + _cosmos_group_v1_ProposalStatus_MIN, false, cosmos_group_v1_TallyResult_init_default, false, \ + google_protobuf_Timestamp_init_default, _cosmos_group_v1_ProposalExecutorResult_MIN, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_group_v1_TallyResult_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_Vote_init_default \ + { 0, {{NULL}, NULL}, _cosmos_group_v1_VoteOption_MIN, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default } +#define cosmos_group_v1_Member_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero } +#define cosmos_group_v1_MemberRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_ThresholdDecisionPolicy_init_zero \ + { {{NULL}, NULL}, false, cosmos_group_v1_DecisionPolicyWindows_init_zero } +#define cosmos_group_v1_PercentageDecisionPolicy_init_zero \ + { {{NULL}, NULL}, false, cosmos_group_v1_DecisionPolicyWindows_init_zero } +#define cosmos_group_v1_DecisionPolicyWindows_init_zero \ + { false, google_protobuf_Duration_init_zero, false, google_protobuf_Duration_init_zero } +#define cosmos_group_v1_GroupInfo_init_zero \ + { 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero } +#define cosmos_group_v1_GroupMember_init_zero \ + { 0, false, cosmos_group_v1_Member_init_zero } +#define cosmos_group_v1_GroupPolicyInfo_init_zero \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Any_init_zero, false, \ + google_protobuf_Timestamp_init_zero \ + } +#define cosmos_group_v1_Proposal_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, 0, 0, \ + _cosmos_group_v1_ProposalStatus_MIN, false, cosmos_group_v1_TallyResult_init_zero, false, \ + google_protobuf_Timestamp_init_zero, _cosmos_group_v1_ProposalExecutorResult_MIN, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_group_v1_TallyResult_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_group_v1_Vote_init_zero \ + { 0, {{NULL}, NULL}, _cosmos_group_v1_VoteOption_MIN, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_group_v1_Member_address_tag 1 +#define cosmos_group_v1_Member_weight_tag 2 +#define cosmos_group_v1_Member_metadata_tag 3 +#define cosmos_group_v1_Member_added_at_tag 4 +#define cosmos_group_v1_MemberRequest_address_tag 1 +#define cosmos_group_v1_MemberRequest_weight_tag 2 +#define cosmos_group_v1_MemberRequest_metadata_tag 3 +#define cosmos_group_v1_DecisionPolicyWindows_voting_period_tag 1 +#define cosmos_group_v1_DecisionPolicyWindows_min_execution_period_tag 2 +#define cosmos_group_v1_ThresholdDecisionPolicy_threshold_tag 1 +#define cosmos_group_v1_ThresholdDecisionPolicy_windows_tag 2 +#define cosmos_group_v1_PercentageDecisionPolicy_percentage_tag 1 +#define cosmos_group_v1_PercentageDecisionPolicy_windows_tag 2 +#define cosmos_group_v1_GroupInfo_id_tag 1 +#define cosmos_group_v1_GroupInfo_admin_tag 2 +#define cosmos_group_v1_GroupInfo_metadata_tag 3 +#define cosmos_group_v1_GroupInfo_version_tag 4 +#define cosmos_group_v1_GroupInfo_total_weight_tag 5 +#define cosmos_group_v1_GroupInfo_created_at_tag 6 +#define cosmos_group_v1_GroupMember_group_id_tag 1 +#define cosmos_group_v1_GroupMember_member_tag 2 +#define cosmos_group_v1_GroupPolicyInfo_address_tag 1 +#define cosmos_group_v1_GroupPolicyInfo_group_id_tag 2 +#define cosmos_group_v1_GroupPolicyInfo_admin_tag 3 +#define cosmos_group_v1_GroupPolicyInfo_metadata_tag 4 +#define cosmos_group_v1_GroupPolicyInfo_version_tag 5 +#define cosmos_group_v1_GroupPolicyInfo_decision_policy_tag 6 +#define cosmos_group_v1_GroupPolicyInfo_created_at_tag 7 +#define cosmos_group_v1_TallyResult_yes_count_tag 1 +#define cosmos_group_v1_TallyResult_abstain_count_tag 2 +#define cosmos_group_v1_TallyResult_no_count_tag 3 +#define cosmos_group_v1_TallyResult_no_with_veto_count_tag 4 +#define cosmos_group_v1_Proposal_id_tag 1 +#define cosmos_group_v1_Proposal_group_policy_address_tag 2 +#define cosmos_group_v1_Proposal_metadata_tag 3 +#define cosmos_group_v1_Proposal_proposers_tag 4 +#define cosmos_group_v1_Proposal_submit_time_tag 5 +#define cosmos_group_v1_Proposal_group_version_tag 6 +#define cosmos_group_v1_Proposal_group_policy_version_tag 7 +#define cosmos_group_v1_Proposal_status_tag 8 +#define cosmos_group_v1_Proposal_final_tally_result_tag 9 +#define cosmos_group_v1_Proposal_voting_period_end_tag 10 +#define cosmos_group_v1_Proposal_executor_result_tag 11 +#define cosmos_group_v1_Proposal_messages_tag 12 +#define cosmos_group_v1_Proposal_title_tag 13 +#define cosmos_group_v1_Proposal_summary_tag 14 +#define cosmos_group_v1_Vote_proposal_id_tag 1 +#define cosmos_group_v1_Vote_voter_tag 2 +#define cosmos_group_v1_Vote_option_tag 3 +#define cosmos_group_v1_Vote_metadata_tag 4 +#define cosmos_group_v1_Vote_submit_time_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_group_v1_Member_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, weight, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, added_at, 4) +#define cosmos_group_v1_Member_CALLBACK pb_default_field_callback +#define cosmos_group_v1_Member_DEFAULT NULL +#define cosmos_group_v1_Member_added_at_MSGTYPE google_protobuf_Timestamp + +#define cosmos_group_v1_MemberRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, weight, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) +#define cosmos_group_v1_MemberRequest_CALLBACK pb_default_field_callback +#define cosmos_group_v1_MemberRequest_DEFAULT NULL + +#define cosmos_group_v1_ThresholdDecisionPolicy_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, threshold, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, windows, 2) +#define cosmos_group_v1_ThresholdDecisionPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_ThresholdDecisionPolicy_DEFAULT NULL +#define cosmos_group_v1_ThresholdDecisionPolicy_windows_MSGTYPE cosmos_group_v1_DecisionPolicyWindows + +#define cosmos_group_v1_PercentageDecisionPolicy_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, percentage, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, windows, 2) +#define cosmos_group_v1_PercentageDecisionPolicy_CALLBACK pb_default_field_callback +#define cosmos_group_v1_PercentageDecisionPolicy_DEFAULT NULL +#define cosmos_group_v1_PercentageDecisionPolicy_windows_MSGTYPE cosmos_group_v1_DecisionPolicyWindows + +#define cosmos_group_v1_DecisionPolicyWindows_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_period, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, min_execution_period, 2) +#define cosmos_group_v1_DecisionPolicyWindows_CALLBACK NULL +#define cosmos_group_v1_DecisionPolicyWindows_DEFAULT NULL +#define cosmos_group_v1_DecisionPolicyWindows_voting_period_MSGTYPE google_protobuf_Duration +#define cosmos_group_v1_DecisionPolicyWindows_min_execution_period_MSGTYPE google_protobuf_Duration + +#define cosmos_group_v1_GroupInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) \ + X(a, STATIC, SINGULAR, UINT64, version, 4) \ + X(a, CALLBACK, SINGULAR, STRING, total_weight, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, created_at, 6) +#define cosmos_group_v1_GroupInfo_CALLBACK pb_default_field_callback +#define cosmos_group_v1_GroupInfo_DEFAULT NULL +#define cosmos_group_v1_GroupInfo_created_at_MSGTYPE google_protobuf_Timestamp + +#define cosmos_group_v1_GroupMember_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, member, 2) +#define cosmos_group_v1_GroupMember_CALLBACK NULL +#define cosmos_group_v1_GroupMember_DEFAULT NULL +#define cosmos_group_v1_GroupMember_member_MSGTYPE cosmos_group_v1_Member + +#define cosmos_group_v1_GroupPolicyInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, SINGULAR, UINT64, group_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, admin, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) \ + X(a, STATIC, SINGULAR, UINT64, version, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, decision_policy, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, created_at, 7) +#define cosmos_group_v1_GroupPolicyInfo_CALLBACK pb_default_field_callback +#define cosmos_group_v1_GroupPolicyInfo_DEFAULT NULL +#define cosmos_group_v1_GroupPolicyInfo_decision_policy_MSGTYPE google_protobuf_Any +#define cosmos_group_v1_GroupPolicyInfo_created_at_MSGTYPE google_protobuf_Timestamp + +#define cosmos_group_v1_Proposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, group_policy_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 3) \ + X(a, CALLBACK, REPEATED, STRING, proposers, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, submit_time, 5) \ + X(a, STATIC, SINGULAR, UINT64, group_version, 6) \ + X(a, STATIC, SINGULAR, UINT64, group_policy_version, 7) \ + X(a, STATIC, SINGULAR, UENUM, status, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, final_tally_result, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_period_end, 10) \ + X(a, STATIC, SINGULAR, UENUM, executor_result, 11) \ + X(a, CALLBACK, REPEATED, MESSAGE, messages, 12) \ + X(a, CALLBACK, SINGULAR, STRING, title, 13) \ + X(a, CALLBACK, SINGULAR, STRING, summary, 14) +#define cosmos_group_v1_Proposal_CALLBACK pb_default_field_callback +#define cosmos_group_v1_Proposal_DEFAULT NULL +#define cosmos_group_v1_Proposal_submit_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_group_v1_Proposal_final_tally_result_MSGTYPE cosmos_group_v1_TallyResult +#define cosmos_group_v1_Proposal_voting_period_end_MSGTYPE google_protobuf_Timestamp +#define cosmos_group_v1_Proposal_messages_MSGTYPE google_protobuf_Any + +#define cosmos_group_v1_TallyResult_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, yes_count, 1) \ + X(a, CALLBACK, SINGULAR, STRING, abstain_count, 2) \ + X(a, CALLBACK, SINGULAR, STRING, no_count, 3) \ + X(a, CALLBACK, SINGULAR, STRING, no_with_veto_count, 4) +#define cosmos_group_v1_TallyResult_CALLBACK pb_default_field_callback +#define cosmos_group_v1_TallyResult_DEFAULT NULL + +#define cosmos_group_v1_Vote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, voter, 2) \ + X(a, STATIC, SINGULAR, UENUM, option, 3) \ + X(a, CALLBACK, SINGULAR, STRING, metadata, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, submit_time, 5) +#define cosmos_group_v1_Vote_CALLBACK pb_default_field_callback +#define cosmos_group_v1_Vote_DEFAULT NULL +#define cosmos_group_v1_Vote_submit_time_MSGTYPE google_protobuf_Timestamp + +extern const pb_msgdesc_t cosmos_group_v1_Member_msg; +extern const pb_msgdesc_t cosmos_group_v1_MemberRequest_msg; +extern const pb_msgdesc_t cosmos_group_v1_ThresholdDecisionPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_PercentageDecisionPolicy_msg; +extern const pb_msgdesc_t cosmos_group_v1_DecisionPolicyWindows_msg; +extern const pb_msgdesc_t cosmos_group_v1_GroupInfo_msg; +extern const pb_msgdesc_t cosmos_group_v1_GroupMember_msg; +extern const pb_msgdesc_t cosmos_group_v1_GroupPolicyInfo_msg; +extern const pb_msgdesc_t cosmos_group_v1_Proposal_msg; +extern const pb_msgdesc_t cosmos_group_v1_TallyResult_msg; +extern const pb_msgdesc_t cosmos_group_v1_Vote_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_group_v1_Member_fields &cosmos_group_v1_Member_msg +#define cosmos_group_v1_MemberRequest_fields &cosmos_group_v1_MemberRequest_msg +#define cosmos_group_v1_ThresholdDecisionPolicy_fields &cosmos_group_v1_ThresholdDecisionPolicy_msg +#define cosmos_group_v1_PercentageDecisionPolicy_fields &cosmos_group_v1_PercentageDecisionPolicy_msg +#define cosmos_group_v1_DecisionPolicyWindows_fields &cosmos_group_v1_DecisionPolicyWindows_msg +#define cosmos_group_v1_GroupInfo_fields &cosmos_group_v1_GroupInfo_msg +#define cosmos_group_v1_GroupMember_fields &cosmos_group_v1_GroupMember_msg +#define cosmos_group_v1_GroupPolicyInfo_fields &cosmos_group_v1_GroupPolicyInfo_msg +#define cosmos_group_v1_Proposal_fields &cosmos_group_v1_Proposal_msg +#define cosmos_group_v1_TallyResult_fields &cosmos_group_v1_TallyResult_msg +#define cosmos_group_v1_Vote_fields &cosmos_group_v1_Vote_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_group_v1_Member_size depends on runtime parameters */ +/* cosmos_group_v1_MemberRequest_size depends on runtime parameters */ +/* cosmos_group_v1_ThresholdDecisionPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_PercentageDecisionPolicy_size depends on runtime parameters */ +/* cosmos_group_v1_GroupInfo_size depends on runtime parameters */ +/* cosmos_group_v1_GroupMember_size depends on runtime parameters */ +/* cosmos_group_v1_GroupPolicyInfo_size depends on runtime parameters */ +/* cosmos_group_v1_Proposal_size depends on runtime parameters */ +/* cosmos_group_v1_TallyResult_size depends on runtime parameters */ +/* cosmos_group_v1_Vote_size depends on runtime parameters */ +#define COSMOS_GROUP_V1_COSMOS_GROUP_V1_TYPES_PB_H_MAX_SIZE cosmos_group_v1_DecisionPolicyWindows_size +#define cosmos_group_v1_DecisionPolicyWindows_size 48 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/ics23/v1/proofs.pb.c b/app/src/protobuf/cosmos/ics23/v1/proofs.pb.c new file mode 100644 index 0000000..5a20775 --- /dev/null +++ b/app/src/protobuf/cosmos/ics23/v1/proofs.pb.c @@ -0,0 +1,33 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/ics23/v1/proofs.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_ics23_v1_ExistenceProof, cosmos_ics23_v1_ExistenceProof, AUTO) + +PB_BIND(cosmos_ics23_v1_NonExistenceProof, cosmos_ics23_v1_NonExistenceProof, AUTO) + +PB_BIND(cosmos_ics23_v1_CommitmentProof, cosmos_ics23_v1_CommitmentProof, AUTO) + +PB_BIND(cosmos_ics23_v1_LeafOp, cosmos_ics23_v1_LeafOp, AUTO) + +PB_BIND(cosmos_ics23_v1_InnerOp, cosmos_ics23_v1_InnerOp, AUTO) + +PB_BIND(cosmos_ics23_v1_ProofSpec, cosmos_ics23_v1_ProofSpec, AUTO) + +PB_BIND(cosmos_ics23_v1_InnerSpec, cosmos_ics23_v1_InnerSpec, AUTO) + +PB_BIND(cosmos_ics23_v1_BatchProof, cosmos_ics23_v1_BatchProof, AUTO) + +PB_BIND(cosmos_ics23_v1_BatchEntry, cosmos_ics23_v1_BatchEntry, AUTO) + +PB_BIND(cosmos_ics23_v1_CompressedBatchProof, cosmos_ics23_v1_CompressedBatchProof, AUTO) + +PB_BIND(cosmos_ics23_v1_CompressedBatchEntry, cosmos_ics23_v1_CompressedBatchEntry, AUTO) + +PB_BIND(cosmos_ics23_v1_CompressedExistenceProof, cosmos_ics23_v1_CompressedExistenceProof, AUTO) + +PB_BIND(cosmos_ics23_v1_CompressedNonExistenceProof, cosmos_ics23_v1_CompressedNonExistenceProof, AUTO) diff --git a/app/src/protobuf/cosmos/ics23/v1/proofs.pb.h b/app/src/protobuf/cosmos/ics23/v1/proofs.pb.h new file mode 100644 index 0000000..5ff1021 --- /dev/null +++ b/app/src/protobuf/cosmos/ics23/v1/proofs.pb.h @@ -0,0 +1,574 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_ICS23_V1_COSMOS_ICS23_V1_PROOFS_PB_H_INCLUDED +#define PB_COSMOS_ICS23_V1_COSMOS_ICS23_V1_PROOFS_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _cosmos_ics23_v1_HashOp { + /* NO_HASH is the default if no data passed. Note this is an illegal argument some places. */ + cosmos_ics23_v1_HashOp_NO_HASH = 0, + cosmos_ics23_v1_HashOp_SHA256 = 1, + cosmos_ics23_v1_HashOp_SHA512 = 2, + cosmos_ics23_v1_HashOp_KECCAK = 3, + cosmos_ics23_v1_HashOp_RIPEMD160 = 4, + cosmos_ics23_v1_HashOp_BITCOIN = 5, /* ripemd160(sha256(x)) */ + cosmos_ics23_v1_HashOp_SHA512_256 = 6 +} cosmos_ics23_v1_HashOp; + +/* * +LengthOp defines how to process the key and value of the LeafOp +to include length information. After encoding the length with the given +algorithm, the length will be prepended to the key and value bytes. +(Each one with it's own encoded length) */ +typedef enum _cosmos_ics23_v1_LengthOp { + /* NO_PREFIX don't include any length info */ + cosmos_ics23_v1_LengthOp_NO_PREFIX = 0, + /* VAR_PROTO uses protobuf (and go-amino) varint encoding of the length */ + cosmos_ics23_v1_LengthOp_VAR_PROTO = 1, + /* VAR_RLP uses rlp int encoding of the length */ + cosmos_ics23_v1_LengthOp_VAR_RLP = 2, + /* FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer */ + cosmos_ics23_v1_LengthOp_FIXED32_BIG = 3, + /* FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer */ + cosmos_ics23_v1_LengthOp_FIXED32_LITTLE = 4, + /* FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer */ + cosmos_ics23_v1_LengthOp_FIXED64_BIG = 5, + /* FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer */ + cosmos_ics23_v1_LengthOp_FIXED64_LITTLE = 6, + /* REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) */ + cosmos_ics23_v1_LengthOp_REQUIRE_32_BYTES = 7, + /* REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) */ + cosmos_ics23_v1_LengthOp_REQUIRE_64_BYTES = 8 +} cosmos_ics23_v1_LengthOp; + +/* Struct definitions */ +/* * +LeafOp represents the raw key-value data we wish to prove, and +must be flexible to represent the internal transformation from +the original key-value pairs into the basis hash, for many existing +merkle trees. + +key and value are passed in. So that the signature of this operation is: +leafOp(key, value) -> output + +To process this, first prehash the keys and values if needed (ANY means no hash in this case): +hkey = prehashKey(key) +hvalue = prehashValue(value) + +Then combine the bytes, and hash it +output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue) */ +typedef struct _cosmos_ics23_v1_LeafOp { + cosmos_ics23_v1_HashOp hash; + cosmos_ics23_v1_HashOp prehash_key; + cosmos_ics23_v1_HashOp prehash_value; + cosmos_ics23_v1_LengthOp length; + /* prefix is a fixed bytes that may optionally be included at the beginning to differentiate + a leaf node from an inner node. */ + pb_callback_t prefix; +} cosmos_ics23_v1_LeafOp; + +/* * +ExistenceProof takes a key and a value and a set of steps to perform on it. +The result of peforming all these steps will provide a "root hash", which can +be compared to the value in a header. + +Since it is computationally infeasible to produce a hash collission for any of the used +cryptographic hash functions, if someone can provide a series of operations to transform +a given key and value into a root hash that matches some trusted root, these key and values +must be in the referenced merkle tree. + +The only possible issue is maliablity in LeafOp, such as providing extra prefix data, +which should be controlled by a spec. Eg. with lengthOp as NONE, +prefix = FOO, key = BAR, value = CHOICE +and +prefix = F, key = OOBAR, value = CHOICE +would produce the same value. + +With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field +in the ProofSpec is valuable to prevent this mutability. And why all trees should +length-prefix the data before hashing it. */ +typedef struct _cosmos_ics23_v1_ExistenceProof { + pb_callback_t key; + pb_callback_t value; + bool has_leaf; + cosmos_ics23_v1_LeafOp leaf; + pb_callback_t path; +} cosmos_ics23_v1_ExistenceProof; + +/* NonExistenceProof takes a proof of two neighbors, one left of the desired key, +one right of the desired key. If both proofs are valid AND they are neighbors, +then there is no valid proof for the given key. */ +typedef struct _cosmos_ics23_v1_NonExistenceProof { + pb_callback_t key; /* TODO: remove this as unnecessary??? we prove a range */ + bool has_left; + cosmos_ics23_v1_ExistenceProof left; + bool has_right; + cosmos_ics23_v1_ExistenceProof right; +} cosmos_ics23_v1_NonExistenceProof; + +/* * +InnerOp represents a merkle-proof step that is not a leaf. +It represents concatenating two children and hashing them to provide the next result. + +The result of the previous step is passed in, so the signature of this op is: +innerOp(child) -> output + +The result of applying InnerOp should be: +output = op.hash(op.prefix || child || op.suffix) + +where the || operator is concatenation of binary data, +and child is the result of hashing all the tree below this step. + +Any special data, like prepending child with the length, or prepending the entire operation with +some value to differentiate from leaf nodes, should be included in prefix and suffix. +If either of prefix or suffix is empty, we just treat it as an empty string */ +typedef struct _cosmos_ics23_v1_InnerOp { + cosmos_ics23_v1_HashOp hash; + pb_callback_t prefix; + pb_callback_t suffix; +} cosmos_ics23_v1_InnerOp; + +/* InnerSpec contains all store-specific structure info to determine if two proofs from a +given store are neighbors. + +This enables: + +isLeftMost(spec: InnerSpec, op: InnerOp) +isRightMost(spec: InnerSpec, op: InnerOp) +isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp) */ +typedef struct _cosmos_ics23_v1_InnerSpec { + /* Child order is the ordering of the children node, must count from 0 + iavl tree is [0, 1] (left then right) + merk is [0, 2, 1] (left, right, here) */ + pb_callback_t child_order; + int32_t child_size; + int32_t min_prefix_length; + int32_t max_prefix_length; + /* empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) */ + pb_callback_t empty_child; + /* hash is the algorithm that must be used for each InnerOp */ + cosmos_ics23_v1_HashOp hash; +} cosmos_ics23_v1_InnerSpec; + +/* * +ProofSpec defines what the expected parameters are for a given proof type. +This can be stored in the client and used to validate any incoming proofs. + +verify(ProofSpec, Proof) -> Proof | Error + +As demonstrated in tests, if we don't fix the algorithm used to calculate the +LeafHash for a given tree, there are many possible key-value pairs that can +generate a given hash (by interpretting the preimage differently). +We need this for proper security, requires client knows a priori what +tree format server uses. But not in code, rather a configuration object. */ +typedef struct _cosmos_ics23_v1_ProofSpec { + /* any field in the ExistenceProof must be the same as in this spec. + except Prefix, which is just the first bytes of prefix (spec can be longer) */ + bool has_leaf_spec; + cosmos_ics23_v1_LeafOp leaf_spec; + bool has_inner_spec; + cosmos_ics23_v1_InnerSpec inner_spec; + /* max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) */ + int32_t max_depth; + /* min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) */ + int32_t min_depth; +} cosmos_ics23_v1_ProofSpec; + +/* BatchProof is a group of multiple proof types than can be compressed */ +typedef struct _cosmos_ics23_v1_BatchProof { + pb_callback_t entries; +} cosmos_ics23_v1_BatchProof; + +/* Use BatchEntry not CommitmentProof, to avoid recursion */ +typedef struct _cosmos_ics23_v1_BatchEntry { + pb_size_t which_proof; + union { + cosmos_ics23_v1_ExistenceProof exist; + cosmos_ics23_v1_NonExistenceProof nonexist; + } proof; +} cosmos_ics23_v1_BatchEntry; + +typedef struct _cosmos_ics23_v1_CompressedBatchProof { + pb_callback_t entries; + pb_callback_t lookup_inners; +} cosmos_ics23_v1_CompressedBatchProof; + +/* CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages */ +typedef struct _cosmos_ics23_v1_CommitmentProof { + pb_size_t which_proof; + union { + cosmos_ics23_v1_ExistenceProof exist; + cosmos_ics23_v1_NonExistenceProof nonexist; + cosmos_ics23_v1_BatchProof batch; + cosmos_ics23_v1_CompressedBatchProof compressed; + } proof; +} cosmos_ics23_v1_CommitmentProof; + +typedef struct _cosmos_ics23_v1_CompressedExistenceProof { + pb_callback_t key; + pb_callback_t value; + bool has_leaf; + cosmos_ics23_v1_LeafOp leaf; + /* these are indexes into the lookup_inners table in CompressedBatchProof */ + pb_callback_t path; +} cosmos_ics23_v1_CompressedExistenceProof; + +typedef struct _cosmos_ics23_v1_CompressedNonExistenceProof { + pb_callback_t key; /* TODO: remove this as unnecessary??? we prove a range */ + bool has_left; + cosmos_ics23_v1_CompressedExistenceProof left; + bool has_right; + cosmos_ics23_v1_CompressedExistenceProof right; +} cosmos_ics23_v1_CompressedNonExistenceProof; + +/* Use BatchEntry not CommitmentProof, to avoid recursion */ +typedef struct _cosmos_ics23_v1_CompressedBatchEntry { + pb_size_t which_proof; + union { + cosmos_ics23_v1_CompressedExistenceProof exist; + cosmos_ics23_v1_CompressedNonExistenceProof nonexist; + } proof; +} cosmos_ics23_v1_CompressedBatchEntry; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_ics23_v1_HashOp_MIN cosmos_ics23_v1_HashOp_NO_HASH +#define _cosmos_ics23_v1_HashOp_MAX cosmos_ics23_v1_HashOp_SHA512_256 +#define _cosmos_ics23_v1_HashOp_ARRAYSIZE ((cosmos_ics23_v1_HashOp)(cosmos_ics23_v1_HashOp_SHA512_256 + 1)) + +#define _cosmos_ics23_v1_LengthOp_MIN cosmos_ics23_v1_LengthOp_NO_PREFIX +#define _cosmos_ics23_v1_LengthOp_MAX cosmos_ics23_v1_LengthOp_REQUIRE_64_BYTES +#define _cosmos_ics23_v1_LengthOp_ARRAYSIZE ((cosmos_ics23_v1_LengthOp)(cosmos_ics23_v1_LengthOp_REQUIRE_64_BYTES + 1)) + +#define cosmos_ics23_v1_LeafOp_hash_ENUMTYPE cosmos_ics23_v1_HashOp +#define cosmos_ics23_v1_LeafOp_prehash_key_ENUMTYPE cosmos_ics23_v1_HashOp +#define cosmos_ics23_v1_LeafOp_prehash_value_ENUMTYPE cosmos_ics23_v1_HashOp +#define cosmos_ics23_v1_LeafOp_length_ENUMTYPE cosmos_ics23_v1_LengthOp + +#define cosmos_ics23_v1_InnerOp_hash_ENUMTYPE cosmos_ics23_v1_HashOp + +#define cosmos_ics23_v1_InnerSpec_hash_ENUMTYPE cosmos_ics23_v1_HashOp + +/* Initializer values for message structs */ +#define cosmos_ics23_v1_ExistenceProof_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_ics23_v1_LeafOp_init_default, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_NonExistenceProof_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_ics23_v1_ExistenceProof_init_default, false, \ + cosmos_ics23_v1_ExistenceProof_init_default \ + } +#define cosmos_ics23_v1_CommitmentProof_init_default \ + { \ + 0, { cosmos_ics23_v1_ExistenceProof_init_default } \ + } +#define cosmos_ics23_v1_LeafOp_init_default \ + { \ + _cosmos_ics23_v1_HashOp_MIN, _cosmos_ics23_v1_HashOp_MIN, _cosmos_ics23_v1_HashOp_MIN, \ + _cosmos_ics23_v1_LengthOp_MIN, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_ics23_v1_InnerOp_init_default \ + { \ + _cosmos_ics23_v1_HashOp_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_ProofSpec_init_default \ + { false, cosmos_ics23_v1_LeafOp_init_default, false, cosmos_ics23_v1_InnerSpec_init_default, 0, 0 } +#define cosmos_ics23_v1_InnerSpec_init_default \ + { {{NULL}, NULL}, 0, 0, 0, {{NULL}, NULL}, _cosmos_ics23_v1_HashOp_MIN } +#define cosmos_ics23_v1_BatchProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_BatchEntry_init_default \ + { \ + 0, { cosmos_ics23_v1_ExistenceProof_init_default } \ + } +#define cosmos_ics23_v1_CompressedBatchProof_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_CompressedBatchEntry_init_default \ + { \ + 0, { cosmos_ics23_v1_CompressedExistenceProof_init_default } \ + } +#define cosmos_ics23_v1_CompressedExistenceProof_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_ics23_v1_LeafOp_init_default, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_CompressedNonExistenceProof_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_ics23_v1_CompressedExistenceProof_init_default, false, \ + cosmos_ics23_v1_CompressedExistenceProof_init_default \ + } +#define cosmos_ics23_v1_ExistenceProof_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_ics23_v1_LeafOp_init_zero, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_NonExistenceProof_init_zero \ + { {{NULL}, NULL}, false, cosmos_ics23_v1_ExistenceProof_init_zero, false, cosmos_ics23_v1_ExistenceProof_init_zero } +#define cosmos_ics23_v1_CommitmentProof_init_zero \ + { \ + 0, { cosmos_ics23_v1_ExistenceProof_init_zero } \ + } +#define cosmos_ics23_v1_LeafOp_init_zero \ + { \ + _cosmos_ics23_v1_HashOp_MIN, _cosmos_ics23_v1_HashOp_MIN, _cosmos_ics23_v1_HashOp_MIN, \ + _cosmos_ics23_v1_LengthOp_MIN, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_ics23_v1_InnerOp_init_zero \ + { \ + _cosmos_ics23_v1_HashOp_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_ProofSpec_init_zero \ + { false, cosmos_ics23_v1_LeafOp_init_zero, false, cosmos_ics23_v1_InnerSpec_init_zero, 0, 0 } +#define cosmos_ics23_v1_InnerSpec_init_zero \ + { {{NULL}, NULL}, 0, 0, 0, {{NULL}, NULL}, _cosmos_ics23_v1_HashOp_MIN } +#define cosmos_ics23_v1_BatchProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_BatchEntry_init_zero \ + { \ + 0, { cosmos_ics23_v1_ExistenceProof_init_zero } \ + } +#define cosmos_ics23_v1_CompressedBatchProof_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_CompressedBatchEntry_init_zero \ + { \ + 0, { cosmos_ics23_v1_CompressedExistenceProof_init_zero } \ + } +#define cosmos_ics23_v1_CompressedExistenceProof_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_ics23_v1_LeafOp_init_zero, { {NULL}, NULL } \ + } +#define cosmos_ics23_v1_CompressedNonExistenceProof_init_zero \ + { \ + {{NULL}, NULL}, false, cosmos_ics23_v1_CompressedExistenceProof_init_zero, false, \ + cosmos_ics23_v1_CompressedExistenceProof_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_ics23_v1_LeafOp_hash_tag 1 +#define cosmos_ics23_v1_LeafOp_prehash_key_tag 2 +#define cosmos_ics23_v1_LeafOp_prehash_value_tag 3 +#define cosmos_ics23_v1_LeafOp_length_tag 4 +#define cosmos_ics23_v1_LeafOp_prefix_tag 5 +#define cosmos_ics23_v1_ExistenceProof_key_tag 1 +#define cosmos_ics23_v1_ExistenceProof_value_tag 2 +#define cosmos_ics23_v1_ExistenceProof_leaf_tag 3 +#define cosmos_ics23_v1_ExistenceProof_path_tag 4 +#define cosmos_ics23_v1_NonExistenceProof_key_tag 1 +#define cosmos_ics23_v1_NonExistenceProof_left_tag 2 +#define cosmos_ics23_v1_NonExistenceProof_right_tag 3 +#define cosmos_ics23_v1_InnerOp_hash_tag 1 +#define cosmos_ics23_v1_InnerOp_prefix_tag 2 +#define cosmos_ics23_v1_InnerOp_suffix_tag 3 +#define cosmos_ics23_v1_InnerSpec_child_order_tag 1 +#define cosmos_ics23_v1_InnerSpec_child_size_tag 2 +#define cosmos_ics23_v1_InnerSpec_min_prefix_length_tag 3 +#define cosmos_ics23_v1_InnerSpec_max_prefix_length_tag 4 +#define cosmos_ics23_v1_InnerSpec_empty_child_tag 5 +#define cosmos_ics23_v1_InnerSpec_hash_tag 6 +#define cosmos_ics23_v1_ProofSpec_leaf_spec_tag 1 +#define cosmos_ics23_v1_ProofSpec_inner_spec_tag 2 +#define cosmos_ics23_v1_ProofSpec_max_depth_tag 3 +#define cosmos_ics23_v1_ProofSpec_min_depth_tag 4 +#define cosmos_ics23_v1_BatchProof_entries_tag 1 +#define cosmos_ics23_v1_BatchEntry_exist_tag 1 +#define cosmos_ics23_v1_BatchEntry_nonexist_tag 2 +#define cosmos_ics23_v1_CompressedBatchProof_entries_tag 1 +#define cosmos_ics23_v1_CompressedBatchProof_lookup_inners_tag 2 +#define cosmos_ics23_v1_CommitmentProof_exist_tag 1 +#define cosmos_ics23_v1_CommitmentProof_nonexist_tag 2 +#define cosmos_ics23_v1_CommitmentProof_batch_tag 3 +#define cosmos_ics23_v1_CommitmentProof_compressed_tag 4 +#define cosmos_ics23_v1_CompressedExistenceProof_key_tag 1 +#define cosmos_ics23_v1_CompressedExistenceProof_value_tag 2 +#define cosmos_ics23_v1_CompressedExistenceProof_leaf_tag 3 +#define cosmos_ics23_v1_CompressedExistenceProof_path_tag 4 +#define cosmos_ics23_v1_CompressedNonExistenceProof_key_tag 1 +#define cosmos_ics23_v1_CompressedNonExistenceProof_left_tag 2 +#define cosmos_ics23_v1_CompressedNonExistenceProof_right_tag 3 +#define cosmos_ics23_v1_CompressedBatchEntry_exist_tag 1 +#define cosmos_ics23_v1_CompressedBatchEntry_nonexist_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_ics23_v1_ExistenceProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, leaf, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, path, 4) +#define cosmos_ics23_v1_ExistenceProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_ExistenceProof_DEFAULT NULL +#define cosmos_ics23_v1_ExistenceProof_leaf_MSGTYPE cosmos_ics23_v1_LeafOp +#define cosmos_ics23_v1_ExistenceProof_path_MSGTYPE cosmos_ics23_v1_InnerOp + +#define cosmos_ics23_v1_NonExistenceProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, left, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, right, 3) +#define cosmos_ics23_v1_NonExistenceProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_NonExistenceProof_DEFAULT NULL +#define cosmos_ics23_v1_NonExistenceProof_left_MSGTYPE cosmos_ics23_v1_ExistenceProof +#define cosmos_ics23_v1_NonExistenceProof_right_MSGTYPE cosmos_ics23_v1_ExistenceProof + +#define cosmos_ics23_v1_CommitmentProof_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, exist, proof.exist), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, nonexist, proof.nonexist), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, batch, proof.batch), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, compressed, proof.compressed), 4) +#define cosmos_ics23_v1_CommitmentProof_CALLBACK NULL +#define cosmos_ics23_v1_CommitmentProof_DEFAULT NULL +#define cosmos_ics23_v1_CommitmentProof_proof_exist_MSGTYPE cosmos_ics23_v1_ExistenceProof +#define cosmos_ics23_v1_CommitmentProof_proof_nonexist_MSGTYPE cosmos_ics23_v1_NonExistenceProof +#define cosmos_ics23_v1_CommitmentProof_proof_batch_MSGTYPE cosmos_ics23_v1_BatchProof +#define cosmos_ics23_v1_CommitmentProof_proof_compressed_MSGTYPE cosmos_ics23_v1_CompressedBatchProof + +#define cosmos_ics23_v1_LeafOp_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, hash, 1) \ + X(a, STATIC, SINGULAR, UENUM, prehash_key, 2) \ + X(a, STATIC, SINGULAR, UENUM, prehash_value, 3) \ + X(a, STATIC, SINGULAR, UENUM, length, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, prefix, 5) +#define cosmos_ics23_v1_LeafOp_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_LeafOp_DEFAULT NULL + +#define cosmos_ics23_v1_InnerOp_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, hash, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, prefix, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, suffix, 3) +#define cosmos_ics23_v1_InnerOp_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_InnerOp_DEFAULT NULL + +#define cosmos_ics23_v1_ProofSpec_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, leaf_spec, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, inner_spec, 2) \ + X(a, STATIC, SINGULAR, INT32, max_depth, 3) \ + X(a, STATIC, SINGULAR, INT32, min_depth, 4) +#define cosmos_ics23_v1_ProofSpec_CALLBACK NULL +#define cosmos_ics23_v1_ProofSpec_DEFAULT NULL +#define cosmos_ics23_v1_ProofSpec_leaf_spec_MSGTYPE cosmos_ics23_v1_LeafOp +#define cosmos_ics23_v1_ProofSpec_inner_spec_MSGTYPE cosmos_ics23_v1_InnerSpec + +#define cosmos_ics23_v1_InnerSpec_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, INT32, child_order, 1) \ + X(a, STATIC, SINGULAR, INT32, child_size, 2) \ + X(a, STATIC, SINGULAR, INT32, min_prefix_length, 3) \ + X(a, STATIC, SINGULAR, INT32, max_prefix_length, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, empty_child, 5) \ + X(a, STATIC, SINGULAR, UENUM, hash, 6) +#define cosmos_ics23_v1_InnerSpec_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_InnerSpec_DEFAULT NULL + +#define cosmos_ics23_v1_BatchProof_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, entries, 1) +#define cosmos_ics23_v1_BatchProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_BatchProof_DEFAULT NULL +#define cosmos_ics23_v1_BatchProof_entries_MSGTYPE cosmos_ics23_v1_BatchEntry + +#define cosmos_ics23_v1_BatchEntry_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, exist, proof.exist), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, nonexist, proof.nonexist), 2) +#define cosmos_ics23_v1_BatchEntry_CALLBACK NULL +#define cosmos_ics23_v1_BatchEntry_DEFAULT NULL +#define cosmos_ics23_v1_BatchEntry_proof_exist_MSGTYPE cosmos_ics23_v1_ExistenceProof +#define cosmos_ics23_v1_BatchEntry_proof_nonexist_MSGTYPE cosmos_ics23_v1_NonExistenceProof + +#define cosmos_ics23_v1_CompressedBatchProof_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, entries, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, lookup_inners, 2) +#define cosmos_ics23_v1_CompressedBatchProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_CompressedBatchProof_DEFAULT NULL +#define cosmos_ics23_v1_CompressedBatchProof_entries_MSGTYPE cosmos_ics23_v1_CompressedBatchEntry +#define cosmos_ics23_v1_CompressedBatchProof_lookup_inners_MSGTYPE cosmos_ics23_v1_InnerOp + +#define cosmos_ics23_v1_CompressedBatchEntry_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, exist, proof.exist), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (proof, nonexist, proof.nonexist), 2) +#define cosmos_ics23_v1_CompressedBatchEntry_CALLBACK NULL +#define cosmos_ics23_v1_CompressedBatchEntry_DEFAULT NULL +#define cosmos_ics23_v1_CompressedBatchEntry_proof_exist_MSGTYPE cosmos_ics23_v1_CompressedExistenceProof +#define cosmos_ics23_v1_CompressedBatchEntry_proof_nonexist_MSGTYPE cosmos_ics23_v1_CompressedNonExistenceProof + +#define cosmos_ics23_v1_CompressedExistenceProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, leaf, 3) \ + X(a, CALLBACK, REPEATED, INT32, path, 4) +#define cosmos_ics23_v1_CompressedExistenceProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_CompressedExistenceProof_DEFAULT NULL +#define cosmos_ics23_v1_CompressedExistenceProof_leaf_MSGTYPE cosmos_ics23_v1_LeafOp + +#define cosmos_ics23_v1_CompressedNonExistenceProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, left, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, right, 3) +#define cosmos_ics23_v1_CompressedNonExistenceProof_CALLBACK pb_default_field_callback +#define cosmos_ics23_v1_CompressedNonExistenceProof_DEFAULT NULL +#define cosmos_ics23_v1_CompressedNonExistenceProof_left_MSGTYPE cosmos_ics23_v1_CompressedExistenceProof +#define cosmos_ics23_v1_CompressedNonExistenceProof_right_MSGTYPE cosmos_ics23_v1_CompressedExistenceProof + +extern const pb_msgdesc_t cosmos_ics23_v1_ExistenceProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_NonExistenceProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_CommitmentProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_LeafOp_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_InnerOp_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_ProofSpec_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_InnerSpec_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_BatchProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_BatchEntry_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_CompressedBatchProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_CompressedBatchEntry_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_CompressedExistenceProof_msg; +extern const pb_msgdesc_t cosmos_ics23_v1_CompressedNonExistenceProof_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_ics23_v1_ExistenceProof_fields &cosmos_ics23_v1_ExistenceProof_msg +#define cosmos_ics23_v1_NonExistenceProof_fields &cosmos_ics23_v1_NonExistenceProof_msg +#define cosmos_ics23_v1_CommitmentProof_fields &cosmos_ics23_v1_CommitmentProof_msg +#define cosmos_ics23_v1_LeafOp_fields &cosmos_ics23_v1_LeafOp_msg +#define cosmos_ics23_v1_InnerOp_fields &cosmos_ics23_v1_InnerOp_msg +#define cosmos_ics23_v1_ProofSpec_fields &cosmos_ics23_v1_ProofSpec_msg +#define cosmos_ics23_v1_InnerSpec_fields &cosmos_ics23_v1_InnerSpec_msg +#define cosmos_ics23_v1_BatchProof_fields &cosmos_ics23_v1_BatchProof_msg +#define cosmos_ics23_v1_BatchEntry_fields &cosmos_ics23_v1_BatchEntry_msg +#define cosmos_ics23_v1_CompressedBatchProof_fields &cosmos_ics23_v1_CompressedBatchProof_msg +#define cosmos_ics23_v1_CompressedBatchEntry_fields &cosmos_ics23_v1_CompressedBatchEntry_msg +#define cosmos_ics23_v1_CompressedExistenceProof_fields &cosmos_ics23_v1_CompressedExistenceProof_msg +#define cosmos_ics23_v1_CompressedNonExistenceProof_fields &cosmos_ics23_v1_CompressedNonExistenceProof_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_ics23_v1_ExistenceProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_NonExistenceProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_CommitmentProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_LeafOp_size depends on runtime parameters */ +/* cosmos_ics23_v1_InnerOp_size depends on runtime parameters */ +/* cosmos_ics23_v1_ProofSpec_size depends on runtime parameters */ +/* cosmos_ics23_v1_InnerSpec_size depends on runtime parameters */ +/* cosmos_ics23_v1_BatchProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_BatchEntry_size depends on runtime parameters */ +/* cosmos_ics23_v1_CompressedBatchProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_CompressedBatchEntry_size depends on runtime parameters */ +/* cosmos_ics23_v1_CompressedExistenceProof_size depends on runtime parameters */ +/* cosmos_ics23_v1_CompressedNonExistenceProof_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/mint/module/v1/module.pb.c b/app/src/protobuf/cosmos/mint/module/v1/module.pb.c new file mode 100644 index 0000000..aa36526 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/mint/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_mint_module_v1_Module, cosmos_mint_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/mint/module/v1/module.pb.h b/app/src/protobuf/cosmos/mint/module/v1/module.pb.h new file mode 100644 index 0000000..bb846b4 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/module/v1/module.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MINT_MODULE_V1_COSMOS_MINT_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_MINT_MODULE_V1_COSMOS_MINT_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the mint module. */ +typedef struct _cosmos_mint_module_v1_Module { + pb_callback_t fee_collector_name; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_mint_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_mint_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_mint_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_mint_module_v1_Module_fee_collector_name_tag 1 +#define cosmos_mint_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_mint_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fee_collector_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_mint_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_mint_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_mint_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_mint_module_v1_Module_fields &cosmos_mint_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_mint_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.c new file mode 100644 index 0000000..409eec7 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/mint/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_mint_v1beta1_GenesisState, cosmos_mint_v1beta1_GenesisState, AUTO) diff --git a/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.h new file mode 100644 index 0000000..8aa7816 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/genesis.pb.h @@ -0,0 +1,65 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/mint/v1beta1/mint.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the mint module's genesis state. */ +typedef struct _cosmos_mint_v1beta1_GenesisState { + /* minter is a space for holding current inflation information. */ + bool has_minter; + cosmos_mint_v1beta1_Minter minter; + /* params defines all the parameters of the module. */ + bool has_params; + cosmos_mint_v1beta1_Params params; +} cosmos_mint_v1beta1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_mint_v1beta1_GenesisState_init_default \ + { false, cosmos_mint_v1beta1_Minter_init_default, false, cosmos_mint_v1beta1_Params_init_default } +#define cosmos_mint_v1beta1_GenesisState_init_zero \ + { false, cosmos_mint_v1beta1_Minter_init_zero, false, cosmos_mint_v1beta1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_mint_v1beta1_GenesisState_minter_tag 1 +#define cosmos_mint_v1beta1_GenesisState_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_mint_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, minter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_mint_v1beta1_GenesisState_CALLBACK NULL +#define cosmos_mint_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_mint_v1beta1_GenesisState_minter_MSGTYPE cosmos_mint_v1beta1_Minter +#define cosmos_mint_v1beta1_GenesisState_params_MSGTYPE cosmos_mint_v1beta1_Params + +extern const pb_msgdesc_t cosmos_mint_v1beta1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_mint_v1beta1_GenesisState_fields &cosmos_mint_v1beta1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(cosmos_mint_v1beta1_Minter_size) && defined(cosmos_mint_v1beta1_Params_size) +#define COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_GENESIS_PB_H_MAX_SIZE cosmos_mint_v1beta1_GenesisState_size +#define cosmos_mint_v1beta1_GenesisState_size (12 + cosmos_mint_v1beta1_Minter_size + cosmos_mint_v1beta1_Params_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.c b/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.c new file mode 100644 index 0000000..c663051 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/mint/v1beta1/mint.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_mint_v1beta1_Minter, cosmos_mint_v1beta1_Minter, AUTO) + +PB_BIND(cosmos_mint_v1beta1_Params, cosmos_mint_v1beta1_Params, AUTO) diff --git a/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.h b/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.h new file mode 100644 index 0000000..94cca6c --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/mint.pb.h @@ -0,0 +1,101 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_MINT_PB_H_INCLUDED +#define PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_MINT_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Minter represents the minting state. */ +typedef struct _cosmos_mint_v1beta1_Minter { + /* current annual inflation rate */ + pb_callback_t inflation; + /* current annual expected provisions */ + pb_callback_t annual_provisions; +} cosmos_mint_v1beta1_Minter; + +/* Params defines the parameters for the x/mint module. */ +typedef struct _cosmos_mint_v1beta1_Params { + /* type of coin to mint */ + pb_callback_t mint_denom; + /* maximum annual change in inflation rate */ + pb_callback_t inflation_rate_change; + /* maximum inflation rate */ + pb_callback_t inflation_max; + /* minimum inflation rate */ + pb_callback_t inflation_min; + /* goal of percent bonded atoms */ + pb_callback_t goal_bonded; + /* expected blocks per year */ + uint64_t blocks_per_year; +} cosmos_mint_v1beta1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_mint_v1beta1_Minter_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_mint_v1beta1_Params_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_mint_v1beta1_Minter_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_mint_v1beta1_Params_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_mint_v1beta1_Minter_inflation_tag 1 +#define cosmos_mint_v1beta1_Minter_annual_provisions_tag 2 +#define cosmos_mint_v1beta1_Params_mint_denom_tag 1 +#define cosmos_mint_v1beta1_Params_inflation_rate_change_tag 2 +#define cosmos_mint_v1beta1_Params_inflation_max_tag 3 +#define cosmos_mint_v1beta1_Params_inflation_min_tag 4 +#define cosmos_mint_v1beta1_Params_goal_bonded_tag 5 +#define cosmos_mint_v1beta1_Params_blocks_per_year_tag 6 + +/* Struct field encoding specification for nanopb */ +#define cosmos_mint_v1beta1_Minter_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, inflation, 1) \ + X(a, CALLBACK, SINGULAR, STRING, annual_provisions, 2) +#define cosmos_mint_v1beta1_Minter_CALLBACK pb_default_field_callback +#define cosmos_mint_v1beta1_Minter_DEFAULT NULL + +#define cosmos_mint_v1beta1_Params_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, mint_denom, 1) \ + X(a, CALLBACK, SINGULAR, STRING, inflation_rate_change, 2) \ + X(a, CALLBACK, SINGULAR, STRING, inflation_max, 3) \ + X(a, CALLBACK, SINGULAR, STRING, inflation_min, 4) \ + X(a, CALLBACK, SINGULAR, STRING, goal_bonded, 5) \ + X(a, STATIC, SINGULAR, UINT64, blocks_per_year, 6) +#define cosmos_mint_v1beta1_Params_CALLBACK pb_default_field_callback +#define cosmos_mint_v1beta1_Params_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_mint_v1beta1_Minter_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_mint_v1beta1_Minter_fields &cosmos_mint_v1beta1_Minter_msg +#define cosmos_mint_v1beta1_Params_fields &cosmos_mint_v1beta1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_mint_v1beta1_Minter_size depends on runtime parameters */ +/* cosmos_mint_v1beta1_Params_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/mint/v1beta1/query.pb.c b/app/src/protobuf/cosmos/mint/v1beta1/query.pb.c new file mode 100644 index 0000000..e9d63fe --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/query.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/mint/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_mint_v1beta1_QueryParamsRequest, cosmos_mint_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_mint_v1beta1_QueryParamsResponse, cosmos_mint_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_mint_v1beta1_QueryInflationRequest, cosmos_mint_v1beta1_QueryInflationRequest, AUTO) + +PB_BIND(cosmos_mint_v1beta1_QueryInflationResponse, cosmos_mint_v1beta1_QueryInflationResponse, AUTO) + +PB_BIND(cosmos_mint_v1beta1_QueryAnnualProvisionsRequest, cosmos_mint_v1beta1_QueryAnnualProvisionsRequest, AUTO) + +PB_BIND(cosmos_mint_v1beta1_QueryAnnualProvisionsResponse, cosmos_mint_v1beta1_QueryAnnualProvisionsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/mint/v1beta1/query.pb.h b/app/src/protobuf/cosmos/mint/v1beta1/query.pb.h new file mode 100644 index 0000000..dd33137 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/query.pb.h @@ -0,0 +1,158 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/mint/v1beta1/mint.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _cosmos_mint_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_mint_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _cosmos_mint_v1beta1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + cosmos_mint_v1beta1_Params params; +} cosmos_mint_v1beta1_QueryParamsResponse; + +/* QueryInflationRequest is the request type for the Query/Inflation RPC method. */ +typedef struct _cosmos_mint_v1beta1_QueryInflationRequest { + char dummy_field; +} cosmos_mint_v1beta1_QueryInflationRequest; + +/* QueryInflationResponse is the response type for the Query/Inflation RPC + method. */ +typedef struct _cosmos_mint_v1beta1_QueryInflationResponse { + /* inflation is the current minting inflation value. */ + pb_callback_t inflation; +} cosmos_mint_v1beta1_QueryInflationResponse; + +/* QueryAnnualProvisionsRequest is the request type for the + Query/AnnualProvisions RPC method. */ +typedef struct _cosmos_mint_v1beta1_QueryAnnualProvisionsRequest { + char dummy_field; +} cosmos_mint_v1beta1_QueryAnnualProvisionsRequest; + +/* QueryAnnualProvisionsResponse is the response type for the + Query/AnnualProvisions RPC method. */ +typedef struct _cosmos_mint_v1beta1_QueryAnnualProvisionsResponse { + /* annual_provisions is the current minting annual provisions value. */ + pb_callback_t annual_provisions; +} cosmos_mint_v1beta1_QueryAnnualProvisionsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_mint_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_mint_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_mint_v1beta1_Params_init_default } +#define cosmos_mint_v1beta1_QueryInflationRequest_init_default \ + { 0 } +#define cosmos_mint_v1beta1_QueryInflationResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_init_default \ + { 0 } +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_mint_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_mint_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_mint_v1beta1_Params_init_zero } +#define cosmos_mint_v1beta1_QueryInflationRequest_init_zero \ + { 0 } +#define cosmos_mint_v1beta1_QueryInflationResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_init_zero \ + { 0 } +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_mint_v1beta1_QueryParamsResponse_params_tag 1 +#define cosmos_mint_v1beta1_QueryInflationResponse_inflation_tag 1 +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_annual_provisions_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_mint_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_mint_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_mint_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_mint_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_mint_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_mint_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_mint_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_mint_v1beta1_Params + +#define cosmos_mint_v1beta1_QueryInflationRequest_FIELDLIST(X, a) + +#define cosmos_mint_v1beta1_QueryInflationRequest_CALLBACK NULL +#define cosmos_mint_v1beta1_QueryInflationRequest_DEFAULT NULL + +#define cosmos_mint_v1beta1_QueryInflationResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inflation, 1) +#define cosmos_mint_v1beta1_QueryInflationResponse_CALLBACK pb_default_field_callback +#define cosmos_mint_v1beta1_QueryInflationResponse_DEFAULT NULL + +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_FIELDLIST(X, a) + +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_CALLBACK NULL +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_DEFAULT NULL + +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, annual_provisions, 1) +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_CALLBACK pb_default_field_callback +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryInflationRequest_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryInflationResponse_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_mint_v1beta1_QueryParamsRequest_fields &cosmos_mint_v1beta1_QueryParamsRequest_msg +#define cosmos_mint_v1beta1_QueryParamsResponse_fields &cosmos_mint_v1beta1_QueryParamsResponse_msg +#define cosmos_mint_v1beta1_QueryInflationRequest_fields &cosmos_mint_v1beta1_QueryInflationRequest_msg +#define cosmos_mint_v1beta1_QueryInflationResponse_fields &cosmos_mint_v1beta1_QueryInflationResponse_msg +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_fields &cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_msg +#define cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_fields &cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_mint_v1beta1_QueryInflationResponse_size depends on runtime parameters */ +/* cosmos_mint_v1beta1_QueryAnnualProvisionsResponse_size depends on runtime parameters */ +#define cosmos_mint_v1beta1_QueryAnnualProvisionsRequest_size 0 +#define cosmos_mint_v1beta1_QueryInflationRequest_size 0 +#define cosmos_mint_v1beta1_QueryParamsRequest_size 0 +#if defined(cosmos_mint_v1beta1_Params_size) +#define COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_mint_v1beta1_QueryParamsResponse_size +#define cosmos_mint_v1beta1_QueryParamsResponse_size (6 + cosmos_mint_v1beta1_Params_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.c new file mode 100644 index 0000000..b12a427 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/mint/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_mint_v1beta1_MsgUpdateParams, cosmos_mint_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_mint_v1beta1_MsgUpdateParamsResponse, cosmos_mint_v1beta1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.h new file mode 100644 index 0000000..38fca94 --- /dev/null +++ b/app/src/protobuf/cosmos/mint/v1beta1/tx.pb.h @@ -0,0 +1,86 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_MINT_V1BETA1_COSMOS_MINT_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/mint/v1beta1/mint.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_mint_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/mint parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_mint_v1beta1_Params params; +} cosmos_mint_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_mint_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_mint_v1beta1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_mint_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_mint_v1beta1_Params_init_default } +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_mint_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_mint_v1beta1_Params_init_zero } +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_mint_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_mint_v1beta1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_mint_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_mint_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_mint_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_mint_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_mint_v1beta1_Params + +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_mint_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_mint_v1beta1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_mint_v1beta1_MsgUpdateParams_fields &cosmos_mint_v1beta1_MsgUpdateParams_msg +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_fields &cosmos_mint_v1beta1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_mint_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_mint_v1beta1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.c b/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.c new file mode 100644 index 0000000..31b9228 --- /dev/null +++ b/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.c @@ -0,0 +1,7 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/msg/textual/v1/textual.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif diff --git a/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.h b/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.h new file mode 100644 index 0000000..51ea21a --- /dev/null +++ b/app/src/protobuf/cosmos/msg/textual/v1/textual.pb.h @@ -0,0 +1,24 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MSG_TEXTUAL_V1_COSMOS_MSG_TEXTUAL_V1_TEXTUAL_PB_H_INCLUDED +#define PB_COSMOS_MSG_TEXTUAL_V1_COSMOS_MSG_TEXTUAL_V1_TEXTUAL_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +/* Extension field cosmos_msg_textual_v1_expert_custom_renderer was skipped because only "optional" + type of extension fields is currently supported. */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/msg/v1/msg.pb.c b/app/src/protobuf/cosmos/msg/v1/msg.pb.c new file mode 100644 index 0000000..ff4eadc --- /dev/null +++ b/app/src/protobuf/cosmos/msg/v1/msg.pb.c @@ -0,0 +1,7 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/msg/v1/msg.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif diff --git a/app/src/protobuf/cosmos/msg/v1/msg.pb.h b/app/src/protobuf/cosmos/msg/v1/msg.pb.h new file mode 100644 index 0000000..0e3b95c --- /dev/null +++ b/app/src/protobuf/cosmos/msg/v1/msg.pb.h @@ -0,0 +1,26 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_MSG_V1_COSMOS_MSG_V1_MSG_PB_H_INCLUDED +#define PB_COSMOS_MSG_V1_COSMOS_MSG_V1_MSG_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +/* Extension field cosmos_msg_v1_service was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field cosmos_msg_v1_signer was skipped because only "optional" + type of extension fields is currently supported. */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/module/v1/module.pb.c b/app/src/protobuf/cosmos/nft/module/v1/module.pb.c new file mode 100644 index 0000000..69a57fe --- /dev/null +++ b/app/src/protobuf/cosmos/nft/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_module_v1_Module, cosmos_nft_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/nft/module/v1/module.pb.h b/app/src/protobuf/cosmos/nft/module/v1/module.pb.h new file mode 100644 index 0000000..351022d --- /dev/null +++ b/app/src/protobuf/cosmos/nft/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_MODULE_V1_COSMOS_NFT_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_NFT_MODULE_V1_COSMOS_NFT_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the nft module. */ +typedef struct _cosmos_nft_module_v1_Module { + char dummy_field; +} cosmos_nft_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_module_v1_Module_init_default \ + { 0 } +#define cosmos_nft_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_nft_module_v1_Module_CALLBACK NULL +#define cosmos_nft_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_nft_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_module_v1_Module_fields &cosmos_nft_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_NFT_MODULE_V1_COSMOS_NFT_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_nft_module_v1_Module_size +#define cosmos_nft_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/v1beta1/event.pb.c b/app/src/protobuf/cosmos/nft/v1beta1/event.pb.c new file mode 100644 index 0000000..2cb5e4f --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/event.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/v1beta1/event.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_v1beta1_EventSend, cosmos_nft_v1beta1_EventSend, AUTO) + +PB_BIND(cosmos_nft_v1beta1_EventMint, cosmos_nft_v1beta1_EventMint, AUTO) + +PB_BIND(cosmos_nft_v1beta1_EventBurn, cosmos_nft_v1beta1_EventBurn, AUTO) diff --git a/app/src/protobuf/cosmos/nft/v1beta1/event.pb.h b/app/src/protobuf/cosmos/nft/v1beta1/event.pb.h new file mode 100644 index 0000000..54b5f68 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/event.pb.h @@ -0,0 +1,128 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_EVENT_PB_H_INCLUDED +#define PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_EVENT_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* EventSend is emitted on Msg/Send */ +typedef struct _cosmos_nft_v1beta1_EventSend { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* id is a unique identifier of the nft */ + pb_callback_t id; + /* sender is the address of the owner of nft */ + pb_callback_t sender; + /* receiver is the receiver address of nft */ + pb_callback_t receiver; +} cosmos_nft_v1beta1_EventSend; + +/* EventMint is emitted on Mint */ +typedef struct _cosmos_nft_v1beta1_EventMint { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* id is a unique identifier of the nft */ + pb_callback_t id; + /* owner is the owner address of the nft */ + pb_callback_t owner; +} cosmos_nft_v1beta1_EventMint; + +/* EventBurn is emitted on Burn */ +typedef struct _cosmos_nft_v1beta1_EventBurn { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* id is a unique identifier of the nft */ + pb_callback_t id; + /* owner is the owner address of the nft */ + pb_callback_t owner; +} cosmos_nft_v1beta1_EventBurn; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_v1beta1_EventSend_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_EventMint_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_EventBurn_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_EventSend_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_EventMint_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_EventBurn_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_nft_v1beta1_EventSend_class_id_tag 1 +#define cosmos_nft_v1beta1_EventSend_id_tag 2 +#define cosmos_nft_v1beta1_EventSend_sender_tag 3 +#define cosmos_nft_v1beta1_EventSend_receiver_tag 4 +#define cosmos_nft_v1beta1_EventMint_class_id_tag 1 +#define cosmos_nft_v1beta1_EventMint_id_tag 2 +#define cosmos_nft_v1beta1_EventMint_owner_tag 3 +#define cosmos_nft_v1beta1_EventBurn_class_id_tag 1 +#define cosmos_nft_v1beta1_EventBurn_id_tag 2 +#define cosmos_nft_v1beta1_EventBurn_owner_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_v1beta1_EventSend_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) \ + X(a, CALLBACK, SINGULAR, STRING, receiver, 4) +#define cosmos_nft_v1beta1_EventSend_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_EventSend_DEFAULT NULL + +#define cosmos_nft_v1beta1_EventMint_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 3) +#define cosmos_nft_v1beta1_EventMint_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_EventMint_DEFAULT NULL + +#define cosmos_nft_v1beta1_EventBurn_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 3) +#define cosmos_nft_v1beta1_EventBurn_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_EventBurn_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_nft_v1beta1_EventSend_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_EventMint_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_EventBurn_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_v1beta1_EventSend_fields &cosmos_nft_v1beta1_EventSend_msg +#define cosmos_nft_v1beta1_EventMint_fields &cosmos_nft_v1beta1_EventMint_msg +#define cosmos_nft_v1beta1_EventBurn_fields &cosmos_nft_v1beta1_EventBurn_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_nft_v1beta1_EventSend_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_EventMint_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_EventBurn_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.c new file mode 100644 index 0000000..bce6ebd --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_v1beta1_GenesisState, cosmos_nft_v1beta1_GenesisState, AUTO) + +PB_BIND(cosmos_nft_v1beta1_Entry, cosmos_nft_v1beta1_Entry, AUTO) diff --git a/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.h new file mode 100644 index 0000000..c17a203 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/genesis.pb.h @@ -0,0 +1,90 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "cosmos/nft/v1beta1/nft.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the nft module's genesis state. */ +typedef struct _cosmos_nft_v1beta1_GenesisState { + /* class defines the class of the nft type. */ + pb_callback_t classes; + /* entry defines all nft owned by a person. */ + pb_callback_t entries; +} cosmos_nft_v1beta1_GenesisState; + +/* Entry Defines all nft owned by a person */ +typedef struct _cosmos_nft_v1beta1_Entry { + /* owner is the owner address of the following nft */ + pb_callback_t owner; + /* nfts is a group of nfts of the same owner */ + pb_callback_t nfts; +} cosmos_nft_v1beta1_Entry; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_v1beta1_GenesisState_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_Entry_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_GenesisState_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_Entry_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_nft_v1beta1_GenesisState_classes_tag 1 +#define cosmos_nft_v1beta1_GenesisState_entries_tag 2 +#define cosmos_nft_v1beta1_Entry_owner_tag 1 +#define cosmos_nft_v1beta1_Entry_nfts_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, classes, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, entries, 2) +#define cosmos_nft_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_nft_v1beta1_GenesisState_classes_MSGTYPE cosmos_nft_v1beta1_Class +#define cosmos_nft_v1beta1_GenesisState_entries_MSGTYPE cosmos_nft_v1beta1_Entry + +#define cosmos_nft_v1beta1_Entry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, nfts, 2) +#define cosmos_nft_v1beta1_Entry_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_Entry_DEFAULT NULL +#define cosmos_nft_v1beta1_Entry_nfts_MSGTYPE cosmos_nft_v1beta1_NFT + +extern const pb_msgdesc_t cosmos_nft_v1beta1_GenesisState_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_Entry_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_v1beta1_GenesisState_fields &cosmos_nft_v1beta1_GenesisState_msg +#define cosmos_nft_v1beta1_Entry_fields &cosmos_nft_v1beta1_Entry_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_nft_v1beta1_GenesisState_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_Entry_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.c b/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.c new file mode 100644 index 0000000..329f0e0 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/v1beta1/nft.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_v1beta1_Class, cosmos_nft_v1beta1_Class, AUTO) + +PB_BIND(cosmos_nft_v1beta1_NFT, cosmos_nft_v1beta1_NFT, AUTO) diff --git a/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.h b/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.h new file mode 100644 index 0000000..05ea5ea --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/nft.pb.h @@ -0,0 +1,121 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_NFT_PB_H_INCLUDED +#define PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_NFT_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Class defines the class of the nft type. */ +typedef struct _cosmos_nft_v1beta1_Class { + /* id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 */ + pb_callback_t id; + /* name defines the human-readable name of the NFT classification. Optional */ + pb_callback_t name; + /* symbol is an abbreviated name for nft classification. Optional */ + pb_callback_t symbol; + /* description is a brief description of nft classification. Optional */ + pb_callback_t description; + /* uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional */ + pb_callback_t uri; + /* uri_hash is a hash of the document pointed by uri. Optional */ + pb_callback_t uri_hash; + /* data is the app specific metadata of the NFT class. Optional */ + bool has_data; + google_protobuf_Any data; +} cosmos_nft_v1beta1_Class; + +/* NFT defines the NFT. */ +typedef struct _cosmos_nft_v1beta1_NFT { + /* class_id associated with the NFT, similar to the contract address of ERC721 */ + pb_callback_t class_id; + /* id is a unique identifier of the NFT */ + pb_callback_t id; + /* uri for the NFT metadata stored off chain */ + pb_callback_t uri; + /* uri_hash is a hash of the document pointed by uri */ + pb_callback_t uri_hash; + /* data is an app specific data of the NFT. Optional */ + bool has_data; + google_protobuf_Any data; +} cosmos_nft_v1beta1_NFT; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_v1beta1_Class_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_Any_init_default \ + } +#define cosmos_nft_v1beta1_NFT_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define cosmos_nft_v1beta1_Class_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_Any_init_zero \ + } +#define cosmos_nft_v1beta1_NFT_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_nft_v1beta1_Class_id_tag 1 +#define cosmos_nft_v1beta1_Class_name_tag 2 +#define cosmos_nft_v1beta1_Class_symbol_tag 3 +#define cosmos_nft_v1beta1_Class_description_tag 4 +#define cosmos_nft_v1beta1_Class_uri_tag 5 +#define cosmos_nft_v1beta1_Class_uri_hash_tag 6 +#define cosmos_nft_v1beta1_Class_data_tag 7 +#define cosmos_nft_v1beta1_NFT_class_id_tag 1 +#define cosmos_nft_v1beta1_NFT_id_tag 2 +#define cosmos_nft_v1beta1_NFT_uri_tag 3 +#define cosmos_nft_v1beta1_NFT_uri_hash_tag 4 +#define cosmos_nft_v1beta1_NFT_data_tag 10 + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_v1beta1_Class_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, name, 2) \ + X(a, CALLBACK, SINGULAR, STRING, symbol, 3) \ + X(a, CALLBACK, SINGULAR, STRING, description, 4) \ + X(a, CALLBACK, SINGULAR, STRING, uri, 5) \ + X(a, CALLBACK, SINGULAR, STRING, uri_hash, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 7) +#define cosmos_nft_v1beta1_Class_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_Class_DEFAULT NULL +#define cosmos_nft_v1beta1_Class_data_MSGTYPE google_protobuf_Any + +#define cosmos_nft_v1beta1_NFT_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, uri, 3) \ + X(a, CALLBACK, SINGULAR, STRING, uri_hash, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 10) +#define cosmos_nft_v1beta1_NFT_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_NFT_DEFAULT NULL +#define cosmos_nft_v1beta1_NFT_data_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t cosmos_nft_v1beta1_Class_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_NFT_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_v1beta1_Class_fields &cosmos_nft_v1beta1_Class_msg +#define cosmos_nft_v1beta1_NFT_fields &cosmos_nft_v1beta1_NFT_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_nft_v1beta1_Class_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_NFT_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/v1beta1/query.pb.c b/app/src/protobuf/cosmos/nft/v1beta1/query.pb.c new file mode 100644 index 0000000..6f32d03 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/query.pb.c @@ -0,0 +1,35 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_v1beta1_QueryBalanceRequest, cosmos_nft_v1beta1_QueryBalanceRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryBalanceResponse, cosmos_nft_v1beta1_QueryBalanceResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryOwnerRequest, cosmos_nft_v1beta1_QueryOwnerRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryOwnerResponse, cosmos_nft_v1beta1_QueryOwnerResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QuerySupplyRequest, cosmos_nft_v1beta1_QuerySupplyRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QuerySupplyResponse, cosmos_nft_v1beta1_QuerySupplyResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryNFTsRequest, cosmos_nft_v1beta1_QueryNFTsRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryNFTsResponse, cosmos_nft_v1beta1_QueryNFTsResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryNFTRequest, cosmos_nft_v1beta1_QueryNFTRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryNFTResponse, cosmos_nft_v1beta1_QueryNFTResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryClassRequest, cosmos_nft_v1beta1_QueryClassRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryClassResponse, cosmos_nft_v1beta1_QueryClassResponse, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryClassesRequest, cosmos_nft_v1beta1_QueryClassesRequest, AUTO) + +PB_BIND(cosmos_nft_v1beta1_QueryClassesResponse, cosmos_nft_v1beta1_QueryClassesResponse, AUTO) diff --git a/app/src/protobuf/cosmos/nft/v1beta1/query.pb.h b/app/src/protobuf/cosmos/nft/v1beta1/query.pb.h new file mode 100644 index 0000000..127da3c --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/query.pb.h @@ -0,0 +1,366 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/nft/v1beta1/nft.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryBalanceRequest is the request type for the Query/Balance RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryBalanceRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* owner is the owner address of the nft */ + pb_callback_t owner; +} cosmos_nft_v1beta1_QueryBalanceRequest; + +/* QueryBalanceResponse is the response type for the Query/Balance RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryBalanceResponse { + /* amount is the number of all NFTs of a given class owned by the owner */ + uint64_t amount; +} cosmos_nft_v1beta1_QueryBalanceResponse; + +/* QueryOwnerRequest is the request type for the Query/Owner RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryOwnerRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* id is a unique identifier of the NFT */ + pb_callback_t id; +} cosmos_nft_v1beta1_QueryOwnerRequest; + +/* QueryOwnerResponse is the response type for the Query/Owner RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryOwnerResponse { + /* owner is the owner address of the nft */ + pb_callback_t owner; +} cosmos_nft_v1beta1_QueryOwnerResponse; + +/* QuerySupplyRequest is the request type for the Query/Supply RPC method */ +typedef struct _cosmos_nft_v1beta1_QuerySupplyRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; +} cosmos_nft_v1beta1_QuerySupplyRequest; + +/* QuerySupplyResponse is the response type for the Query/Supply RPC method */ +typedef struct _cosmos_nft_v1beta1_QuerySupplyResponse { + /* amount is the number of all NFTs from the given class */ + uint64_t amount; +} cosmos_nft_v1beta1_QuerySupplyResponse; + +/* QueryNFTstRequest is the request type for the Query/NFTs RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryNFTsRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* owner is the owner address of the nft */ + pb_callback_t owner; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_nft_v1beta1_QueryNFTsRequest; + +/* QueryNFTsResponse is the response type for the Query/NFTs RPC methods */ +typedef struct _cosmos_nft_v1beta1_QueryNFTsResponse { + /* NFT defines the NFT */ + pb_callback_t nfts; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_nft_v1beta1_QueryNFTsResponse; + +/* QueryNFTRequest is the request type for the Query/NFT RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryNFTRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; + /* id is a unique identifier of the NFT */ + pb_callback_t id; +} cosmos_nft_v1beta1_QueryNFTRequest; + +/* QueryNFTResponse is the response type for the Query/NFT RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryNFTResponse { + /* owner is the owner address of the nft */ + bool has_nft; + cosmos_nft_v1beta1_NFT nft; +} cosmos_nft_v1beta1_QueryNFTResponse; + +/* QueryClassRequest is the request type for the Query/Class RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryClassRequest { + /* class_id associated with the nft */ + pb_callback_t class_id; +} cosmos_nft_v1beta1_QueryClassRequest; + +/* QueryClassResponse is the response type for the Query/Class RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryClassResponse { + /* class defines the class of the nft type. */ + bool has_class; + cosmos_nft_v1beta1_Class class; +} cosmos_nft_v1beta1_QueryClassResponse; + +/* QueryClassesRequest is the request type for the Query/Classes RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryClassesRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_nft_v1beta1_QueryClassesRequest; + +/* QueryClassesResponse is the response type for the Query/Classes RPC method */ +typedef struct _cosmos_nft_v1beta1_QueryClassesResponse { + /* class defines the class of the nft type. */ + pb_callback_t classes; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_nft_v1beta1_QueryClassesResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_v1beta1_QueryBalanceRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryBalanceResponse_init_default \ + { 0 } +#define cosmos_nft_v1beta1_QueryOwnerRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryOwnerResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QuerySupplyRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QuerySupplyResponse_init_default \ + { 0 } +#define cosmos_nft_v1beta1_QueryNFTsRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_nft_v1beta1_QueryNFTsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_nft_v1beta1_QueryNFTRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryNFTResponse_init_default \ + { false, cosmos_nft_v1beta1_NFT_init_default } +#define cosmos_nft_v1beta1_QueryClassRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryClassResponse_init_default \ + { false, cosmos_nft_v1beta1_Class_init_default } +#define cosmos_nft_v1beta1_QueryClassesRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_nft_v1beta1_QueryClassesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_nft_v1beta1_QueryBalanceRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryBalanceResponse_init_zero \ + { 0 } +#define cosmos_nft_v1beta1_QueryOwnerRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryOwnerResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QuerySupplyRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QuerySupplyResponse_init_zero \ + { 0 } +#define cosmos_nft_v1beta1_QueryNFTsRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_nft_v1beta1_QueryNFTsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_nft_v1beta1_QueryNFTRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryNFTResponse_init_zero \ + { false, cosmos_nft_v1beta1_NFT_init_zero } +#define cosmos_nft_v1beta1_QueryClassRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_QueryClassResponse_init_zero \ + { false, cosmos_nft_v1beta1_Class_init_zero } +#define cosmos_nft_v1beta1_QueryClassesRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_nft_v1beta1_QueryClassesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_nft_v1beta1_QueryBalanceRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QueryBalanceRequest_owner_tag 2 +#define cosmos_nft_v1beta1_QueryBalanceResponse_amount_tag 1 +#define cosmos_nft_v1beta1_QueryOwnerRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QueryOwnerRequest_id_tag 2 +#define cosmos_nft_v1beta1_QueryOwnerResponse_owner_tag 1 +#define cosmos_nft_v1beta1_QuerySupplyRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QuerySupplyResponse_amount_tag 1 +#define cosmos_nft_v1beta1_QueryNFTsRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QueryNFTsRequest_owner_tag 2 +#define cosmos_nft_v1beta1_QueryNFTsRequest_pagination_tag 3 +#define cosmos_nft_v1beta1_QueryNFTsResponse_nfts_tag 1 +#define cosmos_nft_v1beta1_QueryNFTsResponse_pagination_tag 2 +#define cosmos_nft_v1beta1_QueryNFTRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QueryNFTRequest_id_tag 2 +#define cosmos_nft_v1beta1_QueryNFTResponse_nft_tag 1 +#define cosmos_nft_v1beta1_QueryClassRequest_class_id_tag 1 +#define cosmos_nft_v1beta1_QueryClassResponse_class_tag 1 +#define cosmos_nft_v1beta1_QueryClassesRequest_pagination_tag 1 +#define cosmos_nft_v1beta1_QueryClassesResponse_classes_tag 1 +#define cosmos_nft_v1beta1_QueryClassesResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_v1beta1_QueryBalanceRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 2) +#define cosmos_nft_v1beta1_QueryBalanceRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryBalanceRequest_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryBalanceResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, amount, 1) +#define cosmos_nft_v1beta1_QueryBalanceResponse_CALLBACK NULL +#define cosmos_nft_v1beta1_QueryBalanceResponse_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryOwnerRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) +#define cosmos_nft_v1beta1_QueryOwnerRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryOwnerRequest_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryOwnerResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, owner, 1) +#define cosmos_nft_v1beta1_QueryOwnerResponse_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryOwnerResponse_DEFAULT NULL + +#define cosmos_nft_v1beta1_QuerySupplyRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, class_id, 1) +#define cosmos_nft_v1beta1_QuerySupplyRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QuerySupplyRequest_DEFAULT NULL + +#define cosmos_nft_v1beta1_QuerySupplyResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, amount, 1) +#define cosmos_nft_v1beta1_QuerySupplyResponse_CALLBACK NULL +#define cosmos_nft_v1beta1_QuerySupplyResponse_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryNFTsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) +#define cosmos_nft_v1beta1_QueryNFTsRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryNFTsRequest_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryNFTsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_nft_v1beta1_QueryNFTsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, nfts, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_nft_v1beta1_QueryNFTsResponse_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryNFTsResponse_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryNFTsResponse_nfts_MSGTYPE cosmos_nft_v1beta1_NFT +#define cosmos_nft_v1beta1_QueryNFTsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_nft_v1beta1_QueryNFTRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) +#define cosmos_nft_v1beta1_QueryNFTRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryNFTRequest_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryNFTResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, nft, 1) +#define cosmos_nft_v1beta1_QueryNFTResponse_CALLBACK NULL +#define cosmos_nft_v1beta1_QueryNFTResponse_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryNFTResponse_nft_MSGTYPE cosmos_nft_v1beta1_NFT + +#define cosmos_nft_v1beta1_QueryClassRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, class_id, 1) +#define cosmos_nft_v1beta1_QueryClassRequest_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryClassRequest_DEFAULT NULL + +#define cosmos_nft_v1beta1_QueryClassResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, class, 1) +#define cosmos_nft_v1beta1_QueryClassResponse_CALLBACK NULL +#define cosmos_nft_v1beta1_QueryClassResponse_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryClassResponse_class_MSGTYPE cosmos_nft_v1beta1_Class + +#define cosmos_nft_v1beta1_QueryClassesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_nft_v1beta1_QueryClassesRequest_CALLBACK NULL +#define cosmos_nft_v1beta1_QueryClassesRequest_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryClassesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_nft_v1beta1_QueryClassesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, classes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_nft_v1beta1_QueryClassesResponse_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_QueryClassesResponse_DEFAULT NULL +#define cosmos_nft_v1beta1_QueryClassesResponse_classes_MSGTYPE cosmos_nft_v1beta1_Class +#define cosmos_nft_v1beta1_QueryClassesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryBalanceRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryBalanceResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryOwnerRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryOwnerResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QuerySupplyRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QuerySupplyResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryNFTsRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryNFTsResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryNFTRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryNFTResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryClassRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryClassResponse_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryClassesRequest_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_QueryClassesResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_v1beta1_QueryBalanceRequest_fields &cosmos_nft_v1beta1_QueryBalanceRequest_msg +#define cosmos_nft_v1beta1_QueryBalanceResponse_fields &cosmos_nft_v1beta1_QueryBalanceResponse_msg +#define cosmos_nft_v1beta1_QueryOwnerRequest_fields &cosmos_nft_v1beta1_QueryOwnerRequest_msg +#define cosmos_nft_v1beta1_QueryOwnerResponse_fields &cosmos_nft_v1beta1_QueryOwnerResponse_msg +#define cosmos_nft_v1beta1_QuerySupplyRequest_fields &cosmos_nft_v1beta1_QuerySupplyRequest_msg +#define cosmos_nft_v1beta1_QuerySupplyResponse_fields &cosmos_nft_v1beta1_QuerySupplyResponse_msg +#define cosmos_nft_v1beta1_QueryNFTsRequest_fields &cosmos_nft_v1beta1_QueryNFTsRequest_msg +#define cosmos_nft_v1beta1_QueryNFTsResponse_fields &cosmos_nft_v1beta1_QueryNFTsResponse_msg +#define cosmos_nft_v1beta1_QueryNFTRequest_fields &cosmos_nft_v1beta1_QueryNFTRequest_msg +#define cosmos_nft_v1beta1_QueryNFTResponse_fields &cosmos_nft_v1beta1_QueryNFTResponse_msg +#define cosmos_nft_v1beta1_QueryClassRequest_fields &cosmos_nft_v1beta1_QueryClassRequest_msg +#define cosmos_nft_v1beta1_QueryClassResponse_fields &cosmos_nft_v1beta1_QueryClassResponse_msg +#define cosmos_nft_v1beta1_QueryClassesRequest_fields &cosmos_nft_v1beta1_QueryClassesRequest_msg +#define cosmos_nft_v1beta1_QueryClassesResponse_fields &cosmos_nft_v1beta1_QueryClassesResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_nft_v1beta1_QueryBalanceRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryOwnerRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryOwnerResponse_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QuerySupplyRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryNFTsRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryNFTsResponse_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryNFTRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryClassRequest_size depends on runtime parameters */ +/* cosmos_nft_v1beta1_QueryClassesResponse_size depends on runtime parameters */ +#define COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_nft_v1beta1_QueryBalanceResponse_size +#define cosmos_nft_v1beta1_QueryBalanceResponse_size 11 +#define cosmos_nft_v1beta1_QuerySupplyResponse_size 11 +#if defined(cosmos_nft_v1beta1_NFT_size) +#define cosmos_nft_v1beta1_QueryNFTResponse_size (6 + cosmos_nft_v1beta1_NFT_size) +#endif +#if defined(cosmos_nft_v1beta1_Class_size) +#define cosmos_nft_v1beta1_QueryClassResponse_size (6 + cosmos_nft_v1beta1_Class_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_nft_v1beta1_QueryClassesRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.c new file mode 100644 index 0000000..4c37f38 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/nft/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_nft_v1beta1_MsgSend, cosmos_nft_v1beta1_MsgSend, AUTO) + +PB_BIND(cosmos_nft_v1beta1_MsgSendResponse, cosmos_nft_v1beta1_MsgSendResponse, AUTO) diff --git a/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.h new file mode 100644 index 0000000..fbb4041 --- /dev/null +++ b/app/src/protobuf/cosmos/nft/v1beta1/tx.pb.h @@ -0,0 +1,86 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_NFT_V1BETA1_COSMOS_NFT_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos_proto/cosmos.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSend represents a message to send a nft from one account to another account. */ +typedef struct _cosmos_nft_v1beta1_MsgSend { + /* class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 */ + pb_callback_t class_id; + /* id defines the unique identification of nft */ + pb_callback_t id; + /* sender is the address of the owner of nft */ + pb_callback_t sender; + /* receiver is the receiver address of nft */ + pb_callback_t receiver; +} cosmos_nft_v1beta1_MsgSend; + +/* MsgSendResponse defines the Msg/Send response type. */ +typedef struct _cosmos_nft_v1beta1_MsgSendResponse { + char dummy_field; +} cosmos_nft_v1beta1_MsgSendResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_nft_v1beta1_MsgSend_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_MsgSendResponse_init_default \ + { 0 } +#define cosmos_nft_v1beta1_MsgSend_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_nft_v1beta1_MsgSendResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_nft_v1beta1_MsgSend_class_id_tag 1 +#define cosmos_nft_v1beta1_MsgSend_id_tag 2 +#define cosmos_nft_v1beta1_MsgSend_sender_tag 3 +#define cosmos_nft_v1beta1_MsgSend_receiver_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_nft_v1beta1_MsgSend_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, class_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) \ + X(a, CALLBACK, SINGULAR, STRING, receiver, 4) +#define cosmos_nft_v1beta1_MsgSend_CALLBACK pb_default_field_callback +#define cosmos_nft_v1beta1_MsgSend_DEFAULT NULL + +#define cosmos_nft_v1beta1_MsgSendResponse_FIELDLIST(X, a) + +#define cosmos_nft_v1beta1_MsgSendResponse_CALLBACK NULL +#define cosmos_nft_v1beta1_MsgSendResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_nft_v1beta1_MsgSend_msg; +extern const pb_msgdesc_t cosmos_nft_v1beta1_MsgSendResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_nft_v1beta1_MsgSend_fields &cosmos_nft_v1beta1_MsgSend_msg +#define cosmos_nft_v1beta1_MsgSendResponse_fields &cosmos_nft_v1beta1_MsgSendResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_nft_v1beta1_MsgSend_size depends on runtime parameters */ +#define cosmos_nft_v1beta1_MsgSendResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.c b/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.c new file mode 100644 index 0000000..f6cee67 --- /dev/null +++ b/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/orm/module/v1alpha1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_orm_module_v1alpha1_Module, cosmos_orm_module_v1alpha1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.h b/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.h new file mode 100644 index 0000000..76efded --- /dev/null +++ b/app/src/protobuf/cosmos/orm/module/v1alpha1/module.pb.h @@ -0,0 +1,53 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_ORM_MODULE_V1ALPHA1_COSMOS_ORM_MODULE_V1ALPHA1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_ORM_MODULE_V1ALPHA1_COSMOS_ORM_MODULE_V1ALPHA1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module defines the ORM module which adds providers to the app container for + ORM ModuleDB's and in the future will automatically register query + services for modules that use the ORM. */ +typedef struct _cosmos_orm_module_v1alpha1_Module { + char dummy_field; +} cosmos_orm_module_v1alpha1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_orm_module_v1alpha1_Module_init_default \ + { 0 } +#define cosmos_orm_module_v1alpha1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_orm_module_v1alpha1_Module_FIELDLIST(X, a) + +#define cosmos_orm_module_v1alpha1_Module_CALLBACK NULL +#define cosmos_orm_module_v1alpha1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_orm_module_v1alpha1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_orm_module_v1alpha1_Module_fields &cosmos_orm_module_v1alpha1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_ORM_MODULE_V1ALPHA1_COSMOS_ORM_MODULE_V1ALPHA1_MODULE_PB_H_MAX_SIZE cosmos_orm_module_v1alpha1_Module_size +#define cosmos_orm_module_v1alpha1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.c b/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.c new file mode 100644 index 0000000..9f0ce14 --- /dev/null +++ b/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/orm/query/v1alpha1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_orm_query_v1alpha1_GetRequest, cosmos_orm_query_v1alpha1_GetRequest, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_GetResponse, cosmos_orm_query_v1alpha1_GetResponse, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_ListRequest, cosmos_orm_query_v1alpha1_ListRequest, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_ListRequest_Prefix, cosmos_orm_query_v1alpha1_ListRequest_Prefix, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_ListRequest_Range, cosmos_orm_query_v1alpha1_ListRequest_Range, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_ListResponse, cosmos_orm_query_v1alpha1_ListResponse, AUTO) + +PB_BIND(cosmos_orm_query_v1alpha1_IndexValue, cosmos_orm_query_v1alpha1_IndexValue, AUTO) diff --git a/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.h b/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.h new file mode 100644 index 0000000..d21ec64 --- /dev/null +++ b/app/src/protobuf/cosmos/orm/query/v1alpha1/query.pb.h @@ -0,0 +1,287 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_ORM_QUERY_V1ALPHA1_COSMOS_ORM_QUERY_V1ALPHA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_ORM_QUERY_V1ALPHA1_COSMOS_ORM_QUERY_V1ALPHA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GetRequest is the Query/Get request type. */ +typedef struct _cosmos_orm_query_v1alpha1_GetRequest { + /* message_name is the fully-qualified message name of the ORM table being queried. */ + pb_callback_t message_name; + /* index is the index fields expression used in orm definitions. If it + is empty, the table's primary key is assumed. If it is non-empty, it must + refer to an unique index. */ + pb_callback_t index; + /* values are the values of the fields corresponding to the requested index. + There must be as many values provided as there are fields in the index and + these values must correspond to the index field types. */ + pb_callback_t values; +} cosmos_orm_query_v1alpha1_GetRequest; + +/* GetResponse is the Query/Get response type. */ +typedef struct _cosmos_orm_query_v1alpha1_GetResponse { + /* result is the result of the get query. If no value is found, the gRPC + status code NOT_FOUND will be returned. */ + bool has_result; + google_protobuf_Any result; +} cosmos_orm_query_v1alpha1_GetResponse; + +/* Prefix specifies the arguments to a prefix query. */ +typedef struct _cosmos_orm_query_v1alpha1_ListRequest_Prefix { + /* values specifies the index values for the prefix query. + It is valid to special a partial prefix with fewer values than + the number of fields in the index. */ + pb_callback_t values; +} cosmos_orm_query_v1alpha1_ListRequest_Prefix; + +/* Range specifies the arguments to a range query. */ +typedef struct _cosmos_orm_query_v1alpha1_ListRequest_Range { + /* start specifies the starting index values for the range query. + It is valid to provide fewer values than the number of fields in the + index. */ + pb_callback_t start; + /* end specifies the inclusive ending index values for the range query. + It is valid to provide fewer values than the number of fields in the + index. */ + pb_callback_t end; +} cosmos_orm_query_v1alpha1_ListRequest_Range; + +/* ListRequest is the Query/List request type. */ +typedef struct _cosmos_orm_query_v1alpha1_ListRequest { + /* message_name is the fully-qualified message name of the ORM table being queried. */ + pb_callback_t message_name; + /* index is the index fields expression used in orm definitions. If it + is empty, the table's primary key is assumed. */ + pb_callback_t index; + pb_size_t which_query; + union { + /* prefix defines a prefix query. */ + cosmos_orm_query_v1alpha1_ListRequest_Prefix prefix; + /* range defines a range query. */ + cosmos_orm_query_v1alpha1_ListRequest_Range range; + } query; + /* pagination is the pagination request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_orm_query_v1alpha1_ListRequest; + +/* ListResponse is the Query/List response type. */ +typedef struct _cosmos_orm_query_v1alpha1_ListResponse { + /* results are the results of the query. */ + pb_callback_t results; + /* pagination is the pagination response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_orm_query_v1alpha1_ListResponse; + +/* IndexValue represents the value of a field in an ORM index expression. */ +typedef struct _cosmos_orm_query_v1alpha1_IndexValue { + pb_size_t which_value; + union { + /* uint specifies a value for an uint32, fixed32, uint64, or fixed64 + index field. */ + uint64_t uint; + /* int64 specifies a value for an int32, sfixed32, int64, or sfixed64 + index field. */ + int64_t int_; + /* str specifies a value for a string index field. */ + pb_callback_t str; + /* bytes specifies a value for a bytes index field. */ + pb_callback_t bytes; + /* enum specifies a value for an enum index field. */ + pb_callback_t enum_; + /* bool specifies a value for a bool index field. */ + bool bool_; + /* timestamp specifies a value for a timestamp index field. */ + google_protobuf_Timestamp timestamp; + /* duration specifies a value for a duration index field. */ + google_protobuf_Duration duration; + } value; +} cosmos_orm_query_v1alpha1_IndexValue; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_orm_query_v1alpha1_GetRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_GetResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define cosmos_orm_query_v1alpha1_ListRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, {cosmos_orm_query_v1alpha1_ListRequest_Prefix_init_default}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_default \ + } +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_ListRequest_Range_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_ListResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_orm_query_v1alpha1_IndexValue_init_default \ + { \ + 0, { 0 } \ + } +#define cosmos_orm_query_v1alpha1_GetRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_GetResponse_init_zero \ + { false, google_protobuf_Any_init_zero } +#define cosmos_orm_query_v1alpha1_ListRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, {cosmos_orm_query_v1alpha1_ListRequest_Prefix_init_zero}, false, \ + cosmos_base_query_v1beta1_PageRequest_init_zero \ + } +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_ListRequest_Range_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_query_v1alpha1_ListResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_orm_query_v1alpha1_IndexValue_init_zero \ + { \ + 0, { 0 } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_orm_query_v1alpha1_GetRequest_message_name_tag 1 +#define cosmos_orm_query_v1alpha1_GetRequest_index_tag 2 +#define cosmos_orm_query_v1alpha1_GetRequest_values_tag 3 +#define cosmos_orm_query_v1alpha1_GetResponse_result_tag 1 +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_values_tag 1 +#define cosmos_orm_query_v1alpha1_ListRequest_Range_start_tag 1 +#define cosmos_orm_query_v1alpha1_ListRequest_Range_end_tag 2 +#define cosmos_orm_query_v1alpha1_ListRequest_message_name_tag 1 +#define cosmos_orm_query_v1alpha1_ListRequest_index_tag 2 +#define cosmos_orm_query_v1alpha1_ListRequest_prefix_tag 3 +#define cosmos_orm_query_v1alpha1_ListRequest_range_tag 4 +#define cosmos_orm_query_v1alpha1_ListRequest_pagination_tag 5 +#define cosmos_orm_query_v1alpha1_ListResponse_results_tag 1 +#define cosmos_orm_query_v1alpha1_ListResponse_pagination_tag 5 +#define cosmos_orm_query_v1alpha1_IndexValue_uint_tag 1 +#define cosmos_orm_query_v1alpha1_IndexValue_int__tag 2 +#define cosmos_orm_query_v1alpha1_IndexValue_str_tag 3 +#define cosmos_orm_query_v1alpha1_IndexValue_bytes_tag 4 +#define cosmos_orm_query_v1alpha1_IndexValue_enum__tag 5 +#define cosmos_orm_query_v1alpha1_IndexValue_bool__tag 6 +#define cosmos_orm_query_v1alpha1_IndexValue_timestamp_tag 7 +#define cosmos_orm_query_v1alpha1_IndexValue_duration_tag 8 + +/* Struct field encoding specification for nanopb */ +#define cosmos_orm_query_v1alpha1_GetRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, message_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, index, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, values, 3) +#define cosmos_orm_query_v1alpha1_GetRequest_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_GetRequest_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_GetRequest_values_MSGTYPE cosmos_orm_query_v1alpha1_IndexValue + +#define cosmos_orm_query_v1alpha1_GetResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, result, 1) +#define cosmos_orm_query_v1alpha1_GetResponse_CALLBACK NULL +#define cosmos_orm_query_v1alpha1_GetResponse_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_GetResponse_result_MSGTYPE google_protobuf_Any + +#define cosmos_orm_query_v1alpha1_ListRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, message_name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, index, 2) \ + X(a, STATIC, ONEOF, MESSAGE, (query, prefix, query.prefix), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (query, range, query.range), 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 5) +#define cosmos_orm_query_v1alpha1_ListRequest_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_ListRequest_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_ListRequest_query_prefix_MSGTYPE cosmos_orm_query_v1alpha1_ListRequest_Prefix +#define cosmos_orm_query_v1alpha1_ListRequest_query_range_MSGTYPE cosmos_orm_query_v1alpha1_ListRequest_Range +#define cosmos_orm_query_v1alpha1_ListRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, values, 1) +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_values_MSGTYPE cosmos_orm_query_v1alpha1_IndexValue + +#define cosmos_orm_query_v1alpha1_ListRequest_Range_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, start, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, end, 2) +#define cosmos_orm_query_v1alpha1_ListRequest_Range_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_ListRequest_Range_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_ListRequest_Range_start_MSGTYPE cosmos_orm_query_v1alpha1_IndexValue +#define cosmos_orm_query_v1alpha1_ListRequest_Range_end_MSGTYPE cosmos_orm_query_v1alpha1_IndexValue + +#define cosmos_orm_query_v1alpha1_ListResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, results, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 5) +#define cosmos_orm_query_v1alpha1_ListResponse_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_ListResponse_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_ListResponse_results_MSGTYPE google_protobuf_Any +#define cosmos_orm_query_v1alpha1_ListResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_orm_query_v1alpha1_IndexValue_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, UINT64, (value, uint, value.uint), 1) \ + X(a, STATIC, ONEOF, INT64, (value, int_, value.int_), 2) \ + X(a, CALLBACK, ONEOF, STRING, (value, str, value.str), 3) \ + X(a, CALLBACK, ONEOF, BYTES, (value, bytes, value.bytes), 4) \ + X(a, CALLBACK, ONEOF, STRING, (value, enum_, value.enum_), 5) \ + X(a, STATIC, ONEOF, BOOL, (value, bool_, value.bool_), 6) \ + X(a, STATIC, ONEOF, MESSAGE, (value, timestamp, value.timestamp), 7) \ + X(a, STATIC, ONEOF, MESSAGE, (value, duration, value.duration), 8) +#define cosmos_orm_query_v1alpha1_IndexValue_CALLBACK pb_default_field_callback +#define cosmos_orm_query_v1alpha1_IndexValue_DEFAULT NULL +#define cosmos_orm_query_v1alpha1_IndexValue_value_timestamp_MSGTYPE google_protobuf_Timestamp +#define cosmos_orm_query_v1alpha1_IndexValue_value_duration_MSGTYPE google_protobuf_Duration + +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_GetRequest_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_GetResponse_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_ListRequest_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_ListRequest_Prefix_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_ListRequest_Range_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_ListResponse_msg; +extern const pb_msgdesc_t cosmos_orm_query_v1alpha1_IndexValue_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_orm_query_v1alpha1_GetRequest_fields &cosmos_orm_query_v1alpha1_GetRequest_msg +#define cosmos_orm_query_v1alpha1_GetResponse_fields &cosmos_orm_query_v1alpha1_GetResponse_msg +#define cosmos_orm_query_v1alpha1_ListRequest_fields &cosmos_orm_query_v1alpha1_ListRequest_msg +#define cosmos_orm_query_v1alpha1_ListRequest_Prefix_fields &cosmos_orm_query_v1alpha1_ListRequest_Prefix_msg +#define cosmos_orm_query_v1alpha1_ListRequest_Range_fields &cosmos_orm_query_v1alpha1_ListRequest_Range_msg +#define cosmos_orm_query_v1alpha1_ListResponse_fields &cosmos_orm_query_v1alpha1_ListResponse_msg +#define cosmos_orm_query_v1alpha1_IndexValue_fields &cosmos_orm_query_v1alpha1_IndexValue_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_orm_query_v1alpha1_GetRequest_size depends on runtime parameters */ +/* cosmos_orm_query_v1alpha1_ListRequest_size depends on runtime parameters */ +/* cosmos_orm_query_v1alpha1_ListRequest_Prefix_size depends on runtime parameters */ +/* cosmos_orm_query_v1alpha1_ListRequest_Range_size depends on runtime parameters */ +/* cosmos_orm_query_v1alpha1_ListResponse_size depends on runtime parameters */ +/* cosmos_orm_query_v1alpha1_IndexValue_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define COSMOS_ORM_QUERY_V1ALPHA1_COSMOS_ORM_QUERY_V1ALPHA1_QUERY_PB_H_MAX_SIZE cosmos_orm_query_v1alpha1_GetResponse_size +#define cosmos_orm_query_v1alpha1_GetResponse_size (6 + google_protobuf_Any_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/orm/v1/orm.pb.c b/app/src/protobuf/cosmos/orm/v1/orm.pb.c new file mode 100644 index 0000000..3ed62af --- /dev/null +++ b/app/src/protobuf/cosmos/orm/v1/orm.pb.c @@ -0,0 +1,39 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/orm/v1/orm.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_orm_v1_TableDescriptor, cosmos_orm_v1_TableDescriptor, AUTO) + +PB_BIND(cosmos_orm_v1_PrimaryKeyDescriptor, cosmos_orm_v1_PrimaryKeyDescriptor, AUTO) + +PB_BIND(cosmos_orm_v1_SecondaryIndexDescriptor, cosmos_orm_v1_SecondaryIndexDescriptor, AUTO) + +PB_BIND(cosmos_orm_v1_SingletonDescriptor, cosmos_orm_v1_SingletonDescriptor, AUTO) + +/* Definition for extension field cosmos_orm_v1_table */ +typedef struct _cosmos_orm_v1_table_extmsg { + cosmos_orm_v1_TableDescriptor table; +} cosmos_orm_v1_table_extmsg; +#define cosmos_orm_v1_table_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, MESSAGE, table, 1234) +#define cosmos_orm_v1_table_extmsg_CALLBACK NULL +#define cosmos_orm_v1_table_extmsg_DEFAULT NULL +#define cosmos_orm_v1_table_extmsg_table_MSGTYPE cosmos_orm_v1_TableDescriptor +pb_byte_t cosmos_orm_v1_table_extmsg_default[] = {0x00}; +PB_BIND(cosmos_orm_v1_table_extmsg, cosmos_orm_v1_table_extmsg, 4) +const pb_extension_type_t cosmos_orm_v1_table = {NULL, NULL, &cosmos_orm_v1_table_extmsg_msg}; + +/* Definition for extension field cosmos_orm_v1_singleton */ +typedef struct _cosmos_orm_v1_singleton_extmsg { + cosmos_orm_v1_SingletonDescriptor singleton; +} cosmos_orm_v1_singleton_extmsg; +#define cosmos_orm_v1_singleton_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, MESSAGE, singleton, 1234) +#define cosmos_orm_v1_singleton_extmsg_CALLBACK NULL +#define cosmos_orm_v1_singleton_extmsg_DEFAULT NULL +#define cosmos_orm_v1_singleton_extmsg_singleton_MSGTYPE cosmos_orm_v1_SingletonDescriptor +pb_byte_t cosmos_orm_v1_singleton_extmsg_default[] = {0x00}; +PB_BIND(cosmos_orm_v1_singleton_extmsg, cosmos_orm_v1_singleton_extmsg, 4) +const pb_extension_type_t cosmos_orm_v1_singleton = {NULL, NULL, &cosmos_orm_v1_singleton_extmsg_msg}; diff --git a/app/src/protobuf/cosmos/orm/v1/orm.pb.h b/app/src/protobuf/cosmos/orm/v1/orm.pb.h new file mode 100644 index 0000000..2dea3db --- /dev/null +++ b/app/src/protobuf/cosmos/orm/v1/orm.pb.h @@ -0,0 +1,184 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_ORM_V1_COSMOS_ORM_V1_ORM_PB_H_INCLUDED +#define PB_COSMOS_ORM_V1_COSMOS_ORM_V1_ORM_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PrimaryKeyDescriptor describes a table primary key. */ +typedef struct _cosmos_orm_v1_PrimaryKeyDescriptor { + /* fields is a comma-separated list of fields in the primary key. Spaces are + not allowed. Supported field types, their encodings, and any applicable constraints + are described below. + - uint32 are encoded as 2,3,4 or 5 bytes using a compact encoding that + is suitable for sorted iteration (not varint encoding). This type is + well-suited for small integers. + - uint64 are encoded as 2,4,6 or 9 bytes using a compact encoding that + is suitable for sorted iteration (not varint encoding). This type is + well-suited for small integers such as auto-incrementing sequences. + - fixed32, fixed64 are encoded as big-endian fixed width bytes and support + sorted iteration. These types are well-suited for encoding fixed with + decimals as integers. + - string's are encoded as raw bytes in terminal key segments and null-terminated + in non-terminal segments. Null characters are thus forbidden in strings. + string fields support sorted iteration. + - bytes are encoded as raw bytes in terminal segments and length-prefixed + with a 32-bit unsigned varint in non-terminal segments. + - int32, sint32, int64, sint64, sfixed32, sfixed64 are encoded as fixed width bytes with + an encoding that enables sorted iteration. + - google.protobuf.Timestamp is encoded such that values with only seconds occupy 6 bytes, + values including nanos occupy 9 bytes, and nil values occupy 1 byte. When iterating, nil + values will always be ordered last. Seconds and nanos values must conform to the officially + specified ranges of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z and 0 to 999,999,999 respectively. + - google.protobuf.Duration is encoded as 12 bytes using an encoding that enables sorted iteration. + - enum fields are encoded using varint encoding and do not support sorted + iteration. + - bool fields are encoded as a single byte 0 or 1. + + All other fields types are unsupported in keys including repeated and + oneof fields. + + Primary keys are prefixed by the varint encoded table id and the byte 0x0 + plus any additional prefix specified by the schema. */ + pb_callback_t fields; + /* auto_increment specifies that the primary key is generated by an + auto-incrementing integer. If this is set to true fields must only + contain one field of that is of type uint64. */ + bool auto_increment; +} cosmos_orm_v1_PrimaryKeyDescriptor; + +/* TableDescriptor describes an ORM table. */ +typedef struct _cosmos_orm_v1_TableDescriptor { + /* primary_key defines the primary key for the table. */ + bool has_primary_key; + cosmos_orm_v1_PrimaryKeyDescriptor primary_key; + /* index defines one or more secondary indexes. */ + pb_callback_t index; + /* id is a non-zero integer ID that must be unique within the + tables and singletons in this file. It may be deprecated in the future when this + can be auto-generated. */ + uint32_t id; +} cosmos_orm_v1_TableDescriptor; + +/* PrimaryKeyDescriptor describes a table secondary index. */ +typedef struct _cosmos_orm_v1_SecondaryIndexDescriptor { + /* fields is a comma-separated list of fields in the index. The supported + field types are the same as those for PrimaryKeyDescriptor.fields. + Index keys are prefixed by the varint encoded table id and the varint + encoded index id plus any additional prefix specified by the schema. + + In addition the field segments, non-unique index keys are suffixed with + any additional primary key fields not present in the index fields so that the + primary key can be reconstructed. Unique indexes instead of being suffixed + store the remaining primary key fields in the value.. */ + pb_callback_t fields; + /* id is a non-zero integer ID that must be unique within the indexes for this + table and less than 32768. It may be deprecated in the future when this can + be auto-generated. */ + uint32_t id; + /* unique specifies that this an unique index. */ + bool unique; +} cosmos_orm_v1_SecondaryIndexDescriptor; + +/* TableDescriptor describes an ORM singleton table which has at most one instance. */ +typedef struct _cosmos_orm_v1_SingletonDescriptor { + /* id is a non-zero integer ID that must be unique within the + tables and singletons in this file. It may be deprecated in the future when this + can be auto-generated. */ + uint32_t id; +} cosmos_orm_v1_SingletonDescriptor; + +/* Extensions */ +extern const pb_extension_type_t cosmos_orm_v1_table; /* field type: cosmos_orm_v1_TableDescriptor table; */ +extern const pb_extension_type_t cosmos_orm_v1_singleton; /* field type: cosmos_orm_v1_SingletonDescriptor singleton; */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_orm_v1_TableDescriptor_init_default \ + { false, cosmos_orm_v1_PrimaryKeyDescriptor_init_default, {{NULL}, NULL}, 0 } +#define cosmos_orm_v1_PrimaryKeyDescriptor_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_orm_v1_SecondaryIndexDescriptor_init_default \ + { {{NULL}, NULL}, 0, 0 } +#define cosmos_orm_v1_SingletonDescriptor_init_default \ + { 0 } +#define cosmos_orm_v1_TableDescriptor_init_zero \ + { false, cosmos_orm_v1_PrimaryKeyDescriptor_init_zero, {{NULL}, NULL}, 0 } +#define cosmos_orm_v1_PrimaryKeyDescriptor_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_orm_v1_SecondaryIndexDescriptor_init_zero \ + { {{NULL}, NULL}, 0, 0 } +#define cosmos_orm_v1_SingletonDescriptor_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_orm_v1_PrimaryKeyDescriptor_fields_tag 1 +#define cosmos_orm_v1_PrimaryKeyDescriptor_auto_increment_tag 2 +#define cosmos_orm_v1_TableDescriptor_primary_key_tag 1 +#define cosmos_orm_v1_TableDescriptor_index_tag 2 +#define cosmos_orm_v1_TableDescriptor_id_tag 3 +#define cosmos_orm_v1_SecondaryIndexDescriptor_fields_tag 1 +#define cosmos_orm_v1_SecondaryIndexDescriptor_id_tag 2 +#define cosmos_orm_v1_SecondaryIndexDescriptor_unique_tag 3 +#define cosmos_orm_v1_SingletonDescriptor_id_tag 1 +#define cosmos_orm_v1_table_tag 104503790 +#define cosmos_orm_v1_singleton_tag 104503791 + +/* Struct field encoding specification for nanopb */ +#define cosmos_orm_v1_TableDescriptor_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, primary_key, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, index, 2) \ + X(a, STATIC, SINGULAR, UINT32, id, 3) +#define cosmos_orm_v1_TableDescriptor_CALLBACK pb_default_field_callback +#define cosmos_orm_v1_TableDescriptor_DEFAULT NULL +#define cosmos_orm_v1_TableDescriptor_primary_key_MSGTYPE cosmos_orm_v1_PrimaryKeyDescriptor +#define cosmos_orm_v1_TableDescriptor_index_MSGTYPE cosmos_orm_v1_SecondaryIndexDescriptor + +#define cosmos_orm_v1_PrimaryKeyDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fields, 1) \ + X(a, STATIC, SINGULAR, BOOL, auto_increment, 2) +#define cosmos_orm_v1_PrimaryKeyDescriptor_CALLBACK pb_default_field_callback +#define cosmos_orm_v1_PrimaryKeyDescriptor_DEFAULT NULL + +#define cosmos_orm_v1_SecondaryIndexDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fields, 1) \ + X(a, STATIC, SINGULAR, UINT32, id, 2) \ + X(a, STATIC, SINGULAR, BOOL, unique, 3) +#define cosmos_orm_v1_SecondaryIndexDescriptor_CALLBACK pb_default_field_callback +#define cosmos_orm_v1_SecondaryIndexDescriptor_DEFAULT NULL + +#define cosmos_orm_v1_SingletonDescriptor_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT32, id, 1) +#define cosmos_orm_v1_SingletonDescriptor_CALLBACK NULL +#define cosmos_orm_v1_SingletonDescriptor_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_orm_v1_TableDescriptor_msg; +extern const pb_msgdesc_t cosmos_orm_v1_PrimaryKeyDescriptor_msg; +extern const pb_msgdesc_t cosmos_orm_v1_SecondaryIndexDescriptor_msg; +extern const pb_msgdesc_t cosmos_orm_v1_SingletonDescriptor_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_orm_v1_TableDescriptor_fields &cosmos_orm_v1_TableDescriptor_msg +#define cosmos_orm_v1_PrimaryKeyDescriptor_fields &cosmos_orm_v1_PrimaryKeyDescriptor_msg +#define cosmos_orm_v1_SecondaryIndexDescriptor_fields &cosmos_orm_v1_SecondaryIndexDescriptor_msg +#define cosmos_orm_v1_SingletonDescriptor_fields &cosmos_orm_v1_SingletonDescriptor_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_orm_v1_TableDescriptor_size depends on runtime parameters */ +/* cosmos_orm_v1_PrimaryKeyDescriptor_size depends on runtime parameters */ +/* cosmos_orm_v1_SecondaryIndexDescriptor_size depends on runtime parameters */ +#define COSMOS_ORM_V1_COSMOS_ORM_V1_ORM_PB_H_MAX_SIZE cosmos_orm_v1_SingletonDescriptor_size +#define cosmos_orm_v1_SingletonDescriptor_size 6 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.c b/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.c new file mode 100644 index 0000000..e384cd1 --- /dev/null +++ b/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.c @@ -0,0 +1,23 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/orm/v1alpha1/schema.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_orm_v1alpha1_ModuleSchemaDescriptor, cosmos_orm_v1alpha1_ModuleSchemaDescriptor, AUTO) + +PB_BIND(cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry, cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry, AUTO) + +/* Definition for extension field cosmos_orm_v1alpha1_module_schema */ +typedef struct _cosmos_orm_v1alpha1_module_schema_extmsg { + cosmos_orm_v1alpha1_ModuleSchemaDescriptor module_schema; +} cosmos_orm_v1alpha1_module_schema_extmsg; +#define cosmos_orm_v1alpha1_module_schema_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, MESSAGE, module_schema, 1234) +#define cosmos_orm_v1alpha1_module_schema_extmsg_CALLBACK NULL +#define cosmos_orm_v1alpha1_module_schema_extmsg_DEFAULT NULL +#define cosmos_orm_v1alpha1_module_schema_extmsg_module_schema_MSGTYPE cosmos_orm_v1alpha1_ModuleSchemaDescriptor +pb_byte_t cosmos_orm_v1alpha1_module_schema_extmsg_default[] = {0x00}; +PB_BIND(cosmos_orm_v1alpha1_module_schema_extmsg, cosmos_orm_v1alpha1_module_schema_extmsg, 4) +const pb_extension_type_t cosmos_orm_v1alpha1_module_schema = {NULL, NULL, &cosmos_orm_v1alpha1_module_schema_extmsg_msg}; diff --git a/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.h b/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.h new file mode 100644 index 0000000..64c908f --- /dev/null +++ b/app/src/protobuf/cosmos/orm/v1alpha1/schema.pb.h @@ -0,0 +1,122 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_ORM_V1ALPHA1_COSMOS_ORM_V1ALPHA1_SCHEMA_PB_H_INCLUDED +#define PB_COSMOS_ORM_V1ALPHA1_COSMOS_ORM_V1ALPHA1_SCHEMA_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* StorageType */ +typedef enum _cosmos_orm_v1alpha1_StorageType { + /* STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent storage where all + data is stored in the regular Merkle-tree backed KV-store. */ + cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0, + /* STORAGE_TYPE_MEMORY indicates in-memory storage that will be + reloaded every time an app restarts. Tables with this type of storage + will by default be ignored when importing and exporting a module's + state from JSON. */ + cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_MEMORY = 1, + /* STORAGE_TYPE_TRANSIENT indicates transient storage that is reset + at the end of every block. Tables with this type of storage + will by default be ignored when importing and exporting a module's + state from JSON. */ + cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_TRANSIENT = 2 +} cosmos_orm_v1alpha1_StorageType; + +/* Struct definitions */ +/* ModuleSchemaDescriptor describe's a module's ORM schema. */ +typedef struct _cosmos_orm_v1alpha1_ModuleSchemaDescriptor { + pb_callback_t schema_file; + /* prefix is an optional prefix that precedes all keys in this module's + store. */ + pb_callback_t prefix; +} cosmos_orm_v1alpha1_ModuleSchemaDescriptor; + +/* FileEntry describes an ORM file used in a module. */ +typedef struct _cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry { + /* id is a prefix that will be varint encoded and prepended to all the + table keys specified in the file's tables. */ + uint32_t id; + /* proto_file_name is the name of a file .proto in that contains + table definitions. The .proto file must be in a package that the + module has referenced using cosmos.app.v1.ModuleDescriptor.use_package. */ + pb_callback_t proto_file_name; + /* storage_type optionally indicates the type of storage this file's + tables should used. If it is left unspecified, the default KV-storage + of the app will be used. */ + cosmos_orm_v1alpha1_StorageType storage_type; +} cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry; + +/* Extensions */ +extern const pb_extension_type_t + cosmos_orm_v1alpha1_module_schema; /* field type: cosmos_orm_v1alpha1_ModuleSchemaDescriptor module_schema; */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_orm_v1alpha1_StorageType_MIN cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_DEFAULT_UNSPECIFIED +#define _cosmos_orm_v1alpha1_StorageType_MAX cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_TRANSIENT +#define _cosmos_orm_v1alpha1_StorageType_ARRAYSIZE \ + ((cosmos_orm_v1alpha1_StorageType)(cosmos_orm_v1alpha1_StorageType_STORAGE_TYPE_TRANSIENT + 1)) + +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_storage_type_ENUMTYPE cosmos_orm_v1alpha1_StorageType + +/* Initializer values for message structs */ +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_init_default \ + { 0, {{NULL}, NULL}, _cosmos_orm_v1alpha1_StorageType_MIN } +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_init_zero \ + { 0, {{NULL}, NULL}, _cosmos_orm_v1alpha1_StorageType_MIN } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_schema_file_tag 1 +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_prefix_tag 2 +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_id_tag 1 +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_proto_file_name_tag 2 +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_storage_type_tag 3 +#define cosmos_orm_v1alpha1_module_schema_tag 104503792 + +/* Struct field encoding specification for nanopb */ +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, schema_file, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, prefix, 2) +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_CALLBACK pb_default_field_callback +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_DEFAULT NULL +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_schema_file_MSGTYPE cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry + +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, proto_file_name, 2) \ + X(a, STATIC, SINGULAR, UENUM, storage_type, 3) +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_CALLBACK pb_default_field_callback +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_orm_v1alpha1_ModuleSchemaDescriptor_msg; +extern const pb_msgdesc_t cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_fields &cosmos_orm_v1alpha1_ModuleSchemaDescriptor_msg +#define cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_fields &cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_orm_v1alpha1_ModuleSchemaDescriptor_size depends on runtime parameters */ +/* cosmos_orm_v1alpha1_ModuleSchemaDescriptor_FileEntry_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/params/module/v1/module.pb.c b/app/src/protobuf/cosmos/params/module/v1/module.pb.c new file mode 100644 index 0000000..9a19126 --- /dev/null +++ b/app/src/protobuf/cosmos/params/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/params/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_params_module_v1_Module, cosmos_params_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/params/module/v1/module.pb.h b/app/src/protobuf/cosmos/params/module/v1/module.pb.h new file mode 100644 index 0000000..0e9167a --- /dev/null +++ b/app/src/protobuf/cosmos/params/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_PARAMS_MODULE_V1_COSMOS_PARAMS_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_PARAMS_MODULE_V1_COSMOS_PARAMS_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the params module. */ +typedef struct _cosmos_params_module_v1_Module { + char dummy_field; +} cosmos_params_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_params_module_v1_Module_init_default \ + { 0 } +#define cosmos_params_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_params_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_params_module_v1_Module_CALLBACK NULL +#define cosmos_params_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_params_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_params_module_v1_Module_fields &cosmos_params_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_PARAMS_MODULE_V1_COSMOS_PARAMS_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_params_module_v1_Module_size +#define cosmos_params_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/params/v1beta1/params.pb.c b/app/src/protobuf/cosmos/params/v1beta1/params.pb.c new file mode 100644 index 0000000..f1efcef --- /dev/null +++ b/app/src/protobuf/cosmos/params/v1beta1/params.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/params/v1beta1/params.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_params_v1beta1_ParameterChangeProposal, cosmos_params_v1beta1_ParameterChangeProposal, AUTO) + +PB_BIND(cosmos_params_v1beta1_ParamChange, cosmos_params_v1beta1_ParamChange, AUTO) diff --git a/app/src/protobuf/cosmos/params/v1beta1/params.pb.h b/app/src/protobuf/cosmos/params/v1beta1/params.pb.h new file mode 100644 index 0000000..4972830 --- /dev/null +++ b/app/src/protobuf/cosmos/params/v1beta1/params.pb.h @@ -0,0 +1,93 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_PARAMS_V1BETA1_COSMOS_PARAMS_V1BETA1_PARAMS_PB_H_INCLUDED +#define PB_COSMOS_PARAMS_V1BETA1_COSMOS_PARAMS_V1BETA1_PARAMS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ParameterChangeProposal defines a proposal to change one or more parameters. */ +typedef struct _cosmos_params_v1beta1_ParameterChangeProposal { + pb_callback_t title; + pb_callback_t description; + pb_callback_t changes; +} cosmos_params_v1beta1_ParameterChangeProposal; + +/* ParamChange defines an individual parameter change, for use in + ParameterChangeProposal. */ +typedef struct _cosmos_params_v1beta1_ParamChange { + pb_callback_t subspace; + pb_callback_t key; + pb_callback_t value; +} cosmos_params_v1beta1_ParamChange; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_params_v1beta1_ParameterChangeProposal_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_ParamChange_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_ParameterChangeProposal_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_ParamChange_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_params_v1beta1_ParameterChangeProposal_title_tag 1 +#define cosmos_params_v1beta1_ParameterChangeProposal_description_tag 2 +#define cosmos_params_v1beta1_ParameterChangeProposal_changes_tag 3 +#define cosmos_params_v1beta1_ParamChange_subspace_tag 1 +#define cosmos_params_v1beta1_ParamChange_key_tag 2 +#define cosmos_params_v1beta1_ParamChange_value_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_params_v1beta1_ParameterChangeProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, changes, 3) +#define cosmos_params_v1beta1_ParameterChangeProposal_CALLBACK pb_default_field_callback +#define cosmos_params_v1beta1_ParameterChangeProposal_DEFAULT NULL +#define cosmos_params_v1beta1_ParameterChangeProposal_changes_MSGTYPE cosmos_params_v1beta1_ParamChange + +#define cosmos_params_v1beta1_ParamChange_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, subspace, 1) \ + X(a, CALLBACK, SINGULAR, STRING, key, 2) \ + X(a, CALLBACK, SINGULAR, STRING, value, 3) +#define cosmos_params_v1beta1_ParamChange_CALLBACK pb_default_field_callback +#define cosmos_params_v1beta1_ParamChange_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_params_v1beta1_ParameterChangeProposal_msg; +extern const pb_msgdesc_t cosmos_params_v1beta1_ParamChange_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_params_v1beta1_ParameterChangeProposal_fields &cosmos_params_v1beta1_ParameterChangeProposal_msg +#define cosmos_params_v1beta1_ParamChange_fields &cosmos_params_v1beta1_ParamChange_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_params_v1beta1_ParameterChangeProposal_size depends on runtime parameters */ +/* cosmos_params_v1beta1_ParamChange_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/params/v1beta1/query.pb.c b/app/src/protobuf/cosmos/params/v1beta1/query.pb.c new file mode 100644 index 0000000..685fd06 --- /dev/null +++ b/app/src/protobuf/cosmos/params/v1beta1/query.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/params/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_params_v1beta1_QueryParamsRequest, cosmos_params_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_params_v1beta1_QueryParamsResponse, cosmos_params_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_params_v1beta1_QuerySubspacesRequest, cosmos_params_v1beta1_QuerySubspacesRequest, AUTO) + +PB_BIND(cosmos_params_v1beta1_QuerySubspacesResponse, cosmos_params_v1beta1_QuerySubspacesResponse, AUTO) + +PB_BIND(cosmos_params_v1beta1_Subspace, cosmos_params_v1beta1_Subspace, AUTO) diff --git a/app/src/protobuf/cosmos/params/v1beta1/query.pb.h b/app/src/protobuf/cosmos/params/v1beta1/query.pb.h new file mode 100644 index 0000000..a662f8b --- /dev/null +++ b/app/src/protobuf/cosmos/params/v1beta1/query.pb.h @@ -0,0 +1,159 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_PARAMS_V1BETA1_COSMOS_PARAMS_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_PARAMS_V1BETA1_COSMOS_PARAMS_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/params/v1beta1/params.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest is request type for the Query/Params RPC method. */ +typedef struct _cosmos_params_v1beta1_QueryParamsRequest { + /* subspace defines the module to query the parameter for. */ + pb_callback_t subspace; + /* key defines the key of the parameter in the subspace. */ + pb_callback_t key; +} cosmos_params_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is response type for the Query/Params RPC method. */ +typedef struct _cosmos_params_v1beta1_QueryParamsResponse { + /* param defines the queried parameter. */ + bool has_param; + cosmos_params_v1beta1_ParamChange param; +} cosmos_params_v1beta1_QueryParamsResponse; + +/* QuerySubspacesRequest defines a request type for querying for all registered + subspaces and all keys for a subspace. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_params_v1beta1_QuerySubspacesRequest { + char dummy_field; +} cosmos_params_v1beta1_QuerySubspacesRequest; + +/* QuerySubspacesResponse defines the response types for querying for all + registered subspaces and all keys for a subspace. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_params_v1beta1_QuerySubspacesResponse { + pb_callback_t subspaces; +} cosmos_params_v1beta1_QuerySubspacesResponse; + +/* Subspace defines a parameter subspace name and all the keys that exist for + the subspace. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_params_v1beta1_Subspace { + pb_callback_t subspace; + pb_callback_t keys; +} cosmos_params_v1beta1_Subspace; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_params_v1beta1_QueryParamsRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_params_v1beta1_ParamChange_init_default } +#define cosmos_params_v1beta1_QuerySubspacesRequest_init_default \ + { 0 } +#define cosmos_params_v1beta1_QuerySubspacesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_Subspace_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_QueryParamsRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_params_v1beta1_ParamChange_init_zero } +#define cosmos_params_v1beta1_QuerySubspacesRequest_init_zero \ + { 0 } +#define cosmos_params_v1beta1_QuerySubspacesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_params_v1beta1_Subspace_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_params_v1beta1_QueryParamsRequest_subspace_tag 1 +#define cosmos_params_v1beta1_QueryParamsRequest_key_tag 2 +#define cosmos_params_v1beta1_QueryParamsResponse_param_tag 1 +#define cosmos_params_v1beta1_QuerySubspacesResponse_subspaces_tag 1 +#define cosmos_params_v1beta1_Subspace_subspace_tag 1 +#define cosmos_params_v1beta1_Subspace_keys_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_params_v1beta1_QueryParamsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, subspace, 1) \ + X(a, CALLBACK, SINGULAR, STRING, key, 2) +#define cosmos_params_v1beta1_QueryParamsRequest_CALLBACK pb_default_field_callback +#define cosmos_params_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_params_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, param, 1) +#define cosmos_params_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_params_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_params_v1beta1_QueryParamsResponse_param_MSGTYPE cosmos_params_v1beta1_ParamChange + +#define cosmos_params_v1beta1_QuerySubspacesRequest_FIELDLIST(X, a) + +#define cosmos_params_v1beta1_QuerySubspacesRequest_CALLBACK NULL +#define cosmos_params_v1beta1_QuerySubspacesRequest_DEFAULT NULL + +#define cosmos_params_v1beta1_QuerySubspacesResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, subspaces, 1) +#define cosmos_params_v1beta1_QuerySubspacesResponse_CALLBACK pb_default_field_callback +#define cosmos_params_v1beta1_QuerySubspacesResponse_DEFAULT NULL +#define cosmos_params_v1beta1_QuerySubspacesResponse_subspaces_MSGTYPE cosmos_params_v1beta1_Subspace + +#define cosmos_params_v1beta1_Subspace_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, subspace, 1) \ + X(a, CALLBACK, REPEATED, STRING, keys, 2) +#define cosmos_params_v1beta1_Subspace_CALLBACK pb_default_field_callback +#define cosmos_params_v1beta1_Subspace_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_params_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_params_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_params_v1beta1_QuerySubspacesRequest_msg; +extern const pb_msgdesc_t cosmos_params_v1beta1_QuerySubspacesResponse_msg; +extern const pb_msgdesc_t cosmos_params_v1beta1_Subspace_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_params_v1beta1_QueryParamsRequest_fields &cosmos_params_v1beta1_QueryParamsRequest_msg +#define cosmos_params_v1beta1_QueryParamsResponse_fields &cosmos_params_v1beta1_QueryParamsResponse_msg +#define cosmos_params_v1beta1_QuerySubspacesRequest_fields &cosmos_params_v1beta1_QuerySubspacesRequest_msg +#define cosmos_params_v1beta1_QuerySubspacesResponse_fields &cosmos_params_v1beta1_QuerySubspacesResponse_msg +#define cosmos_params_v1beta1_Subspace_fields &cosmos_params_v1beta1_Subspace_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_params_v1beta1_QueryParamsRequest_size depends on runtime parameters */ +/* cosmos_params_v1beta1_QuerySubspacesResponse_size depends on runtime parameters */ +/* cosmos_params_v1beta1_Subspace_size depends on runtime parameters */ +#if defined(cosmos_params_v1beta1_ParamChange_size) +#define COSMOS_PARAMS_V1BETA1_COSMOS_PARAMS_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_params_v1beta1_QueryParamsResponse_size +#define cosmos_params_v1beta1_QueryParamsResponse_size (6 + cosmos_params_v1beta1_ParamChange_size) +#endif +#define cosmos_params_v1beta1_QuerySubspacesRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/query/v1/query.pb.c b/app/src/protobuf/cosmos/query/v1/query.pb.c new file mode 100644 index 0000000..ddf4aae --- /dev/null +++ b/app/src/protobuf/cosmos/query/v1/query.pb.c @@ -0,0 +1,7 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/query/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif diff --git a/app/src/protobuf/cosmos/query/v1/query.pb.h b/app/src/protobuf/cosmos/query/v1/query.pb.h new file mode 100644 index 0000000..469584c --- /dev/null +++ b/app/src/protobuf/cosmos/query/v1/query.pb.h @@ -0,0 +1,24 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_QUERY_V1_COSMOS_QUERY_V1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_QUERY_V1_COSMOS_QUERY_V1_QUERY_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +/* Extension field cosmos_query_v1_module_query_safe was skipped because only "optional" + type of extension fields is currently supported. */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/reflection/v1/reflection.pb.c b/app/src/protobuf/cosmos/reflection/v1/reflection.pb.c new file mode 100644 index 0000000..b79eaf7 --- /dev/null +++ b/app/src/protobuf/cosmos/reflection/v1/reflection.pb.c @@ -0,0 +1,14 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/reflection/v1/reflection.pb.h" + +#include "google/protobuf/descriptor.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_reflection_v1_FileDescriptorsRequest, cosmos_reflection_v1_FileDescriptorsRequest, AUTO) + +PB_BIND(cosmos_reflection_v1_FileDescriptorsResponse, cosmos_reflection_v1_FileDescriptorsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/reflection/v1/reflection.pb.h b/app/src/protobuf/cosmos/reflection/v1/reflection.pb.h new file mode 100644 index 0000000..05e32db --- /dev/null +++ b/app/src/protobuf/cosmos/reflection/v1/reflection.pb.h @@ -0,0 +1,74 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_REFLECTION_V1_COSMOS_REFLECTION_V1_REFLECTION_PB_H_INCLUDED +#define PB_COSMOS_REFLECTION_V1_COSMOS_REFLECTION_V1_REFLECTION_PB_H_INCLUDED +#include + +#include "cosmos/query/v1/query.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* FileDescriptorsRequest is the Query/FileDescriptors request type. */ +typedef struct _cosmos_reflection_v1_FileDescriptorsRequest { + char dummy_field; +} cosmos_reflection_v1_FileDescriptorsRequest; + +/* FileDescriptorsResponse is the Query/FileDescriptors response type. */ +typedef struct _cosmos_reflection_v1_FileDescriptorsResponse { + /* files is the file descriptors. */ + pb_callback_t files; +} cosmos_reflection_v1_FileDescriptorsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_reflection_v1_FileDescriptorsRequest_init_default \ + { 0 } +#define cosmos_reflection_v1_FileDescriptorsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_reflection_v1_FileDescriptorsRequest_init_zero \ + { 0 } +#define cosmos_reflection_v1_FileDescriptorsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_reflection_v1_FileDescriptorsResponse_files_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_reflection_v1_FileDescriptorsRequest_FIELDLIST(X, a) + +#define cosmos_reflection_v1_FileDescriptorsRequest_CALLBACK NULL +#define cosmos_reflection_v1_FileDescriptorsRequest_DEFAULT NULL + +#define cosmos_reflection_v1_FileDescriptorsResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, files, 1) +#define cosmos_reflection_v1_FileDescriptorsResponse_CALLBACK pb_default_field_callback +#define cosmos_reflection_v1_FileDescriptorsResponse_DEFAULT NULL +#define cosmos_reflection_v1_FileDescriptorsResponse_files_MSGTYPE google_protobuf_FileDescriptorProto + +extern const pb_msgdesc_t cosmos_reflection_v1_FileDescriptorsRequest_msg; +extern const pb_msgdesc_t cosmos_reflection_v1_FileDescriptorsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_reflection_v1_FileDescriptorsRequest_fields &cosmos_reflection_v1_FileDescriptorsRequest_msg +#define cosmos_reflection_v1_FileDescriptorsResponse_fields &cosmos_reflection_v1_FileDescriptorsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_reflection_v1_FileDescriptorsResponse_size depends on runtime parameters */ +#define COSMOS_REFLECTION_V1_COSMOS_REFLECTION_V1_REFLECTION_PB_H_MAX_SIZE cosmos_reflection_v1_FileDescriptorsRequest_size +#define cosmos_reflection_v1_FileDescriptorsRequest_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/slashing/module/v1/module.pb.c b/app/src/protobuf/cosmos/slashing/module/v1/module.pb.c new file mode 100644 index 0000000..2c21a27 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/slashing/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_slashing_module_v1_Module, cosmos_slashing_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/slashing/module/v1/module.pb.h b/app/src/protobuf/cosmos/slashing/module/v1/module.pb.h new file mode 100644 index 0000000..d8a99fa --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/module/v1/module.pb.h @@ -0,0 +1,55 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_SLASHING_MODULE_V1_COSMOS_SLASHING_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_SLASHING_MODULE_V1_COSMOS_SLASHING_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the slashing module. */ +typedef struct _cosmos_slashing_module_v1_Module { + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_slashing_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_slashing_module_v1_Module_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_slashing_module_v1_Module_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_slashing_module_v1_Module_authority_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_slashing_module_v1_Module_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, authority, 1) +#define cosmos_slashing_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_slashing_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_slashing_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_slashing_module_v1_Module_fields &cosmos_slashing_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_slashing_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.c new file mode 100644 index 0000000..5c486b3 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/slashing/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_slashing_v1beta1_GenesisState, cosmos_slashing_v1beta1_GenesisState, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_SigningInfo, cosmos_slashing_v1beta1_SigningInfo, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_ValidatorMissedBlocks, cosmos_slashing_v1beta1_ValidatorMissedBlocks, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_MissedBlock, cosmos_slashing_v1beta1_MissedBlock, AUTO) diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.h new file mode 100644 index 0000000..e971844 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/genesis.pb.h @@ -0,0 +1,151 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/slashing/v1beta1/slashing.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the slashing module's genesis state. */ +typedef struct _cosmos_slashing_v1beta1_GenesisState { + /* params defines all the parameters of the module. */ + bool has_params; + cosmos_slashing_v1beta1_Params params; + /* signing_infos represents a map between validator addresses and their + signing infos. */ + pb_callback_t signing_infos; + /* missed_blocks represents a map between validator addresses and their + missed blocks. */ + pb_callback_t missed_blocks; +} cosmos_slashing_v1beta1_GenesisState; + +/* SigningInfo stores validator signing info of corresponding address. */ +typedef struct _cosmos_slashing_v1beta1_SigningInfo { + /* address is the validator address. */ + pb_callback_t address; + /* validator_signing_info represents the signing info of this validator. */ + bool has_validator_signing_info; + cosmos_slashing_v1beta1_ValidatorSigningInfo validator_signing_info; +} cosmos_slashing_v1beta1_SigningInfo; + +/* ValidatorMissedBlocks contains array of missed blocks of corresponding + address. */ +typedef struct _cosmos_slashing_v1beta1_ValidatorMissedBlocks { + /* address is the validator address. */ + pb_callback_t address; + /* missed_blocks is an array of missed blocks by the validator. */ + pb_callback_t missed_blocks; +} cosmos_slashing_v1beta1_ValidatorMissedBlocks; + +/* MissedBlock contains height and missed status as boolean. */ +typedef struct _cosmos_slashing_v1beta1_MissedBlock { + /* index is the height at which the block was missed. */ + int64_t index; + /* missed is the missed status. */ + bool missed; +} cosmos_slashing_v1beta1_MissedBlock; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_slashing_v1beta1_GenesisState_init_default \ + { \ + false, cosmos_slashing_v1beta1_Params_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_SigningInfo_init_default \ + { {{NULL}, NULL}, false, cosmos_slashing_v1beta1_ValidatorSigningInfo_init_default } +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_MissedBlock_init_default \ + { 0, 0 } +#define cosmos_slashing_v1beta1_GenesisState_init_zero \ + { \ + false, cosmos_slashing_v1beta1_Params_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_SigningInfo_init_zero \ + { {{NULL}, NULL}, false, cosmos_slashing_v1beta1_ValidatorSigningInfo_init_zero } +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_MissedBlock_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_slashing_v1beta1_GenesisState_params_tag 1 +#define cosmos_slashing_v1beta1_GenesisState_signing_infos_tag 2 +#define cosmos_slashing_v1beta1_GenesisState_missed_blocks_tag 3 +#define cosmos_slashing_v1beta1_SigningInfo_address_tag 1 +#define cosmos_slashing_v1beta1_SigningInfo_validator_signing_info_tag 2 +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_address_tag 1 +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_missed_blocks_tag 2 +#define cosmos_slashing_v1beta1_MissedBlock_index_tag 1 +#define cosmos_slashing_v1beta1_MissedBlock_missed_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_slashing_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, signing_infos, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, missed_blocks, 3) +#define cosmos_slashing_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_slashing_v1beta1_GenesisState_params_MSGTYPE cosmos_slashing_v1beta1_Params +#define cosmos_slashing_v1beta1_GenesisState_signing_infos_MSGTYPE cosmos_slashing_v1beta1_SigningInfo +#define cosmos_slashing_v1beta1_GenesisState_missed_blocks_MSGTYPE cosmos_slashing_v1beta1_ValidatorMissedBlocks + +#define cosmos_slashing_v1beta1_SigningInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_signing_info, 2) +#define cosmos_slashing_v1beta1_SigningInfo_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_SigningInfo_DEFAULT NULL +#define cosmos_slashing_v1beta1_SigningInfo_validator_signing_info_MSGTYPE cosmos_slashing_v1beta1_ValidatorSigningInfo + +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, missed_blocks, 2) +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_DEFAULT NULL +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_missed_blocks_MSGTYPE cosmos_slashing_v1beta1_MissedBlock + +#define cosmos_slashing_v1beta1_MissedBlock_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, index, 1) \ + X(a, STATIC, SINGULAR, BOOL, missed, 2) +#define cosmos_slashing_v1beta1_MissedBlock_CALLBACK NULL +#define cosmos_slashing_v1beta1_MissedBlock_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_slashing_v1beta1_GenesisState_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_SigningInfo_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_ValidatorMissedBlocks_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_MissedBlock_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_slashing_v1beta1_GenesisState_fields &cosmos_slashing_v1beta1_GenesisState_msg +#define cosmos_slashing_v1beta1_SigningInfo_fields &cosmos_slashing_v1beta1_SigningInfo_msg +#define cosmos_slashing_v1beta1_ValidatorMissedBlocks_fields &cosmos_slashing_v1beta1_ValidatorMissedBlocks_msg +#define cosmos_slashing_v1beta1_MissedBlock_fields &cosmos_slashing_v1beta1_MissedBlock_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_slashing_v1beta1_GenesisState_size depends on runtime parameters */ +/* cosmos_slashing_v1beta1_SigningInfo_size depends on runtime parameters */ +/* cosmos_slashing_v1beta1_ValidatorMissedBlocks_size depends on runtime parameters */ +#define COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_GENESIS_PB_H_MAX_SIZE cosmos_slashing_v1beta1_MissedBlock_size +#define cosmos_slashing_v1beta1_MissedBlock_size 13 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.c b/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.c new file mode 100644 index 0000000..8186798 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/slashing/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_slashing_v1beta1_QueryParamsRequest, cosmos_slashing_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_QueryParamsResponse, cosmos_slashing_v1beta1_QueryParamsResponse, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_QuerySigningInfoRequest, cosmos_slashing_v1beta1_QuerySigningInfoRequest, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_QuerySigningInfoResponse, cosmos_slashing_v1beta1_QuerySigningInfoResponse, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_QuerySigningInfosRequest, cosmos_slashing_v1beta1_QuerySigningInfosRequest, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_QuerySigningInfosResponse, cosmos_slashing_v1beta1_QuerySigningInfosResponse, AUTO) diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.h b/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.h new file mode 100644 index 0000000..113f426 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/query.pb.h @@ -0,0 +1,172 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/slashing/v1beta1/slashing.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest is the request type for the Query/Params RPC method */ +typedef struct _cosmos_slashing_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_slashing_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method */ +typedef struct _cosmos_slashing_v1beta1_QueryParamsResponse { + bool has_params; + cosmos_slashing_v1beta1_Params params; +} cosmos_slashing_v1beta1_QueryParamsResponse; + +/* QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC + method */ +typedef struct _cosmos_slashing_v1beta1_QuerySigningInfoRequest { + /* cons_address is the address to query signing info of */ + pb_callback_t cons_address; +} cosmos_slashing_v1beta1_QuerySigningInfoRequest; + +/* QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC + method */ +typedef struct _cosmos_slashing_v1beta1_QuerySigningInfoResponse { + /* val_signing_info is the signing info of requested val cons address */ + bool has_val_signing_info; + cosmos_slashing_v1beta1_ValidatorSigningInfo val_signing_info; +} cosmos_slashing_v1beta1_QuerySigningInfoResponse; + +/* QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC + method */ +typedef struct _cosmos_slashing_v1beta1_QuerySigningInfosRequest { + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_slashing_v1beta1_QuerySigningInfosRequest; + +/* QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC + method */ +typedef struct _cosmos_slashing_v1beta1_QuerySigningInfosResponse { + /* info is the signing info of all validators */ + pb_callback_t info; + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_slashing_v1beta1_QuerySigningInfosResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_slashing_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_slashing_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_slashing_v1beta1_Params_init_default } +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_init_default \ + { false, cosmos_slashing_v1beta1_ValidatorSigningInfo_init_default } +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_slashing_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_slashing_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_slashing_v1beta1_Params_init_zero } +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_init_zero \ + { false, cosmos_slashing_v1beta1_ValidatorSigningInfo_init_zero } +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_slashing_v1beta1_QueryParamsResponse_params_tag 1 +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_cons_address_tag 1 +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_val_signing_info_tag 1 +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_pagination_tag 1 +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_info_tag 1 +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_pagination_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_slashing_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_slashing_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_slashing_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_slashing_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_slashing_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_slashing_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_slashing_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_slashing_v1beta1_Params + +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, cons_address, 1) +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_DEFAULT NULL + +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, val_signing_info, 1) +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_CALLBACK NULL +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_DEFAULT NULL +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_val_signing_info_MSGTYPE \ + cosmos_slashing_v1beta1_ValidatorSigningInfo + +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_CALLBACK NULL +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_DEFAULT NULL +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, info, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_DEFAULT NULL +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_info_MSGTYPE cosmos_slashing_v1beta1_ValidatorSigningInfo +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QueryParamsResponse_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QuerySigningInfoRequest_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QuerySigningInfoResponse_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QuerySigningInfosRequest_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_QuerySigningInfosResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_slashing_v1beta1_QueryParamsRequest_fields &cosmos_slashing_v1beta1_QueryParamsRequest_msg +#define cosmos_slashing_v1beta1_QueryParamsResponse_fields &cosmos_slashing_v1beta1_QueryParamsResponse_msg +#define cosmos_slashing_v1beta1_QuerySigningInfoRequest_fields &cosmos_slashing_v1beta1_QuerySigningInfoRequest_msg +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_fields &cosmos_slashing_v1beta1_QuerySigningInfoResponse_msg +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_fields &cosmos_slashing_v1beta1_QuerySigningInfosRequest_msg +#define cosmos_slashing_v1beta1_QuerySigningInfosResponse_fields &cosmos_slashing_v1beta1_QuerySigningInfosResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_slashing_v1beta1_QuerySigningInfoRequest_size depends on runtime parameters */ +/* cosmos_slashing_v1beta1_QuerySigningInfosResponse_size depends on runtime parameters */ +#define cosmos_slashing_v1beta1_QueryParamsRequest_size 0 +#if defined(cosmos_slashing_v1beta1_Params_size) +#define COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_QUERY_PB_H_MAX_SIZE cosmos_slashing_v1beta1_QueryParamsResponse_size +#define cosmos_slashing_v1beta1_QueryParamsResponse_size (6 + cosmos_slashing_v1beta1_Params_size) +#endif +#if defined(cosmos_slashing_v1beta1_ValidatorSigningInfo_size) +#define cosmos_slashing_v1beta1_QuerySigningInfoResponse_size (6 + cosmos_slashing_v1beta1_ValidatorSigningInfo_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_slashing_v1beta1_QuerySigningInfosRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.c b/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.c new file mode 100644 index 0000000..b555ee1 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/slashing/v1beta1/slashing.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_slashing_v1beta1_ValidatorSigningInfo, cosmos_slashing_v1beta1_ValidatorSigningInfo, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_Params, cosmos_slashing_v1beta1_Params, AUTO) diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.h b/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.h new file mode 100644 index 0000000..d1cf439 --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/slashing.pb.h @@ -0,0 +1,119 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_SLASHING_PB_H_INCLUDED +#define PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_SLASHING_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ValidatorSigningInfo defines a validator's signing info for monitoring their + liveness activity. */ +typedef struct _cosmos_slashing_v1beta1_ValidatorSigningInfo { + pb_callback_t address; + /* Height at which validator was first a candidate OR was un-jailed */ + int64_t start_height; + /* Index which is incremented every time a validator is bonded in a block and + _may_ have signed a pre-commit or not. This in conjunction with the + signed_blocks_window param determines the index in the missed block bitmap. */ + int64_t index_offset; + /* Timestamp until which the validator is jailed due to liveness downtime. */ + bool has_jailed_until; + google_protobuf_Timestamp jailed_until; + /* Whether or not a validator has been tombstoned (killed out of validator + set). It is set once the validator commits an equivocation or for any other + configured misbehavior. */ + bool tombstoned; + /* A counter of missed (unsigned) blocks. It is used to avoid unnecessary + reads in the missed block bitmap. */ + int64_t missed_blocks_counter; +} cosmos_slashing_v1beta1_ValidatorSigningInfo; + +/* Params represents the parameters used for by the slashing module. */ +typedef struct _cosmos_slashing_v1beta1_Params { + int64_t signed_blocks_window; + pb_callback_t min_signed_per_window; + bool has_downtime_jail_duration; + google_protobuf_Duration downtime_jail_duration; + pb_callback_t slash_fraction_double_sign; + pb_callback_t slash_fraction_downtime; +} cosmos_slashing_v1beta1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_init_default \ + { {{NULL}, NULL}, 0, 0, false, google_protobuf_Timestamp_init_default, 0, 0 } +#define cosmos_slashing_v1beta1_Params_init_default \ + { \ + 0, {{NULL}, NULL}, false, google_protobuf_Duration_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_init_zero \ + { {{NULL}, NULL}, 0, 0, false, google_protobuf_Timestamp_init_zero, 0, 0 } +#define cosmos_slashing_v1beta1_Params_init_zero \ + { \ + 0, {{NULL}, NULL}, false, google_protobuf_Duration_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_address_tag 1 +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_start_height_tag 2 +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_index_offset_tag 3 +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_jailed_until_tag 4 +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_tombstoned_tag 5 +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_missed_blocks_counter_tag 6 +#define cosmos_slashing_v1beta1_Params_signed_blocks_window_tag 1 +#define cosmos_slashing_v1beta1_Params_min_signed_per_window_tag 2 +#define cosmos_slashing_v1beta1_Params_downtime_jail_duration_tag 3 +#define cosmos_slashing_v1beta1_Params_slash_fraction_double_sign_tag 4 +#define cosmos_slashing_v1beta1_Params_slash_fraction_downtime_tag 5 + +/* Struct field encoding specification for nanopb */ +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, SINGULAR, INT64, start_height, 2) \ + X(a, STATIC, SINGULAR, INT64, index_offset, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, jailed_until, 4) \ + X(a, STATIC, SINGULAR, BOOL, tombstoned, 5) \ + X(a, STATIC, SINGULAR, INT64, missed_blocks_counter, 6) +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_DEFAULT NULL +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_jailed_until_MSGTYPE google_protobuf_Timestamp + +#define cosmos_slashing_v1beta1_Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, signed_blocks_window, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, min_signed_per_window, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, downtime_jail_duration, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, slash_fraction_double_sign, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, slash_fraction_downtime, 5) +#define cosmos_slashing_v1beta1_Params_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_Params_DEFAULT NULL +#define cosmos_slashing_v1beta1_Params_downtime_jail_duration_MSGTYPE google_protobuf_Duration + +extern const pb_msgdesc_t cosmos_slashing_v1beta1_ValidatorSigningInfo_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_slashing_v1beta1_ValidatorSigningInfo_fields &cosmos_slashing_v1beta1_ValidatorSigningInfo_msg +#define cosmos_slashing_v1beta1_Params_fields &cosmos_slashing_v1beta1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_slashing_v1beta1_ValidatorSigningInfo_size depends on runtime parameters */ +/* cosmos_slashing_v1beta1_Params_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.c new file mode 100644 index 0000000..31ea91b --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/slashing/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_slashing_v1beta1_MsgUnjail, cosmos_slashing_v1beta1_MsgUnjail, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_MsgUnjailResponse, cosmos_slashing_v1beta1_MsgUnjailResponse, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_MsgUpdateParams, cosmos_slashing_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_slashing_v1beta1_MsgUpdateParamsResponse, cosmos_slashing_v1beta1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.h new file mode 100644 index 0000000..edcfe0b --- /dev/null +++ b/app/src/protobuf/cosmos/slashing/v1beta1/tx.pb.h @@ -0,0 +1,124 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_SLASHING_V1BETA1_COSMOS_SLASHING_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos/slashing/v1beta1/slashing.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgUnjail defines the Msg/Unjail request type */ +typedef struct _cosmos_slashing_v1beta1_MsgUnjail { + pb_callback_t validator_addr; +} cosmos_slashing_v1beta1_MsgUnjail; + +/* MsgUnjailResponse defines the Msg/Unjail response type */ +typedef struct _cosmos_slashing_v1beta1_MsgUnjailResponse { + char dummy_field; +} cosmos_slashing_v1beta1_MsgUnjailResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_slashing_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/slashing parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_slashing_v1beta1_Params params; +} cosmos_slashing_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_slashing_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_slashing_v1beta1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_slashing_v1beta1_MsgUnjail_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_MsgUnjailResponse_init_default \ + { 0 } +#define cosmos_slashing_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_slashing_v1beta1_Params_init_default } +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_slashing_v1beta1_MsgUnjail_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_slashing_v1beta1_MsgUnjailResponse_init_zero \ + { 0 } +#define cosmos_slashing_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_slashing_v1beta1_Params_init_zero } +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_slashing_v1beta1_MsgUnjail_validator_addr_tag 1 +#define cosmos_slashing_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_slashing_v1beta1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_slashing_v1beta1_MsgUnjail_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, validator_addr, 1) +#define cosmos_slashing_v1beta1_MsgUnjail_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_MsgUnjail_DEFAULT NULL + +#define cosmos_slashing_v1beta1_MsgUnjailResponse_FIELDLIST(X, a) + +#define cosmos_slashing_v1beta1_MsgUnjailResponse_CALLBACK NULL +#define cosmos_slashing_v1beta1_MsgUnjailResponse_DEFAULT NULL + +#define cosmos_slashing_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_slashing_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_slashing_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_slashing_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_slashing_v1beta1_Params + +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_slashing_v1beta1_MsgUnjail_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_MsgUnjailResponse_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_slashing_v1beta1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_slashing_v1beta1_MsgUnjail_fields &cosmos_slashing_v1beta1_MsgUnjail_msg +#define cosmos_slashing_v1beta1_MsgUnjailResponse_fields &cosmos_slashing_v1beta1_MsgUnjailResponse_msg +#define cosmos_slashing_v1beta1_MsgUpdateParams_fields &cosmos_slashing_v1beta1_MsgUpdateParams_msg +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_fields &cosmos_slashing_v1beta1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_slashing_v1beta1_MsgUnjail_size depends on runtime parameters */ +/* cosmos_slashing_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_slashing_v1beta1_MsgUnjailResponse_size 0 +#define cosmos_slashing_v1beta1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/module/v1/module.pb.c b/app/src/protobuf/cosmos/staking/module/v1/module.pb.c new file mode 100644 index 0000000..5a4fa67 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_module_v1_Module, cosmos_staking_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/staking/module/v1/module.pb.h b/app/src/protobuf/cosmos/staking/module/v1/module.pb.h new file mode 100644 index 0000000..89f54d4 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/module/v1/module.pb.h @@ -0,0 +1,62 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_MODULE_V1_COSMOS_STAKING_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_STAKING_MODULE_V1_COSMOS_STAKING_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the staking module. */ +typedef struct _cosmos_staking_module_v1_Module { + /* hooks_order specifies the order of staking hooks and should be a list + of module names which provide a staking hooks instance. If no order is + provided, then hooks will be applied in alphabetical order of module names. */ + pb_callback_t hooks_order; + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_staking_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_staking_module_v1_Module_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_module_v1_Module_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_module_v1_Module_hooks_order_tag 1 +#define cosmos_staking_module_v1_Module_authority_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_module_v1_Module_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, hooks_order, 1) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 2) +#define cosmos_staking_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_staking_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_staking_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_module_v1_Module_fields &cosmos_staking_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.c b/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.c new file mode 100644 index 0000000..24361d1 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/v1beta1/authz.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_v1beta1_StakeAuthorization, cosmos_staking_v1beta1_StakeAuthorization, AUTO) + +PB_BIND(cosmos_staking_v1beta1_StakeAuthorization_Validators, cosmos_staking_v1beta1_StakeAuthorization_Validators, AUTO) diff --git a/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.h b/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.h new file mode 100644 index 0000000..14f3134 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/authz.pb.h @@ -0,0 +1,135 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_AUTHZ_PB_H_INCLUDED +#define PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_AUTHZ_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* AuthorizationType defines the type of staking module authorization type + + Since: cosmos-sdk 0.43 */ +typedef enum _cosmos_staking_v1beta1_AuthorizationType { + /* AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type */ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_UNSPECIFIED = 0, + /* AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate */ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_DELEGATE = 1, + /* AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate */ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_UNDELEGATE = 2, + /* AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate */ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_REDELEGATE = 3, + /* AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION defines an authorization type for Msg/MsgCancelUnbondingDelegation */ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION = 4 +} cosmos_staking_v1beta1_AuthorizationType; + +/* Struct definitions */ +/* Validators defines list of validator addresses. */ +typedef struct _cosmos_staking_v1beta1_StakeAuthorization_Validators { + pb_callback_t address; +} cosmos_staking_v1beta1_StakeAuthorization_Validators; + +/* StakeAuthorization defines authorization for delegate/undelegate/redelegate. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_staking_v1beta1_StakeAuthorization { + /* max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is + empty, there is no spend limit and any amount of coins can be delegated. */ + bool has_max_tokens; + cosmos_base_v1beta1_Coin max_tokens; + pb_size_t which_validators; + union { + /* allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's + account. */ + cosmos_staking_v1beta1_StakeAuthorization_Validators allow_list; + /* deny_list specifies list of validator addresses to whom grantee can not delegate tokens. */ + cosmos_staking_v1beta1_StakeAuthorization_Validators deny_list; + } validators; + /* authorization_type defines one of AuthorizationType. */ + cosmos_staking_v1beta1_AuthorizationType authorization_type; +} cosmos_staking_v1beta1_StakeAuthorization; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_staking_v1beta1_AuthorizationType_MIN cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_UNSPECIFIED +#define _cosmos_staking_v1beta1_AuthorizationType_MAX \ + cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION +#define _cosmos_staking_v1beta1_AuthorizationType_ARRAYSIZE \ + ((cosmos_staking_v1beta1_AuthorizationType)(cosmos_staking_v1beta1_AuthorizationType_AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION + \ + 1)) + +#define cosmos_staking_v1beta1_StakeAuthorization_authorization_type_ENUMTYPE cosmos_staking_v1beta1_AuthorizationType + +/* Initializer values for message structs */ +#define cosmos_staking_v1beta1_StakeAuthorization_init_default \ + { \ + false, cosmos_base_v1beta1_Coin_init_default, 0, \ + {cosmos_staking_v1beta1_StakeAuthorization_Validators_init_default}, \ + _cosmos_staking_v1beta1_AuthorizationType_MIN \ + } +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_StakeAuthorization_init_zero \ + { \ + false, cosmos_base_v1beta1_Coin_init_zero, 0, {cosmos_staking_v1beta1_StakeAuthorization_Validators_init_zero}, \ + _cosmos_staking_v1beta1_AuthorizationType_MIN \ + } +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_address_tag 1 +#define cosmos_staking_v1beta1_StakeAuthorization_max_tokens_tag 1 +#define cosmos_staking_v1beta1_StakeAuthorization_allow_list_tag 2 +#define cosmos_staking_v1beta1_StakeAuthorization_deny_list_tag 3 +#define cosmos_staking_v1beta1_StakeAuthorization_authorization_type_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_v1beta1_StakeAuthorization_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_tokens, 1) \ + X(a, STATIC, ONEOF, MESSAGE, (validators, allow_list, validators.allow_list), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (validators, deny_list, validators.deny_list), 3) \ + X(a, STATIC, SINGULAR, UENUM, authorization_type, 4) +#define cosmos_staking_v1beta1_StakeAuthorization_CALLBACK NULL +#define cosmos_staking_v1beta1_StakeAuthorization_DEFAULT NULL +#define cosmos_staking_v1beta1_StakeAuthorization_max_tokens_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_staking_v1beta1_StakeAuthorization_validators_allow_list_MSGTYPE \ + cosmos_staking_v1beta1_StakeAuthorization_Validators +#define cosmos_staking_v1beta1_StakeAuthorization_validators_deny_list_MSGTYPE \ + cosmos_staking_v1beta1_StakeAuthorization_Validators + +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, address, 1) +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_staking_v1beta1_StakeAuthorization_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_StakeAuthorization_Validators_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_v1beta1_StakeAuthorization_fields &cosmos_staking_v1beta1_StakeAuthorization_msg +#define cosmos_staking_v1beta1_StakeAuthorization_Validators_fields &cosmos_staking_v1beta1_StakeAuthorization_Validators_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_v1beta1_StakeAuthorization_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_StakeAuthorization_Validators_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.c b/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.c new file mode 100644 index 0000000..7afdc4c --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/v1beta1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_v1beta1_GenesisState, cosmos_staking_v1beta1_GenesisState, AUTO) + +PB_BIND(cosmos_staking_v1beta1_LastValidatorPower, cosmos_staking_v1beta1_LastValidatorPower, AUTO) diff --git a/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.h b/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.h new file mode 100644 index 0000000..6c8eb6e --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/genesis.pb.h @@ -0,0 +1,120 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_GENESIS_PB_H_INCLUDED +#define PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_GENESIS_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/staking/v1beta1/staking.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the staking module's genesis state. */ +typedef struct _cosmos_staking_v1beta1_GenesisState { + /* params defines all the parameters of related to deposit. */ + bool has_params; + cosmos_staking_v1beta1_Params params; + /* last_total_power tracks the total amounts of bonded tokens recorded during + the previous end block. */ + pb_callback_t last_total_power; + /* last_validator_powers is a special index that provides a historical list + of the last-block's bonded validators. */ + pb_callback_t last_validator_powers; + /* validators defines the validator set at genesis. */ + pb_callback_t validators; + /* delegations defines the delegations active at genesis. */ + pb_callback_t delegations; + /* unbonding_delegations defines the unbonding delegations active at genesis. */ + pb_callback_t unbonding_delegations; + /* redelegations defines the redelegations active at genesis. */ + pb_callback_t redelegations; + bool exported; +} cosmos_staking_v1beta1_GenesisState; + +/* LastValidatorPower required for validator set update logic. */ +typedef struct _cosmos_staking_v1beta1_LastValidatorPower { + /* address is the address of the validator. */ + pb_callback_t address; + /* power defines the power of the validator. */ + int64_t power; +} cosmos_staking_v1beta1_LastValidatorPower; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_staking_v1beta1_GenesisState_init_default \ + { \ + false, cosmos_staking_v1beta1_Params_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_staking_v1beta1_LastValidatorPower_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_staking_v1beta1_GenesisState_init_zero \ + { \ + false, cosmos_staking_v1beta1_Params_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define cosmos_staking_v1beta1_LastValidatorPower_init_zero \ + { {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_v1beta1_GenesisState_params_tag 1 +#define cosmos_staking_v1beta1_GenesisState_last_total_power_tag 2 +#define cosmos_staking_v1beta1_GenesisState_last_validator_powers_tag 3 +#define cosmos_staking_v1beta1_GenesisState_validators_tag 4 +#define cosmos_staking_v1beta1_GenesisState_delegations_tag 5 +#define cosmos_staking_v1beta1_GenesisState_unbonding_delegations_tag 6 +#define cosmos_staking_v1beta1_GenesisState_redelegations_tag 7 +#define cosmos_staking_v1beta1_GenesisState_exported_tag 8 +#define cosmos_staking_v1beta1_LastValidatorPower_address_tag 1 +#define cosmos_staking_v1beta1_LastValidatorPower_power_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_v1beta1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, last_total_power, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, last_validator_powers, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegations, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, unbonding_delegations, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, redelegations, 7) \ + X(a, STATIC, SINGULAR, BOOL, exported, 8) +#define cosmos_staking_v1beta1_GenesisState_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_GenesisState_DEFAULT NULL +#define cosmos_staking_v1beta1_GenesisState_params_MSGTYPE cosmos_staking_v1beta1_Params +#define cosmos_staking_v1beta1_GenesisState_last_validator_powers_MSGTYPE cosmos_staking_v1beta1_LastValidatorPower +#define cosmos_staking_v1beta1_GenesisState_validators_MSGTYPE cosmos_staking_v1beta1_Validator +#define cosmos_staking_v1beta1_GenesisState_delegations_MSGTYPE cosmos_staking_v1beta1_Delegation +#define cosmos_staking_v1beta1_GenesisState_unbonding_delegations_MSGTYPE cosmos_staking_v1beta1_UnbondingDelegation +#define cosmos_staking_v1beta1_GenesisState_redelegations_MSGTYPE cosmos_staking_v1beta1_Redelegation + +#define cosmos_staking_v1beta1_LastValidatorPower_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, SINGULAR, INT64, power, 2) +#define cosmos_staking_v1beta1_LastValidatorPower_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_LastValidatorPower_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_staking_v1beta1_GenesisState_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_LastValidatorPower_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_v1beta1_GenesisState_fields &cosmos_staking_v1beta1_GenesisState_msg +#define cosmos_staking_v1beta1_LastValidatorPower_fields &cosmos_staking_v1beta1_LastValidatorPower_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_v1beta1_GenesisState_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_LastValidatorPower_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/v1beta1/query.pb.c b/app/src/protobuf/cosmos/staking/v1beta1/query.pb.c new file mode 100644 index 0000000..820ef63 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/query.pb.c @@ -0,0 +1,73 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorsRequest, cosmos_staking_v1beta1_QueryValidatorsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorsResponse, cosmos_staking_v1beta1_QueryValidatorsResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorRequest, cosmos_staking_v1beta1_QueryValidatorRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorResponse, cosmos_staking_v1beta1_QueryValidatorResponse, 2) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorDelegationsRequest, cosmos_staking_v1beta1_QueryValidatorDelegationsRequest, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorDelegationsResponse, cosmos_staking_v1beta1_QueryValidatorDelegationsResponse, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest, + cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse, + cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegationRequest, cosmos_staking_v1beta1_QueryDelegationRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegationResponse, cosmos_staking_v1beta1_QueryDelegationResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryUnbondingDelegationRequest, cosmos_staking_v1beta1_QueryUnbondingDelegationRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryUnbondingDelegationResponse, cosmos_staking_v1beta1_QueryUnbondingDelegationResponse, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest, cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse, cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest, + cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse, + cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryRedelegationsRequest, cosmos_staking_v1beta1_QueryRedelegationsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryRedelegationsResponse, cosmos_staking_v1beta1_QueryRedelegationsResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest, cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse, cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse, + AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorValidatorRequest, cosmos_staking_v1beta1_QueryDelegatorValidatorRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryDelegatorValidatorResponse, cosmos_staking_v1beta1_QueryDelegatorValidatorResponse, 2) + +PB_BIND(cosmos_staking_v1beta1_QueryHistoricalInfoRequest, cosmos_staking_v1beta1_QueryHistoricalInfoRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryHistoricalInfoResponse, cosmos_staking_v1beta1_QueryHistoricalInfoResponse, 2) + +PB_BIND(cosmos_staking_v1beta1_QueryPoolRequest, cosmos_staking_v1beta1_QueryPoolRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryPoolResponse, cosmos_staking_v1beta1_QueryPoolResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryParamsRequest, cosmos_staking_v1beta1_QueryParamsRequest, AUTO) + +PB_BIND(cosmos_staking_v1beta1_QueryParamsResponse, cosmos_staking_v1beta1_QueryParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/staking/v1beta1/query.pb.h b/app/src/protobuf/cosmos/staking/v1beta1/query.pb.h new file mode 100644 index 0000000..d13008a --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/query.pb.h @@ -0,0 +1,751 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/query/v1/query.pb.h" +#include "cosmos/staking/v1beta1/staking.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryValidatorsRequest is request type for Query/Validators RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorsRequest { + /* status enables to query for validators matching a given status. */ + pb_callback_t status; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryValidatorsRequest; + +/* QueryValidatorsResponse is response type for the Query/Validators RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorsResponse { + /* validators contains all the queried validators. */ + pb_callback_t validators; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryValidatorsResponse; + +/* QueryValidatorRequest is response type for the Query/Validator RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorRequest { + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; +} cosmos_staking_v1beta1_QueryValidatorRequest; + +/* QueryValidatorResponse is response type for the Query/Validator RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorResponse { + /* validator defines the validator info. */ + bool has_validator; + cosmos_staking_v1beta1_Validator validator; +} cosmos_staking_v1beta1_QueryValidatorResponse; + +/* QueryValidatorDelegationsRequest is request type for the + Query/ValidatorDelegations RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorDelegationsRequest { + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryValidatorDelegationsRequest; + +/* QueryValidatorDelegationsResponse is response type for the + Query/ValidatorDelegations RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorDelegationsResponse { + pb_callback_t delegation_responses; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryValidatorDelegationsResponse; + +/* QueryValidatorUnbondingDelegationsRequest is required type for the + Query/ValidatorUnbondingDelegations RPC method */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest { + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest; + +/* QueryValidatorUnbondingDelegationsResponse is response type for the + Query/ValidatorUnbondingDelegations RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse { + pb_callback_t unbonding_responses; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse; + +/* QueryDelegationRequest is request type for the Query/Delegation RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegationRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; +} cosmos_staking_v1beta1_QueryDelegationRequest; + +/* QueryDelegationResponse is response type for the Query/Delegation RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegationResponse { + /* delegation_responses defines the delegation info of a delegation. */ + bool has_delegation_response; + cosmos_staking_v1beta1_DelegationResponse delegation_response; +} cosmos_staking_v1beta1_QueryDelegationResponse; + +/* QueryUnbondingDelegationRequest is request type for the + Query/UnbondingDelegation RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryUnbondingDelegationRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; +} cosmos_staking_v1beta1_QueryUnbondingDelegationRequest; + +/* QueryDelegationResponse is response type for the Query/UnbondingDelegation + RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryUnbondingDelegationResponse { + /* unbond defines the unbonding information of a delegation. */ + bool has_unbond; + cosmos_staking_v1beta1_UnbondingDelegation unbond; +} cosmos_staking_v1beta1_QueryUnbondingDelegationResponse; + +/* QueryDelegatorDelegationsRequest is request type for the + Query/DelegatorDelegations RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest; + +/* QueryDelegatorDelegationsResponse is response type for the + Query/DelegatorDelegations RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse { + /* delegation_responses defines all the delegations' info of a delegator. */ + pb_callback_t delegation_responses; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse; + +/* QueryDelegatorUnbondingDelegationsRequest is request type for the + Query/DelegatorUnbondingDelegations RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest; + +/* QueryUnbondingDelegatorDelegationsResponse is response type for the + Query/UnbondingDelegatorDelegations RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse { + pb_callback_t unbonding_responses; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse; + +/* QueryRedelegationsRequest is request type for the Query/Redelegations RPC + method. */ +typedef struct _cosmos_staking_v1beta1_QueryRedelegationsRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* src_validator_addr defines the validator address to redelegate from. */ + pb_callback_t src_validator_addr; + /* dst_validator_addr defines the validator address to redelegate to. */ + pb_callback_t dst_validator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryRedelegationsRequest; + +/* QueryRedelegationsResponse is response type for the Query/Redelegations RPC + method. */ +typedef struct _cosmos_staking_v1beta1_QueryRedelegationsResponse { + pb_callback_t redelegation_responses; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryRedelegationsResponse; + +/* QueryDelegatorValidatorsRequest is request type for the + Query/DelegatorValidators RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest; + +/* QueryDelegatorValidatorsResponse is response type for the + Query/DelegatorValidators RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse { + /* validators defines the validators' info of a delegator. */ + pb_callback_t validators; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse; + +/* QueryDelegatorValidatorRequest is request type for the + Query/DelegatorValidator RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorValidatorRequest { + /* delegator_addr defines the delegator address to query for. */ + pb_callback_t delegator_addr; + /* validator_addr defines the validator address to query for. */ + pb_callback_t validator_addr; +} cosmos_staking_v1beta1_QueryDelegatorValidatorRequest; + +/* QueryDelegatorValidatorResponse response type for the + Query/DelegatorValidator RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryDelegatorValidatorResponse { + /* validator defines the validator info. */ + bool has_validator; + cosmos_staking_v1beta1_Validator validator; +} cosmos_staking_v1beta1_QueryDelegatorValidatorResponse; + +/* QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC + method. */ +typedef struct _cosmos_staking_v1beta1_QueryHistoricalInfoRequest { + /* height defines at which height to query the historical info. */ + int64_t height; +} cosmos_staking_v1beta1_QueryHistoricalInfoRequest; + +/* QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC + method. */ +typedef struct _cosmos_staking_v1beta1_QueryHistoricalInfoResponse { + /* hist defines the historical info at the given height. */ + bool has_hist; + cosmos_staking_v1beta1_HistoricalInfo hist; +} cosmos_staking_v1beta1_QueryHistoricalInfoResponse; + +/* QueryPoolRequest is request type for the Query/Pool RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryPoolRequest { + char dummy_field; +} cosmos_staking_v1beta1_QueryPoolRequest; + +/* QueryPoolResponse is response type for the Query/Pool RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryPoolResponse { + /* pool defines the pool info. */ + bool has_pool; + cosmos_staking_v1beta1_Pool pool; +} cosmos_staking_v1beta1_QueryPoolResponse; + +/* QueryParamsRequest is request type for the Query/Params RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryParamsRequest { + char dummy_field; +} cosmos_staking_v1beta1_QueryParamsRequest; + +/* QueryParamsResponse is response type for the Query/Params RPC method. */ +typedef struct _cosmos_staking_v1beta1_QueryParamsResponse { + /* params holds all the parameters of this module. */ + bool has_params; + cosmos_staking_v1beta1_Params params; +} cosmos_staking_v1beta1_QueryParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_staking_v1beta1_QueryValidatorsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryValidatorsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryValidatorRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryValidatorResponse_init_default \ + { false, cosmos_staking_v1beta1_Validator_init_default } +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryDelegationRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryDelegationResponse_init_default \ + { false, cosmos_staking_v1beta1_DelegationResponse_init_default } +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_init_default \ + { false, cosmos_staking_v1beta1_UnbondingDelegation_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_init_default \ + { false, cosmos_staking_v1beta1_Validator_init_default } +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_init_default \ + { 0 } +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_init_default \ + { false, cosmos_staking_v1beta1_HistoricalInfo_init_default } +#define cosmos_staking_v1beta1_QueryPoolRequest_init_default \ + { 0 } +#define cosmos_staking_v1beta1_QueryPoolResponse_init_default \ + { false, cosmos_staking_v1beta1_Pool_init_default } +#define cosmos_staking_v1beta1_QueryParamsRequest_init_default \ + { 0 } +#define cosmos_staking_v1beta1_QueryParamsResponse_init_default \ + { false, cosmos_staking_v1beta1_Params_init_default } +#define cosmos_staking_v1beta1_QueryValidatorsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryValidatorResponse_init_zero \ + { false, cosmos_staking_v1beta1_Validator_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryDelegationRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryDelegationResponse_init_zero \ + { false, cosmos_staking_v1beta1_DelegationResponse_init_zero } +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_init_zero \ + { false, cosmos_staking_v1beta1_UnbondingDelegation_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_init_zero \ + { false, cosmos_staking_v1beta1_Validator_init_zero } +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_init_zero \ + { false, cosmos_staking_v1beta1_HistoricalInfo_init_zero } +#define cosmos_staking_v1beta1_QueryPoolRequest_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_QueryPoolResponse_init_zero \ + { false, cosmos_staking_v1beta1_Pool_init_zero } +#define cosmos_staking_v1beta1_QueryParamsRequest_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_QueryParamsResponse_init_zero \ + { false, cosmos_staking_v1beta1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_v1beta1_QueryValidatorsRequest_status_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryValidatorsResponse_validators_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryValidatorRequest_validator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorResponse_validator_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_validator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_delegation_responses_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_validator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_unbonding_responses_tag 1 +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegationRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryDelegationRequest_validator_addr_tag 2 +#define cosmos_staking_v1beta1_QueryDelegationResponse_delegation_response_tag 1 +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_validator_addr_tag 2 +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_unbond_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_delegation_responses_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_unbonding_responses_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_src_validator_addr_tag 2 +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_dst_validator_addr_tag 3 +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_pagination_tag 4 +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_redelegation_responses_tag 1 +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_validators_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_pagination_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_delegator_addr_tag 1 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_validator_addr_tag 2 +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_validator_tag 1 +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_height_tag 1 +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_hist_tag 1 +#define cosmos_staking_v1beta1_QueryPoolResponse_pool_tag 1 +#define cosmos_staking_v1beta1_QueryParamsResponse_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_v1beta1_QueryValidatorsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, status, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryValidatorsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorsResponse_validators_MSGTYPE cosmos_staking_v1beta1_Validator +#define cosmos_staking_v1beta1_QueryValidatorsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryValidatorRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, validator_addr, 1) +#define cosmos_staking_v1beta1_QueryValidatorRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryValidatorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) +#define cosmos_staking_v1beta1_QueryValidatorResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryValidatorResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorResponse_validator_MSGTYPE cosmos_staking_v1beta1_Validator + +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_addr, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegation_responses, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_delegation_responses_MSGTYPE \ + cosmos_staking_v1beta1_DelegationResponse +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, validator_addr, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, unbonding_responses, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_unbonding_responses_MSGTYPE \ + cosmos_staking_v1beta1_UnbondingDelegation +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryDelegationRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_addr, 2) +#define cosmos_staking_v1beta1_QueryDelegationRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegationRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryDelegationResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegation_response, 1) +#define cosmos_staking_v1beta1_QueryDelegationResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryDelegationResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegationResponse_delegation_response_MSGTYPE cosmos_staking_v1beta1_DelegationResponse + +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_addr, 2) +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, unbond, 1) +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_unbond_MSGTYPE cosmos_staking_v1beta1_UnbondingDelegation + +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegation_responses, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_delegation_responses_MSGTYPE \ + cosmos_staking_v1beta1_DelegationResponse +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, unbonding_responses, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_unbonding_responses_MSGTYPE \ + cosmos_staking_v1beta1_UnbondingDelegation +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, CALLBACK, SINGULAR, STRING, src_validator_addr, 2) \ + X(a, CALLBACK, SINGULAR, STRING, dst_validator_addr, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, redelegation_responses, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_redelegation_responses_MSGTYPE \ + cosmos_staking_v1beta1_RedelegationResponse +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_validators_MSGTYPE cosmos_staking_v1beta1_Validator +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_addr, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_addr, 2) +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_validator_MSGTYPE cosmos_staking_v1beta1_Validator + +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT64, height, 1) +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, hist, 1) +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_hist_MSGTYPE cosmos_staking_v1beta1_HistoricalInfo + +#define cosmos_staking_v1beta1_QueryPoolRequest_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_QueryPoolRequest_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryPoolRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryPoolResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pool, 1) +#define cosmos_staking_v1beta1_QueryPoolResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryPoolResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryPoolResponse_pool_MSGTYPE cosmos_staking_v1beta1_Pool + +#define cosmos_staking_v1beta1_QueryParamsRequest_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_QueryParamsRequest_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryParamsRequest_DEFAULT NULL + +#define cosmos_staking_v1beta1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define cosmos_staking_v1beta1_QueryParamsResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_QueryParamsResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_QueryParamsResponse_params_MSGTYPE cosmos_staking_v1beta1_Params + +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegationRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegationResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryRedelegationsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryRedelegationsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryHistoricalInfoRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryHistoricalInfoResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryPoolRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryPoolResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryParamsRequest_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_QueryParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_v1beta1_QueryValidatorsRequest_fields &cosmos_staking_v1beta1_QueryValidatorsRequest_msg +#define cosmos_staking_v1beta1_QueryValidatorsResponse_fields &cosmos_staking_v1beta1_QueryValidatorsResponse_msg +#define cosmos_staking_v1beta1_QueryValidatorRequest_fields &cosmos_staking_v1beta1_QueryValidatorRequest_msg +#define cosmos_staking_v1beta1_QueryValidatorResponse_fields &cosmos_staking_v1beta1_QueryValidatorResponse_msg +#define cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_fields \ + &cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_msg +#define cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_fields \ + &cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_msg +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_fields \ + &cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_msg +#define cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_fields \ + &cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_msg +#define cosmos_staking_v1beta1_QueryDelegationRequest_fields &cosmos_staking_v1beta1_QueryDelegationRequest_msg +#define cosmos_staking_v1beta1_QueryDelegationResponse_fields &cosmos_staking_v1beta1_QueryDelegationResponse_msg +#define cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_fields \ + &cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_msg +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_fields \ + &cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_msg +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_fields \ + &cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_msg +#define cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_fields \ + &cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_msg +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_fields \ + &cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_msg +#define cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_fields \ + &cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_msg +#define cosmos_staking_v1beta1_QueryRedelegationsRequest_fields &cosmos_staking_v1beta1_QueryRedelegationsRequest_msg +#define cosmos_staking_v1beta1_QueryRedelegationsResponse_fields &cosmos_staking_v1beta1_QueryRedelegationsResponse_msg +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_fields \ + &cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_msg +#define cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_fields \ + &cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_msg +#define cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_fields \ + &cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_msg +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_fields \ + &cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_msg +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_fields &cosmos_staking_v1beta1_QueryHistoricalInfoRequest_msg +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_fields &cosmos_staking_v1beta1_QueryHistoricalInfoResponse_msg +#define cosmos_staking_v1beta1_QueryPoolRequest_fields &cosmos_staking_v1beta1_QueryPoolRequest_msg +#define cosmos_staking_v1beta1_QueryPoolResponse_fields &cosmos_staking_v1beta1_QueryPoolResponse_msg +#define cosmos_staking_v1beta1_QueryParamsRequest_fields &cosmos_staking_v1beta1_QueryParamsRequest_msg +#define cosmos_staking_v1beta1_QueryParamsResponse_fields &cosmos_staking_v1beta1_QueryParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_v1beta1_QueryValidatorsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorDelegationsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorDelegationsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryValidatorUnbondingDelegationsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegationRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryUnbondingDelegationRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorDelegationsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorDelegationsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorUnbondingDelegationsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryRedelegationsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryRedelegationsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorValidatorsRequest_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorValidatorsResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_QueryDelegatorValidatorRequest_size depends on runtime parameters */ +#if defined(cosmos_staking_v1beta1_Validator_size) +#define cosmos_staking_v1beta1_QueryDelegatorValidatorResponse_size (6 + cosmos_staking_v1beta1_Validator_size) +#define cosmos_staking_v1beta1_QueryValidatorResponse_size (6 + cosmos_staking_v1beta1_Validator_size) +#endif +#if defined(cosmos_staking_v1beta1_DelegationResponse_size) +#define cosmos_staking_v1beta1_QueryDelegationResponse_size (6 + cosmos_staking_v1beta1_DelegationResponse_size) +#endif +#if defined(cosmos_staking_v1beta1_UnbondingDelegation_size) +#define cosmos_staking_v1beta1_QueryUnbondingDelegationResponse_size (6 + cosmos_staking_v1beta1_UnbondingDelegation_size) +#endif +#define COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_staking_v1beta1_QueryHistoricalInfoRequest_size +#define cosmos_staking_v1beta1_QueryHistoricalInfoRequest_size 11 +#define cosmos_staking_v1beta1_QueryParamsRequest_size 0 +#define cosmos_staking_v1beta1_QueryPoolRequest_size 0 +#if defined(cosmos_staking_v1beta1_HistoricalInfo_size) +#define cosmos_staking_v1beta1_QueryHistoricalInfoResponse_size (6 + cosmos_staking_v1beta1_HistoricalInfo_size) +#endif +#if defined(cosmos_staking_v1beta1_Pool_size) +#define cosmos_staking_v1beta1_QueryPoolResponse_size (6 + cosmos_staking_v1beta1_Pool_size) +#endif +#if defined(cosmos_staking_v1beta1_Params_size) +#define cosmos_staking_v1beta1_QueryParamsResponse_size (6 + cosmos_staking_v1beta1_Params_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.c b/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.c new file mode 100644 index 0000000..60ad806 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.c @@ -0,0 +1,49 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/v1beta1/staking.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_v1beta1_HistoricalInfo, cosmos_staking_v1beta1_HistoricalInfo, 2) + +PB_BIND(cosmos_staking_v1beta1_CommissionRates, cosmos_staking_v1beta1_CommissionRates, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Commission, cosmos_staking_v1beta1_Commission, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Description, cosmos_staking_v1beta1_Description, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Validator, cosmos_staking_v1beta1_Validator, 2) + +PB_BIND(cosmos_staking_v1beta1_ValAddresses, cosmos_staking_v1beta1_ValAddresses, AUTO) + +PB_BIND(cosmos_staking_v1beta1_DVPair, cosmos_staking_v1beta1_DVPair, AUTO) + +PB_BIND(cosmos_staking_v1beta1_DVPairs, cosmos_staking_v1beta1_DVPairs, AUTO) + +PB_BIND(cosmos_staking_v1beta1_DVVTriplet, cosmos_staking_v1beta1_DVVTriplet, AUTO) + +PB_BIND(cosmos_staking_v1beta1_DVVTriplets, cosmos_staking_v1beta1_DVVTriplets, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Delegation, cosmos_staking_v1beta1_Delegation, AUTO) + +PB_BIND(cosmos_staking_v1beta1_UnbondingDelegation, cosmos_staking_v1beta1_UnbondingDelegation, AUTO) + +PB_BIND(cosmos_staking_v1beta1_UnbondingDelegationEntry, cosmos_staking_v1beta1_UnbondingDelegationEntry, AUTO) + +PB_BIND(cosmos_staking_v1beta1_RedelegationEntry, cosmos_staking_v1beta1_RedelegationEntry, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Redelegation, cosmos_staking_v1beta1_Redelegation, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Params, cosmos_staking_v1beta1_Params, AUTO) + +PB_BIND(cosmos_staking_v1beta1_DelegationResponse, cosmos_staking_v1beta1_DelegationResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_RedelegationEntryResponse, cosmos_staking_v1beta1_RedelegationEntryResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_RedelegationResponse, cosmos_staking_v1beta1_RedelegationResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_Pool, cosmos_staking_v1beta1_Pool, AUTO) + +PB_BIND(cosmos_staking_v1beta1_ValidatorUpdates, cosmos_staking_v1beta1_ValidatorUpdates, AUTO) diff --git a/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.h b/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.h new file mode 100644 index 0000000..4bae98a --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/staking.pb.h @@ -0,0 +1,790 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_STAKING_PB_H_INCLUDED +#define PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_STAKING_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/abci/types.pb.h" +#include "tendermint/types/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* BondStatus is the status of a validator. */ +typedef enum _cosmos_staking_v1beta1_BondStatus { + /* UNSPECIFIED defines an invalid validator status. */ + cosmos_staking_v1beta1_BondStatus_BOND_STATUS_UNSPECIFIED = 0, + /* UNBONDED defines a validator that is not bonded. */ + cosmos_staking_v1beta1_BondStatus_BOND_STATUS_UNBONDED = 1, + /* UNBONDING defines a validator that is unbonding. */ + cosmos_staking_v1beta1_BondStatus_BOND_STATUS_UNBONDING = 2, + /* BONDED defines a validator that is bonded. */ + cosmos_staking_v1beta1_BondStatus_BOND_STATUS_BONDED = 3 +} cosmos_staking_v1beta1_BondStatus; + +/* Infraction indicates the infraction a validator commited. */ +typedef enum _cosmos_staking_v1beta1_Infraction { + /* UNSPECIFIED defines an empty infraction. */ + cosmos_staking_v1beta1_Infraction_INFRACTION_UNSPECIFIED = 0, + /* DOUBLE_SIGN defines a validator that double-signs a block. */ + cosmos_staking_v1beta1_Infraction_INFRACTION_DOUBLE_SIGN = 1, + /* DOWNTIME defines a validator that missed signing too many blocks. */ + cosmos_staking_v1beta1_Infraction_INFRACTION_DOWNTIME = 2 +} cosmos_staking_v1beta1_Infraction; + +/* Struct definitions */ +/* HistoricalInfo contains header and validator information for a given block. + It is stored as part of staking module's state, which persists the `n` most + recent HistoricalInfo + (`n` is set by the staking module's `historical_entries` parameter). */ +typedef struct _cosmos_staking_v1beta1_HistoricalInfo { + bool has_header; + tendermint_types_Header header; + pb_callback_t valset; +} cosmos_staking_v1beta1_HistoricalInfo; + +/* CommissionRates defines the initial commission rates to be used for creating + a validator. */ +typedef struct _cosmos_staking_v1beta1_CommissionRates { + /* rate is the commission rate charged to delegators, as a fraction. */ + pb_callback_t rate; + /* max_rate defines the maximum commission rate which validator can ever charge, as a fraction. */ + pb_callback_t max_rate; + /* max_change_rate defines the maximum daily increase of the validator commission, as a fraction. */ + pb_callback_t max_change_rate; +} cosmos_staking_v1beta1_CommissionRates; + +/* Commission defines commission parameters for a given validator. */ +typedef struct _cosmos_staking_v1beta1_Commission { + /* commission_rates defines the initial commission rates to be used for creating a validator. */ + bool has_commission_rates; + cosmos_staking_v1beta1_CommissionRates commission_rates; + /* update_time is the last time the commission rate was changed. */ + bool has_update_time; + google_protobuf_Timestamp update_time; +} cosmos_staking_v1beta1_Commission; + +/* Description defines a validator description. */ +typedef struct _cosmos_staking_v1beta1_Description { + /* moniker defines a human-readable name for the validator. */ + pb_callback_t moniker; + /* identity defines an optional identity signature (ex. UPort or Keybase). */ + pb_callback_t identity; + /* website defines an optional website link. */ + pb_callback_t website; + /* security_contact defines an optional email for security contact. */ + pb_callback_t security_contact; + /* details define other optional details. */ + pb_callback_t details; +} cosmos_staking_v1beta1_Description; + +/* Validator defines a validator, together with the total amount of the + Validator's bond shares and their exchange rate to coins. Slashing results in + a decrease in the exchange rate, allowing correct calculation of future + undelegations without iterating over delegators. When coins are delegated to + this validator, the validator is credited with a delegation whose number of + bond shares is based on the amount of coins delegated divided by the current + exchange rate. Voting power can be calculated as total bonded shares + multiplied by exchange rate. */ +typedef struct _cosmos_staking_v1beta1_Validator { + /* operator_address defines the address of the validator's operator; bech encoded in JSON. */ + pb_callback_t operator_address; + /* consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. */ + bool has_consensus_pubkey; + google_protobuf_Any consensus_pubkey; + /* jailed defined whether the validator has been jailed from bonded status or not. */ + bool jailed; + /* status is the validator status (bonded/unbonding/unbonded). */ + cosmos_staking_v1beta1_BondStatus status; + /* tokens define the delegated tokens (incl. self-delegation). */ + pb_callback_t tokens; + /* delegator_shares defines total shares issued to a validator's delegators. */ + pb_callback_t delegator_shares; + /* description defines the description terms for the validator. */ + bool has_description; + cosmos_staking_v1beta1_Description description; + /* unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. */ + int64_t unbonding_height; + /* unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. */ + bool has_unbonding_time; + google_protobuf_Timestamp unbonding_time; + /* commission defines the commission parameters. */ + bool has_commission; + cosmos_staking_v1beta1_Commission commission; + /* min_self_delegation is the validator's self declared minimum self delegation. + + Since: cosmos-sdk 0.46 */ + pb_callback_t min_self_delegation; + /* strictly positive if this validator's unbonding has been stopped by external modules */ + int64_t unbonding_on_hold_ref_count; + /* list of unbonding ids, each uniquely identifing an unbonding of this validator */ + pb_callback_t unbonding_ids; +} cosmos_staking_v1beta1_Validator; + +/* ValAddresses defines a repeated set of validator addresses. */ +typedef struct _cosmos_staking_v1beta1_ValAddresses { + pb_callback_t addresses; +} cosmos_staking_v1beta1_ValAddresses; + +/* DVPair is struct that just has a delegator-validator pair with no other data. + It is intended to be used as a marshalable pointer. For example, a DVPair can + be used to construct the key to getting an UnbondingDelegation from state. */ +typedef struct _cosmos_staking_v1beta1_DVPair { + pb_callback_t delegator_address; + pb_callback_t validator_address; +} cosmos_staking_v1beta1_DVPair; + +/* DVPairs defines an array of DVPair objects. */ +typedef struct _cosmos_staking_v1beta1_DVPairs { + pb_callback_t pairs; +} cosmos_staking_v1beta1_DVPairs; + +/* DVVTriplet is struct that just has a delegator-validator-validator triplet + with no other data. It is intended to be used as a marshalable pointer. For + example, a DVVTriplet can be used to construct the key to getting a + Redelegation from state. */ +typedef struct _cosmos_staking_v1beta1_DVVTriplet { + pb_callback_t delegator_address; + pb_callback_t validator_src_address; + pb_callback_t validator_dst_address; +} cosmos_staking_v1beta1_DVVTriplet; + +/* DVVTriplets defines an array of DVVTriplet objects. */ +typedef struct _cosmos_staking_v1beta1_DVVTriplets { + pb_callback_t triplets; +} cosmos_staking_v1beta1_DVVTriplets; + +/* Delegation represents the bond with tokens held by an account. It is + owned by one delegator, and is associated with the voting power of one + validator. */ +typedef struct _cosmos_staking_v1beta1_Delegation { + /* delegator_address is the bech32-encoded address of the delegator. */ + pb_callback_t delegator_address; + /* validator_address is the bech32-encoded address of the validator. */ + pb_callback_t validator_address; + /* shares define the delegation shares received. */ + pb_callback_t shares; +} cosmos_staking_v1beta1_Delegation; + +/* UnbondingDelegation stores all of a single delegator's unbonding bonds + for a single validator in an time-ordered list. */ +typedef struct _cosmos_staking_v1beta1_UnbondingDelegation { + /* delegator_address is the bech32-encoded address of the delegator. */ + pb_callback_t delegator_address; + /* validator_address is the bech32-encoded address of the validator. */ + pb_callback_t validator_address; + /* entries are the unbonding delegation entries. */ + pb_callback_t entries; /* unbonding delegation entries */ +} cosmos_staking_v1beta1_UnbondingDelegation; + +/* UnbondingDelegationEntry defines an unbonding object with relevant metadata. */ +typedef struct _cosmos_staking_v1beta1_UnbondingDelegationEntry { + /* creation_height is the height which the unbonding took place. */ + int64_t creation_height; + /* completion_time is the unix time for unbonding completion. */ + bool has_completion_time; + google_protobuf_Timestamp completion_time; + /* initial_balance defines the tokens initially scheduled to receive at completion. */ + pb_callback_t initial_balance; + /* balance defines the tokens to receive at completion. */ + pb_callback_t balance; + /* Incrementing id that uniquely identifies this entry */ + uint64_t unbonding_id; + /* Strictly positive if this entry's unbonding has been stopped by external modules */ + int64_t unbonding_on_hold_ref_count; +} cosmos_staking_v1beta1_UnbondingDelegationEntry; + +/* RedelegationEntry defines a redelegation object with relevant metadata. */ +typedef struct _cosmos_staking_v1beta1_RedelegationEntry { + /* creation_height defines the height which the redelegation took place. */ + int64_t creation_height; + /* completion_time defines the unix time for redelegation completion. */ + bool has_completion_time; + google_protobuf_Timestamp completion_time; + /* initial_balance defines the initial balance when redelegation started. */ + pb_callback_t initial_balance; + /* shares_dst is the amount of destination-validator shares created by redelegation. */ + pb_callback_t shares_dst; + /* Incrementing id that uniquely identifies this entry */ + uint64_t unbonding_id; + /* Strictly positive if this entry's unbonding has been stopped by external modules */ + int64_t unbonding_on_hold_ref_count; +} cosmos_staking_v1beta1_RedelegationEntry; + +/* Redelegation contains the list of a particular delegator's redelegating bonds + from a particular source validator to a particular destination validator. */ +typedef struct _cosmos_staking_v1beta1_Redelegation { + /* delegator_address is the bech32-encoded address of the delegator. */ + pb_callback_t delegator_address; + /* validator_src_address is the validator redelegation source operator address. */ + pb_callback_t validator_src_address; + /* validator_dst_address is the validator redelegation destination operator address. */ + pb_callback_t validator_dst_address; + /* entries are the redelegation entries. */ + pb_callback_t entries; /* redelegation entries */ +} cosmos_staking_v1beta1_Redelegation; + +/* Params defines the parameters for the x/staking module. */ +typedef struct _cosmos_staking_v1beta1_Params { + /* unbonding_time is the time duration of unbonding. */ + bool has_unbonding_time; + google_protobuf_Duration unbonding_time; + /* max_validators is the maximum number of validators. */ + uint32_t max_validators; + /* max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). */ + uint32_t max_entries; + /* historical_entries is the number of historical entries to persist. */ + uint32_t historical_entries; + /* bond_denom defines the bondable coin denomination. */ + pb_callback_t bond_denom; + /* min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators */ + pb_callback_t min_commission_rate; +} cosmos_staking_v1beta1_Params; + +/* DelegationResponse is equivalent to Delegation except that it contains a + balance in addition to shares which is more suitable for client responses. */ +typedef struct _cosmos_staking_v1beta1_DelegationResponse { + bool has_delegation; + cosmos_staking_v1beta1_Delegation delegation; + bool has_balance; + cosmos_base_v1beta1_Coin balance; +} cosmos_staking_v1beta1_DelegationResponse; + +/* RedelegationEntryResponse is equivalent to a RedelegationEntry except that it + contains a balance in addition to shares which is more suitable for client + responses. */ +typedef struct _cosmos_staking_v1beta1_RedelegationEntryResponse { + bool has_redelegation_entry; + cosmos_staking_v1beta1_RedelegationEntry redelegation_entry; + pb_callback_t balance; +} cosmos_staking_v1beta1_RedelegationEntryResponse; + +/* RedelegationResponse is equivalent to a Redelegation except that its entries + contain a balance in addition to shares which is more suitable for client + responses. */ +typedef struct _cosmos_staking_v1beta1_RedelegationResponse { + bool has_redelegation; + cosmos_staking_v1beta1_Redelegation redelegation; + pb_callback_t entries; +} cosmos_staking_v1beta1_RedelegationResponse; + +/* Pool is used for tracking bonded and not-bonded token supply of the bond + denomination. */ +typedef struct _cosmos_staking_v1beta1_Pool { + pb_callback_t not_bonded_tokens; + pb_callback_t bonded_tokens; +} cosmos_staking_v1beta1_Pool; + +/* ValidatorUpdates defines an array of abci.ValidatorUpdate objects. + TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence */ +typedef struct _cosmos_staking_v1beta1_ValidatorUpdates { + pb_callback_t updates; +} cosmos_staking_v1beta1_ValidatorUpdates; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_staking_v1beta1_BondStatus_MIN cosmos_staking_v1beta1_BondStatus_BOND_STATUS_UNSPECIFIED +#define _cosmos_staking_v1beta1_BondStatus_MAX cosmos_staking_v1beta1_BondStatus_BOND_STATUS_BONDED +#define _cosmos_staking_v1beta1_BondStatus_ARRAYSIZE \ + ((cosmos_staking_v1beta1_BondStatus)(cosmos_staking_v1beta1_BondStatus_BOND_STATUS_BONDED + 1)) + +#define _cosmos_staking_v1beta1_Infraction_MIN cosmos_staking_v1beta1_Infraction_INFRACTION_UNSPECIFIED +#define _cosmos_staking_v1beta1_Infraction_MAX cosmos_staking_v1beta1_Infraction_INFRACTION_DOWNTIME +#define _cosmos_staking_v1beta1_Infraction_ARRAYSIZE \ + ((cosmos_staking_v1beta1_Infraction)(cosmos_staking_v1beta1_Infraction_INFRACTION_DOWNTIME + 1)) + +#define cosmos_staking_v1beta1_Validator_status_ENUMTYPE cosmos_staking_v1beta1_BondStatus + +/* Initializer values for message structs */ +#define cosmos_staking_v1beta1_HistoricalInfo_init_default \ + { \ + false, tendermint_types_Header_init_default, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_CommissionRates_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Commission_init_default \ + { false, cosmos_staking_v1beta1_CommissionRates_init_default, false, google_protobuf_Timestamp_init_default } +#define cosmos_staking_v1beta1_Description_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Validator_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, 0, _cosmos_staking_v1beta1_BondStatus_MIN, {{NULL}, NULL}, \ + {{NULL}, NULL}, false, cosmos_staking_v1beta1_Description_init_default, 0, false, \ + google_protobuf_Timestamp_init_default, false, cosmos_staking_v1beta1_Commission_init_default, {{NULL}, NULL}, \ + 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_staking_v1beta1_ValAddresses_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVPair_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVPairs_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVVTriplet_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVVTriplets_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Delegation_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_UnbondingDelegation_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_init_default \ + { 0, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_staking_v1beta1_RedelegationEntry_init_default \ + { 0, false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_staking_v1beta1_Redelegation_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Params_init_default \ + { \ + false, google_protobuf_Duration_init_default, 0, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DelegationResponse_init_default \ + { false, cosmos_staking_v1beta1_Delegation_init_default, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_staking_v1beta1_RedelegationEntryResponse_init_default \ + { \ + false, cosmos_staking_v1beta1_RedelegationEntry_init_default, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_RedelegationResponse_init_default \ + { \ + false, cosmos_staking_v1beta1_Redelegation_init_default, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Pool_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_ValidatorUpdates_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_HistoricalInfo_init_zero \ + { \ + false, tendermint_types_Header_init_zero, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_CommissionRates_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Commission_init_zero \ + { false, cosmos_staking_v1beta1_CommissionRates_init_zero, false, google_protobuf_Timestamp_init_zero } +#define cosmos_staking_v1beta1_Description_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Validator_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, 0, _cosmos_staking_v1beta1_BondStatus_MIN, {{NULL}, NULL}, \ + {{NULL}, NULL}, false, cosmos_staking_v1beta1_Description_init_zero, 0, false, \ + google_protobuf_Timestamp_init_zero, false, cosmos_staking_v1beta1_Commission_init_zero, {{NULL}, NULL}, 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_staking_v1beta1_ValAddresses_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVPair_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVPairs_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVVTriplet_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DVVTriplets_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Delegation_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_UnbondingDelegation_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_init_zero \ + { 0, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_staking_v1beta1_RedelegationEntry_init_zero \ + { 0, false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_staking_v1beta1_Redelegation_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Params_init_zero \ + { \ + false, google_protobuf_Duration_init_zero, 0, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_DelegationResponse_init_zero \ + { false, cosmos_staking_v1beta1_Delegation_init_zero, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_staking_v1beta1_RedelegationEntryResponse_init_zero \ + { \ + false, cosmos_staking_v1beta1_RedelegationEntry_init_zero, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_RedelegationResponse_init_zero \ + { \ + false, cosmos_staking_v1beta1_Redelegation_init_zero, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_Pool_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_ValidatorUpdates_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_v1beta1_HistoricalInfo_header_tag 1 +#define cosmos_staking_v1beta1_HistoricalInfo_valset_tag 2 +#define cosmos_staking_v1beta1_CommissionRates_rate_tag 1 +#define cosmos_staking_v1beta1_CommissionRates_max_rate_tag 2 +#define cosmos_staking_v1beta1_CommissionRates_max_change_rate_tag 3 +#define cosmos_staking_v1beta1_Commission_commission_rates_tag 1 +#define cosmos_staking_v1beta1_Commission_update_time_tag 2 +#define cosmos_staking_v1beta1_Description_moniker_tag 1 +#define cosmos_staking_v1beta1_Description_identity_tag 2 +#define cosmos_staking_v1beta1_Description_website_tag 3 +#define cosmos_staking_v1beta1_Description_security_contact_tag 4 +#define cosmos_staking_v1beta1_Description_details_tag 5 +#define cosmos_staking_v1beta1_Validator_operator_address_tag 1 +#define cosmos_staking_v1beta1_Validator_consensus_pubkey_tag 2 +#define cosmos_staking_v1beta1_Validator_jailed_tag 3 +#define cosmos_staking_v1beta1_Validator_status_tag 4 +#define cosmos_staking_v1beta1_Validator_tokens_tag 5 +#define cosmos_staking_v1beta1_Validator_delegator_shares_tag 6 +#define cosmos_staking_v1beta1_Validator_description_tag 7 +#define cosmos_staking_v1beta1_Validator_unbonding_height_tag 8 +#define cosmos_staking_v1beta1_Validator_unbonding_time_tag 9 +#define cosmos_staking_v1beta1_Validator_commission_tag 10 +#define cosmos_staking_v1beta1_Validator_min_self_delegation_tag 11 +#define cosmos_staking_v1beta1_Validator_unbonding_on_hold_ref_count_tag 12 +#define cosmos_staking_v1beta1_Validator_unbonding_ids_tag 13 +#define cosmos_staking_v1beta1_ValAddresses_addresses_tag 1 +#define cosmos_staking_v1beta1_DVPair_delegator_address_tag 1 +#define cosmos_staking_v1beta1_DVPair_validator_address_tag 2 +#define cosmos_staking_v1beta1_DVPairs_pairs_tag 1 +#define cosmos_staking_v1beta1_DVVTriplet_delegator_address_tag 1 +#define cosmos_staking_v1beta1_DVVTriplet_validator_src_address_tag 2 +#define cosmos_staking_v1beta1_DVVTriplet_validator_dst_address_tag 3 +#define cosmos_staking_v1beta1_DVVTriplets_triplets_tag 1 +#define cosmos_staking_v1beta1_Delegation_delegator_address_tag 1 +#define cosmos_staking_v1beta1_Delegation_validator_address_tag 2 +#define cosmos_staking_v1beta1_Delegation_shares_tag 3 +#define cosmos_staking_v1beta1_UnbondingDelegation_delegator_address_tag 1 +#define cosmos_staking_v1beta1_UnbondingDelegation_validator_address_tag 2 +#define cosmos_staking_v1beta1_UnbondingDelegation_entries_tag 3 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_creation_height_tag 1 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_completion_time_tag 2 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_initial_balance_tag 3 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_balance_tag 4 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_unbonding_id_tag 5 +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_unbonding_on_hold_ref_count_tag 6 +#define cosmos_staking_v1beta1_RedelegationEntry_creation_height_tag 1 +#define cosmos_staking_v1beta1_RedelegationEntry_completion_time_tag 2 +#define cosmos_staking_v1beta1_RedelegationEntry_initial_balance_tag 3 +#define cosmos_staking_v1beta1_RedelegationEntry_shares_dst_tag 4 +#define cosmos_staking_v1beta1_RedelegationEntry_unbonding_id_tag 5 +#define cosmos_staking_v1beta1_RedelegationEntry_unbonding_on_hold_ref_count_tag 6 +#define cosmos_staking_v1beta1_Redelegation_delegator_address_tag 1 +#define cosmos_staking_v1beta1_Redelegation_validator_src_address_tag 2 +#define cosmos_staking_v1beta1_Redelegation_validator_dst_address_tag 3 +#define cosmos_staking_v1beta1_Redelegation_entries_tag 4 +#define cosmos_staking_v1beta1_Params_unbonding_time_tag 1 +#define cosmos_staking_v1beta1_Params_max_validators_tag 2 +#define cosmos_staking_v1beta1_Params_max_entries_tag 3 +#define cosmos_staking_v1beta1_Params_historical_entries_tag 4 +#define cosmos_staking_v1beta1_Params_bond_denom_tag 5 +#define cosmos_staking_v1beta1_Params_min_commission_rate_tag 6 +#define cosmos_staking_v1beta1_DelegationResponse_delegation_tag 1 +#define cosmos_staking_v1beta1_DelegationResponse_balance_tag 2 +#define cosmos_staking_v1beta1_RedelegationEntryResponse_redelegation_entry_tag 1 +#define cosmos_staking_v1beta1_RedelegationEntryResponse_balance_tag 4 +#define cosmos_staking_v1beta1_RedelegationResponse_redelegation_tag 1 +#define cosmos_staking_v1beta1_RedelegationResponse_entries_tag 2 +#define cosmos_staking_v1beta1_Pool_not_bonded_tokens_tag 1 +#define cosmos_staking_v1beta1_Pool_bonded_tokens_tag 2 +#define cosmos_staking_v1beta1_ValidatorUpdates_updates_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_v1beta1_HistoricalInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, valset, 2) +#define cosmos_staking_v1beta1_HistoricalInfo_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_HistoricalInfo_DEFAULT NULL +#define cosmos_staking_v1beta1_HistoricalInfo_header_MSGTYPE tendermint_types_Header +#define cosmos_staking_v1beta1_HistoricalInfo_valset_MSGTYPE cosmos_staking_v1beta1_Validator + +#define cosmos_staking_v1beta1_CommissionRates_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, rate, 1) \ + X(a, CALLBACK, SINGULAR, STRING, max_rate, 2) \ + X(a, CALLBACK, SINGULAR, STRING, max_change_rate, 3) +#define cosmos_staking_v1beta1_CommissionRates_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_CommissionRates_DEFAULT NULL + +#define cosmos_staking_v1beta1_Commission_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commission_rates, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, update_time, 2) +#define cosmos_staking_v1beta1_Commission_CALLBACK NULL +#define cosmos_staking_v1beta1_Commission_DEFAULT NULL +#define cosmos_staking_v1beta1_Commission_commission_rates_MSGTYPE cosmos_staking_v1beta1_CommissionRates +#define cosmos_staking_v1beta1_Commission_update_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_staking_v1beta1_Description_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, moniker, 1) \ + X(a, CALLBACK, SINGULAR, STRING, identity, 2) \ + X(a, CALLBACK, SINGULAR, STRING, website, 3) \ + X(a, CALLBACK, SINGULAR, STRING, security_contact, 4) \ + X(a, CALLBACK, SINGULAR, STRING, details, 5) +#define cosmos_staking_v1beta1_Description_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Description_DEFAULT NULL + +#define cosmos_staking_v1beta1_Validator_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, operator_address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_pubkey, 2) \ + X(a, STATIC, SINGULAR, BOOL, jailed, 3) \ + X(a, STATIC, SINGULAR, UENUM, status, 4) \ + X(a, CALLBACK, SINGULAR, STRING, tokens, 5) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_shares, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 7) \ + X(a, STATIC, SINGULAR, INT64, unbonding_height, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonding_time, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, commission, 10) \ + X(a, CALLBACK, SINGULAR, STRING, min_self_delegation, 11) \ + X(a, STATIC, SINGULAR, INT64, unbonding_on_hold_ref_count, 12) \ + X(a, CALLBACK, REPEATED, UINT64, unbonding_ids, 13) +#define cosmos_staking_v1beta1_Validator_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Validator_DEFAULT NULL +#define cosmos_staking_v1beta1_Validator_consensus_pubkey_MSGTYPE google_protobuf_Any +#define cosmos_staking_v1beta1_Validator_description_MSGTYPE cosmos_staking_v1beta1_Description +#define cosmos_staking_v1beta1_Validator_unbonding_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_staking_v1beta1_Validator_commission_MSGTYPE cosmos_staking_v1beta1_Commission + +#define cosmos_staking_v1beta1_ValAddresses_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, addresses, 1) +#define cosmos_staking_v1beta1_ValAddresses_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_ValAddresses_DEFAULT NULL + +#define cosmos_staking_v1beta1_DVPair_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) +#define cosmos_staking_v1beta1_DVPair_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_DVPair_DEFAULT NULL + +#define cosmos_staking_v1beta1_DVPairs_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, pairs, 1) +#define cosmos_staking_v1beta1_DVPairs_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_DVPairs_DEFAULT NULL +#define cosmos_staking_v1beta1_DVPairs_pairs_MSGTYPE cosmos_staking_v1beta1_DVPair + +#define cosmos_staking_v1beta1_DVVTriplet_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_src_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, validator_dst_address, 3) +#define cosmos_staking_v1beta1_DVVTriplet_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_DVVTriplet_DEFAULT NULL + +#define cosmos_staking_v1beta1_DVVTriplets_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, triplets, 1) +#define cosmos_staking_v1beta1_DVVTriplets_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_DVVTriplets_DEFAULT NULL +#define cosmos_staking_v1beta1_DVVTriplets_triplets_MSGTYPE cosmos_staking_v1beta1_DVVTriplet + +#define cosmos_staking_v1beta1_Delegation_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, shares, 3) +#define cosmos_staking_v1beta1_Delegation_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Delegation_DEFAULT NULL + +#define cosmos_staking_v1beta1_UnbondingDelegation_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, entries, 3) +#define cosmos_staking_v1beta1_UnbondingDelegation_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_UnbondingDelegation_DEFAULT NULL +#define cosmos_staking_v1beta1_UnbondingDelegation_entries_MSGTYPE cosmos_staking_v1beta1_UnbondingDelegationEntry + +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, creation_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, completion_time, 2) \ + X(a, CALLBACK, SINGULAR, STRING, initial_balance, 3) \ + X(a, CALLBACK, SINGULAR, STRING, balance, 4) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_id, 5) \ + X(a, STATIC, SINGULAR, INT64, unbonding_on_hold_ref_count, 6) +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_DEFAULT NULL +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_completion_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_staking_v1beta1_RedelegationEntry_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, creation_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, completion_time, 2) \ + X(a, CALLBACK, SINGULAR, STRING, initial_balance, 3) \ + X(a, CALLBACK, SINGULAR, STRING, shares_dst, 4) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_id, 5) \ + X(a, STATIC, SINGULAR, INT64, unbonding_on_hold_ref_count, 6) +#define cosmos_staking_v1beta1_RedelegationEntry_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_RedelegationEntry_DEFAULT NULL +#define cosmos_staking_v1beta1_RedelegationEntry_completion_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_staking_v1beta1_Redelegation_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_src_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, validator_dst_address, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, entries, 4) +#define cosmos_staking_v1beta1_Redelegation_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Redelegation_DEFAULT NULL +#define cosmos_staking_v1beta1_Redelegation_entries_MSGTYPE cosmos_staking_v1beta1_RedelegationEntry + +#define cosmos_staking_v1beta1_Params_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonding_time, 1) \ + X(a, STATIC, SINGULAR, UINT32, max_validators, 2) \ + X(a, STATIC, SINGULAR, UINT32, max_entries, 3) \ + X(a, STATIC, SINGULAR, UINT32, historical_entries, 4) \ + X(a, CALLBACK, SINGULAR, STRING, bond_denom, 5) \ + X(a, CALLBACK, SINGULAR, STRING, min_commission_rate, 6) +#define cosmos_staking_v1beta1_Params_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Params_DEFAULT NULL +#define cosmos_staking_v1beta1_Params_unbonding_time_MSGTYPE google_protobuf_Duration + +#define cosmos_staking_v1beta1_DelegationResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegation, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance, 2) +#define cosmos_staking_v1beta1_DelegationResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_DelegationResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_DelegationResponse_delegation_MSGTYPE cosmos_staking_v1beta1_Delegation +#define cosmos_staking_v1beta1_DelegationResponse_balance_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_RedelegationEntryResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, redelegation_entry, 1) \ + X(a, CALLBACK, SINGULAR, STRING, balance, 4) +#define cosmos_staking_v1beta1_RedelegationEntryResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_RedelegationEntryResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_RedelegationEntryResponse_redelegation_entry_MSGTYPE cosmos_staking_v1beta1_RedelegationEntry + +#define cosmos_staking_v1beta1_RedelegationResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, redelegation, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, entries, 2) +#define cosmos_staking_v1beta1_RedelegationResponse_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_RedelegationResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_RedelegationResponse_redelegation_MSGTYPE cosmos_staking_v1beta1_Redelegation +#define cosmos_staking_v1beta1_RedelegationResponse_entries_MSGTYPE cosmos_staking_v1beta1_RedelegationEntryResponse + +#define cosmos_staking_v1beta1_Pool_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, not_bonded_tokens, 1) \ + X(a, CALLBACK, SINGULAR, STRING, bonded_tokens, 2) +#define cosmos_staking_v1beta1_Pool_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_Pool_DEFAULT NULL + +#define cosmos_staking_v1beta1_ValidatorUpdates_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, updates, 1) +#define cosmos_staking_v1beta1_ValidatorUpdates_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_ValidatorUpdates_DEFAULT NULL +#define cosmos_staking_v1beta1_ValidatorUpdates_updates_MSGTYPE tendermint_abci_ValidatorUpdate + +extern const pb_msgdesc_t cosmos_staking_v1beta1_HistoricalInfo_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_CommissionRates_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Commission_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Description_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Validator_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_ValAddresses_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_DVPair_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_DVPairs_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_DVVTriplet_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_DVVTriplets_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Delegation_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_UnbondingDelegation_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_UnbondingDelegationEntry_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_RedelegationEntry_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Redelegation_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Params_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_DelegationResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_RedelegationEntryResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_RedelegationResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_Pool_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_ValidatorUpdates_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_v1beta1_HistoricalInfo_fields &cosmos_staking_v1beta1_HistoricalInfo_msg +#define cosmos_staking_v1beta1_CommissionRates_fields &cosmos_staking_v1beta1_CommissionRates_msg +#define cosmos_staking_v1beta1_Commission_fields &cosmos_staking_v1beta1_Commission_msg +#define cosmos_staking_v1beta1_Description_fields &cosmos_staking_v1beta1_Description_msg +#define cosmos_staking_v1beta1_Validator_fields &cosmos_staking_v1beta1_Validator_msg +#define cosmos_staking_v1beta1_ValAddresses_fields &cosmos_staking_v1beta1_ValAddresses_msg +#define cosmos_staking_v1beta1_DVPair_fields &cosmos_staking_v1beta1_DVPair_msg +#define cosmos_staking_v1beta1_DVPairs_fields &cosmos_staking_v1beta1_DVPairs_msg +#define cosmos_staking_v1beta1_DVVTriplet_fields &cosmos_staking_v1beta1_DVVTriplet_msg +#define cosmos_staking_v1beta1_DVVTriplets_fields &cosmos_staking_v1beta1_DVVTriplets_msg +#define cosmos_staking_v1beta1_Delegation_fields &cosmos_staking_v1beta1_Delegation_msg +#define cosmos_staking_v1beta1_UnbondingDelegation_fields &cosmos_staking_v1beta1_UnbondingDelegation_msg +#define cosmos_staking_v1beta1_UnbondingDelegationEntry_fields &cosmos_staking_v1beta1_UnbondingDelegationEntry_msg +#define cosmos_staking_v1beta1_RedelegationEntry_fields &cosmos_staking_v1beta1_RedelegationEntry_msg +#define cosmos_staking_v1beta1_Redelegation_fields &cosmos_staking_v1beta1_Redelegation_msg +#define cosmos_staking_v1beta1_Params_fields &cosmos_staking_v1beta1_Params_msg +#define cosmos_staking_v1beta1_DelegationResponse_fields &cosmos_staking_v1beta1_DelegationResponse_msg +#define cosmos_staking_v1beta1_RedelegationEntryResponse_fields &cosmos_staking_v1beta1_RedelegationEntryResponse_msg +#define cosmos_staking_v1beta1_RedelegationResponse_fields &cosmos_staking_v1beta1_RedelegationResponse_msg +#define cosmos_staking_v1beta1_Pool_fields &cosmos_staking_v1beta1_Pool_msg +#define cosmos_staking_v1beta1_ValidatorUpdates_fields &cosmos_staking_v1beta1_ValidatorUpdates_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_v1beta1_HistoricalInfo_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_CommissionRates_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Commission_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Description_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Validator_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_ValAddresses_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_DVPair_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_DVPairs_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_DVVTriplet_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_DVVTriplets_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Delegation_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_UnbondingDelegation_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_UnbondingDelegationEntry_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_RedelegationEntry_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Redelegation_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Params_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_DelegationResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_RedelegationEntryResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_RedelegationResponse_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_Pool_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_ValidatorUpdates_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.c new file mode 100644 index 0000000..c6b95b0 --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.c @@ -0,0 +1,36 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/staking/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_staking_v1beta1_MsgCreateValidator, cosmos_staking_v1beta1_MsgCreateValidator, 2) + +PB_BIND(cosmos_staking_v1beta1_MsgCreateValidatorResponse, cosmos_staking_v1beta1_MsgCreateValidatorResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgEditValidator, cosmos_staking_v1beta1_MsgEditValidator, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgEditValidatorResponse, cosmos_staking_v1beta1_MsgEditValidatorResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgDelegate, cosmos_staking_v1beta1_MsgDelegate, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgDelegateResponse, cosmos_staking_v1beta1_MsgDelegateResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgBeginRedelegate, cosmos_staking_v1beta1_MsgBeginRedelegate, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgBeginRedelegateResponse, cosmos_staking_v1beta1_MsgBeginRedelegateResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgUndelegate, cosmos_staking_v1beta1_MsgUndelegate, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgUndelegateResponse, cosmos_staking_v1beta1_MsgUndelegateResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgCancelUnbondingDelegation, cosmos_staking_v1beta1_MsgCancelUnbondingDelegation, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse, + cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgUpdateParams, cosmos_staking_v1beta1_MsgUpdateParams, AUTO) + +PB_BIND(cosmos_staking_v1beta1_MsgUpdateParamsResponse, cosmos_staking_v1beta1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.h new file mode 100644 index 0000000..c10d00f --- /dev/null +++ b/app/src/protobuf/cosmos/staking/v1beta1/tx.pb.h @@ -0,0 +1,419 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos/staking/v1beta1/staking.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgCreateValidator defines a SDK message for creating a new validator. */ +typedef struct _cosmos_staking_v1beta1_MsgCreateValidator { + bool has_description; + cosmos_staking_v1beta1_Description description; + bool has_commission; + cosmos_staking_v1beta1_CommissionRates commission; + pb_callback_t min_self_delegation; + /* Deprecated: Use of Delegator Address in MsgCreateValidator is deprecated. + The validator address bytes and delegator address bytes refer to the same account while creating validator (defer + only in bech32 notation). */ + pb_callback_t delegator_address; + pb_callback_t validator_address; + bool has_pubkey; + google_protobuf_Any pubkey; + bool has_value; + cosmos_base_v1beta1_Coin value; +} cosmos_staking_v1beta1_MsgCreateValidator; + +/* MsgCreateValidatorResponse defines the Msg/CreateValidator response type. */ +typedef struct _cosmos_staking_v1beta1_MsgCreateValidatorResponse { + char dummy_field; +} cosmos_staking_v1beta1_MsgCreateValidatorResponse; + +/* MsgEditValidator defines a SDK message for editing an existing validator. */ +typedef struct _cosmos_staking_v1beta1_MsgEditValidator { + bool has_description; + cosmos_staking_v1beta1_Description description; + pb_callback_t validator_address; + /* We pass a reference to the new commission rate and min self delegation as + it's not mandatory to update. If not updated, the deserialized rate will be + zero with no way to distinguish if an update was intended. + REF: #2373 */ + pb_callback_t commission_rate; + pb_callback_t min_self_delegation; +} cosmos_staking_v1beta1_MsgEditValidator; + +/* MsgEditValidatorResponse defines the Msg/EditValidator response type. */ +typedef struct _cosmos_staking_v1beta1_MsgEditValidatorResponse { + char dummy_field; +} cosmos_staking_v1beta1_MsgEditValidatorResponse; + +/* MsgDelegate defines a SDK message for performing a delegation of coins + from a delegator to a validator. */ +typedef struct _cosmos_staking_v1beta1_MsgDelegate { + pb_callback_t delegator_address; + pb_callback_t validator_address; + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} cosmos_staking_v1beta1_MsgDelegate; + +/* MsgDelegateResponse defines the Msg/Delegate response type. */ +typedef struct _cosmos_staking_v1beta1_MsgDelegateResponse { + char dummy_field; +} cosmos_staking_v1beta1_MsgDelegateResponse; + +/* MsgBeginRedelegate defines a SDK message for performing a redelegation + of coins from a delegator and source validator to a destination validator. */ +typedef struct _cosmos_staking_v1beta1_MsgBeginRedelegate { + pb_callback_t delegator_address; + pb_callback_t validator_src_address; + pb_callback_t validator_dst_address; + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} cosmos_staking_v1beta1_MsgBeginRedelegate; + +/* MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. */ +typedef struct _cosmos_staking_v1beta1_MsgBeginRedelegateResponse { + bool has_completion_time; + google_protobuf_Timestamp completion_time; +} cosmos_staking_v1beta1_MsgBeginRedelegateResponse; + +/* MsgUndelegate defines a SDK message for performing an undelegation from a + delegate and a validator. */ +typedef struct _cosmos_staking_v1beta1_MsgUndelegate { + pb_callback_t delegator_address; + pb_callback_t validator_address; + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} cosmos_staking_v1beta1_MsgUndelegate; + +/* MsgUndelegateResponse defines the Msg/Undelegate response type. */ +typedef struct _cosmos_staking_v1beta1_MsgUndelegateResponse { + bool has_completion_time; + google_protobuf_Timestamp completion_time; + /* amount returns the amount of undelegated coins + + Since: cosmos-sdk 0.48 */ + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} cosmos_staking_v1beta1_MsgUndelegateResponse; + +/* MsgCancelUnbondingDelegation defines the SDK message for performing a cancel unbonding delegation for delegator + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_staking_v1beta1_MsgCancelUnbondingDelegation { + pb_callback_t delegator_address; + pb_callback_t validator_address; + /* amount is always less than or equal to unbonding delegation entry balance */ + bool has_amount; + cosmos_base_v1beta1_Coin amount; + /* creation_height is the height which the unbonding took place. */ + int64_t creation_height; +} cosmos_staking_v1beta1_MsgCancelUnbondingDelegation; + +/* MsgCancelUnbondingDelegationResponse + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse { + char dummy_field; +} cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_staking_v1beta1_MsgUpdateParams { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* params defines the x/staking parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + cosmos_staking_v1beta1_Params params; +} cosmos_staking_v1beta1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_staking_v1beta1_MsgUpdateParamsResponse { + char dummy_field; +} cosmos_staking_v1beta1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_staking_v1beta1_MsgCreateValidator_init_default \ + { \ + false, cosmos_staking_v1beta1_Description_init_default, false, cosmos_staking_v1beta1_CommissionRates_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default, false, \ + cosmos_base_v1beta1_Coin_init_default \ + } +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_init_default \ + { 0 } +#define cosmos_staking_v1beta1_MsgEditValidator_init_default \ + { \ + false, cosmos_staking_v1beta1_Description_init_default, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_init_default \ + { 0 } +#define cosmos_staking_v1beta1_MsgDelegate_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_staking_v1beta1_MsgDelegateResponse_init_default \ + { 0 } +#define cosmos_staking_v1beta1_MsgBeginRedelegate_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_init_default \ + { false, google_protobuf_Timestamp_init_default } +#define cosmos_staking_v1beta1_MsgUndelegate_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_staking_v1beta1_MsgUndelegateResponse_init_default \ + { false, google_protobuf_Timestamp_init_default, false, cosmos_base_v1beta1_Coin_init_default } +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default, 0 } +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_init_default \ + { 0 } +#define cosmos_staking_v1beta1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, cosmos_staking_v1beta1_Params_init_default } +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define cosmos_staking_v1beta1_MsgCreateValidator_init_zero \ + { \ + false, cosmos_staking_v1beta1_Description_init_zero, false, cosmos_staking_v1beta1_CommissionRates_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero, false, \ + cosmos_base_v1beta1_Coin_init_zero \ + } +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_MsgEditValidator_init_zero \ + { \ + false, cosmos_staking_v1beta1_Description_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_MsgDelegate_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_staking_v1beta1_MsgDelegateResponse_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_MsgBeginRedelegate_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_init_zero \ + { false, google_protobuf_Timestamp_init_zero } +#define cosmos_staking_v1beta1_MsgUndelegate_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_staking_v1beta1_MsgUndelegateResponse_init_zero \ + { false, google_protobuf_Timestamp_init_zero, false, cosmos_base_v1beta1_Coin_init_zero } +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero, 0 } +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_init_zero \ + { 0 } +#define cosmos_staking_v1beta1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, cosmos_staking_v1beta1_Params_init_zero } +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_staking_v1beta1_MsgCreateValidator_description_tag 1 +#define cosmos_staking_v1beta1_MsgCreateValidator_commission_tag 2 +#define cosmos_staking_v1beta1_MsgCreateValidator_min_self_delegation_tag 3 +#define cosmos_staking_v1beta1_MsgCreateValidator_delegator_address_tag 4 +#define cosmos_staking_v1beta1_MsgCreateValidator_validator_address_tag 5 +#define cosmos_staking_v1beta1_MsgCreateValidator_pubkey_tag 6 +#define cosmos_staking_v1beta1_MsgCreateValidator_value_tag 7 +#define cosmos_staking_v1beta1_MsgEditValidator_description_tag 1 +#define cosmos_staking_v1beta1_MsgEditValidator_validator_address_tag 2 +#define cosmos_staking_v1beta1_MsgEditValidator_commission_rate_tag 3 +#define cosmos_staking_v1beta1_MsgEditValidator_min_self_delegation_tag 4 +#define cosmos_staking_v1beta1_MsgDelegate_delegator_address_tag 1 +#define cosmos_staking_v1beta1_MsgDelegate_validator_address_tag 2 +#define cosmos_staking_v1beta1_MsgDelegate_amount_tag 3 +#define cosmos_staking_v1beta1_MsgBeginRedelegate_delegator_address_tag 1 +#define cosmos_staking_v1beta1_MsgBeginRedelegate_validator_src_address_tag 2 +#define cosmos_staking_v1beta1_MsgBeginRedelegate_validator_dst_address_tag 3 +#define cosmos_staking_v1beta1_MsgBeginRedelegate_amount_tag 4 +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_completion_time_tag 1 +#define cosmos_staking_v1beta1_MsgUndelegate_delegator_address_tag 1 +#define cosmos_staking_v1beta1_MsgUndelegate_validator_address_tag 2 +#define cosmos_staking_v1beta1_MsgUndelegate_amount_tag 3 +#define cosmos_staking_v1beta1_MsgUndelegateResponse_completion_time_tag 1 +#define cosmos_staking_v1beta1_MsgUndelegateResponse_amount_tag 2 +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_delegator_address_tag 1 +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_validator_address_tag 2 +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_amount_tag 3 +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_creation_height_tag 4 +#define cosmos_staking_v1beta1_MsgUpdateParams_authority_tag 1 +#define cosmos_staking_v1beta1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_staking_v1beta1_MsgCreateValidator_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, commission, 2) \ + X(a, CALLBACK, SINGULAR, STRING, min_self_delegation, 3) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 4) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, pubkey, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 7) +#define cosmos_staking_v1beta1_MsgCreateValidator_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgCreateValidator_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgCreateValidator_description_MSGTYPE cosmos_staking_v1beta1_Description +#define cosmos_staking_v1beta1_MsgCreateValidator_commission_MSGTYPE cosmos_staking_v1beta1_CommissionRates +#define cosmos_staking_v1beta1_MsgCreateValidator_pubkey_MSGTYPE google_protobuf_Any +#define cosmos_staking_v1beta1_MsgCreateValidator_value_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_DEFAULT NULL + +#define cosmos_staking_v1beta1_MsgEditValidator_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, commission_rate, 3) \ + X(a, CALLBACK, SINGULAR, STRING, min_self_delegation, 4) +#define cosmos_staking_v1beta1_MsgEditValidator_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgEditValidator_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgEditValidator_description_MSGTYPE cosmos_staking_v1beta1_Description + +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_DEFAULT NULL + +#define cosmos_staking_v1beta1_MsgDelegate_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) +#define cosmos_staking_v1beta1_MsgDelegate_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgDelegate_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgDelegate_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgDelegateResponse_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_MsgDelegateResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgDelegateResponse_DEFAULT NULL + +#define cosmos_staking_v1beta1_MsgBeginRedelegate_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_src_address, 2) \ + X(a, CALLBACK, SINGULAR, STRING, validator_dst_address, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 4) +#define cosmos_staking_v1beta1_MsgBeginRedelegate_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgBeginRedelegate_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgBeginRedelegate_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, completion_time, 1) +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_completion_time_MSGTYPE google_protobuf_Timestamp + +#define cosmos_staking_v1beta1_MsgUndelegate_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) +#define cosmos_staking_v1beta1_MsgUndelegate_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgUndelegate_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgUndelegate_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgUndelegateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, completion_time, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 2) +#define cosmos_staking_v1beta1_MsgUndelegateResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgUndelegateResponse_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgUndelegateResponse_completion_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_staking_v1beta1_MsgUndelegateResponse_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, delegator_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, validator_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) \ + X(a, STATIC, SINGULAR, INT64, creation_height, 4) +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_DEFAULT NULL + +#define cosmos_staking_v1beta1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define cosmos_staking_v1beta1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define cosmos_staking_v1beta1_MsgUpdateParams_DEFAULT NULL +#define cosmos_staking_v1beta1_MsgUpdateParams_params_MSGTYPE cosmos_staking_v1beta1_Params + +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_CALLBACK NULL +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgCreateValidator_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgCreateValidatorResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgEditValidator_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgEditValidatorResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgDelegate_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgDelegateResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgBeginRedelegate_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgBeginRedelegateResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgUndelegate_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgUndelegateResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgUpdateParams_msg; +extern const pb_msgdesc_t cosmos_staking_v1beta1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_staking_v1beta1_MsgCreateValidator_fields &cosmos_staking_v1beta1_MsgCreateValidator_msg +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_fields &cosmos_staking_v1beta1_MsgCreateValidatorResponse_msg +#define cosmos_staking_v1beta1_MsgEditValidator_fields &cosmos_staking_v1beta1_MsgEditValidator_msg +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_fields &cosmos_staking_v1beta1_MsgEditValidatorResponse_msg +#define cosmos_staking_v1beta1_MsgDelegate_fields &cosmos_staking_v1beta1_MsgDelegate_msg +#define cosmos_staking_v1beta1_MsgDelegateResponse_fields &cosmos_staking_v1beta1_MsgDelegateResponse_msg +#define cosmos_staking_v1beta1_MsgBeginRedelegate_fields &cosmos_staking_v1beta1_MsgBeginRedelegate_msg +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_fields &cosmos_staking_v1beta1_MsgBeginRedelegateResponse_msg +#define cosmos_staking_v1beta1_MsgUndelegate_fields &cosmos_staking_v1beta1_MsgUndelegate_msg +#define cosmos_staking_v1beta1_MsgUndelegateResponse_fields &cosmos_staking_v1beta1_MsgUndelegateResponse_msg +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_fields &cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_msg +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_fields \ + &cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_msg +#define cosmos_staking_v1beta1_MsgUpdateParams_fields &cosmos_staking_v1beta1_MsgUpdateParams_msg +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_fields &cosmos_staking_v1beta1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_staking_v1beta1_MsgCreateValidator_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgEditValidator_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgDelegate_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgBeginRedelegate_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgUndelegate_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgCancelUnbondingDelegation_size depends on runtime parameters */ +/* cosmos_staking_v1beta1_MsgUpdateParams_size depends on runtime parameters */ +#define cosmos_staking_v1beta1_MsgBeginRedelegateResponse_size 24 +#define cosmos_staking_v1beta1_MsgCancelUnbondingDelegationResponse_size 0 +#define cosmos_staking_v1beta1_MsgCreateValidatorResponse_size 0 +#define cosmos_staking_v1beta1_MsgDelegateResponse_size 0 +#define cosmos_staking_v1beta1_MsgEditValidatorResponse_size 0 +#define cosmos_staking_v1beta1_MsgUpdateParamsResponse_size 0 +#if defined(cosmos_base_v1beta1_Coin_size) +#define COSMOS_STAKING_V1BETA1_COSMOS_STAKING_V1BETA1_TX_PB_H_MAX_SIZE cosmos_staking_v1beta1_MsgUndelegateResponse_size +#define cosmos_staking_v1beta1_MsgUndelegateResponse_size (30 + cosmos_base_v1beta1_Coin_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.c b/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.c new file mode 100644 index 0000000..d23dc21 --- /dev/null +++ b/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/store/internal/kv/v1beta1/kv.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_store_internal_kv_v1beta1_Pairs, cosmos_store_internal_kv_v1beta1_Pairs, AUTO) + +PB_BIND(cosmos_store_internal_kv_v1beta1_Pair, cosmos_store_internal_kv_v1beta1_Pair, AUTO) diff --git a/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.h b/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.h new file mode 100644 index 0000000..922858d --- /dev/null +++ b/app/src/protobuf/cosmos/store/internal/kv/v1beta1/kv.pb.h @@ -0,0 +1,80 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STORE_INTERNAL_KV_V1BETA1_COSMOS_STORE_INTERNAL_KV_V1BETA1_KV_PB_H_INCLUDED +#define PB_COSMOS_STORE_INTERNAL_KV_V1BETA1_COSMOS_STORE_INTERNAL_KV_V1BETA1_KV_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Pairs defines a repeated slice of Pair objects. */ +typedef struct _cosmos_store_internal_kv_v1beta1_Pairs { + pb_callback_t pairs; +} cosmos_store_internal_kv_v1beta1_Pairs; + +/* Pair defines a key/value bytes tuple. */ +typedef struct _cosmos_store_internal_kv_v1beta1_Pair { + pb_callback_t key; + pb_callback_t value; +} cosmos_store_internal_kv_v1beta1_Pair; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_store_internal_kv_v1beta1_Pairs_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_internal_kv_v1beta1_Pair_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_store_internal_kv_v1beta1_Pairs_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_internal_kv_v1beta1_Pair_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_store_internal_kv_v1beta1_Pairs_pairs_tag 1 +#define cosmos_store_internal_kv_v1beta1_Pair_key_tag 1 +#define cosmos_store_internal_kv_v1beta1_Pair_value_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_store_internal_kv_v1beta1_Pairs_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, pairs, 1) +#define cosmos_store_internal_kv_v1beta1_Pairs_CALLBACK pb_default_field_callback +#define cosmos_store_internal_kv_v1beta1_Pairs_DEFAULT NULL +#define cosmos_store_internal_kv_v1beta1_Pairs_pairs_MSGTYPE cosmos_store_internal_kv_v1beta1_Pair + +#define cosmos_store_internal_kv_v1beta1_Pair_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) +#define cosmos_store_internal_kv_v1beta1_Pair_CALLBACK pb_default_field_callback +#define cosmos_store_internal_kv_v1beta1_Pair_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_store_internal_kv_v1beta1_Pairs_msg; +extern const pb_msgdesc_t cosmos_store_internal_kv_v1beta1_Pair_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_store_internal_kv_v1beta1_Pairs_fields &cosmos_store_internal_kv_v1beta1_Pairs_msg +#define cosmos_store_internal_kv_v1beta1_Pair_fields &cosmos_store_internal_kv_v1beta1_Pair_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_store_internal_kv_v1beta1_Pairs_size depends on runtime parameters */ +/* cosmos_store_internal_kv_v1beta1_Pair_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.c b/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.c new file mode 100644 index 0000000..ec1910e --- /dev/null +++ b/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/store/snapshots/v1/snapshot.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_store_snapshots_v1_Snapshot, cosmos_store_snapshots_v1_Snapshot, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_Metadata, cosmos_store_snapshots_v1_Metadata, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_SnapshotItem, cosmos_store_snapshots_v1_SnapshotItem, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_SnapshotStoreItem, cosmos_store_snapshots_v1_SnapshotStoreItem, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_SnapshotIAVLItem, cosmos_store_snapshots_v1_SnapshotIAVLItem, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_SnapshotExtensionMeta, cosmos_store_snapshots_v1_SnapshotExtensionMeta, AUTO) + +PB_BIND(cosmos_store_snapshots_v1_SnapshotExtensionPayload, cosmos_store_snapshots_v1_SnapshotExtensionPayload, AUTO) diff --git a/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.h b/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.h new file mode 100644 index 0000000..d60a63c --- /dev/null +++ b/app/src/protobuf/cosmos/store/snapshots/v1/snapshot.pb.h @@ -0,0 +1,227 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STORE_SNAPSHOTS_V1_COSMOS_STORE_SNAPSHOTS_V1_SNAPSHOT_PB_H_INCLUDED +#define PB_COSMOS_STORE_SNAPSHOTS_V1_COSMOS_STORE_SNAPSHOTS_V1_SNAPSHOT_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Metadata contains SDK-specific snapshot metadata. */ +typedef struct _cosmos_store_snapshots_v1_Metadata { + pb_callback_t chunk_hashes; /* SHA-256 chunk hashes */ +} cosmos_store_snapshots_v1_Metadata; + +/* Snapshot contains Tendermint state sync snapshot info. */ +typedef struct _cosmos_store_snapshots_v1_Snapshot { + uint64_t height; + uint32_t format; + uint32_t chunks; + pb_callback_t hash; + bool has_metadata; + cosmos_store_snapshots_v1_Metadata metadata; +} cosmos_store_snapshots_v1_Snapshot; + +/* SnapshotStoreItem contains metadata about a snapshotted store. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_store_snapshots_v1_SnapshotStoreItem { + pb_callback_t name; +} cosmos_store_snapshots_v1_SnapshotStoreItem; + +/* SnapshotIAVLItem is an exported IAVL node. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_store_snapshots_v1_SnapshotIAVLItem { + pb_callback_t key; + pb_callback_t value; + /* version is block height */ + int64_t version; + /* height is depth of the tree. */ + int32_t height; +} cosmos_store_snapshots_v1_SnapshotIAVLItem; + +/* SnapshotExtensionMeta contains metadata about an external snapshotter. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_store_snapshots_v1_SnapshotExtensionMeta { + pb_callback_t name; + uint32_t format; +} cosmos_store_snapshots_v1_SnapshotExtensionMeta; + +/* SnapshotExtensionPayload contains payloads of an external snapshotter. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_store_snapshots_v1_SnapshotExtensionPayload { + pb_callback_t payload; +} cosmos_store_snapshots_v1_SnapshotExtensionPayload; + +/* SnapshotItem is an item contained in a rootmulti.Store snapshot. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_store_snapshots_v1_SnapshotItem { + pb_size_t which_item; + union { + cosmos_store_snapshots_v1_SnapshotStoreItem store; + cosmos_store_snapshots_v1_SnapshotIAVLItem iavl; + cosmos_store_snapshots_v1_SnapshotExtensionMeta extension; + cosmos_store_snapshots_v1_SnapshotExtensionPayload extension_payload; + } item; +} cosmos_store_snapshots_v1_SnapshotItem; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_store_snapshots_v1_Snapshot_init_default \ + { 0, 0, 0, {{NULL}, NULL}, false, cosmos_store_snapshots_v1_Metadata_init_default } +#define cosmos_store_snapshots_v1_Metadata_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_snapshots_v1_SnapshotItem_init_default \ + { \ + 0, { cosmos_store_snapshots_v1_SnapshotStoreItem_init_default } \ + } +#define cosmos_store_snapshots_v1_SnapshotStoreItem_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_snapshots_v1_Snapshot_init_zero \ + { 0, 0, 0, {{NULL}, NULL}, false, cosmos_store_snapshots_v1_Metadata_init_zero } +#define cosmos_store_snapshots_v1_Metadata_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_snapshots_v1_SnapshotItem_init_zero \ + { \ + 0, { cosmos_store_snapshots_v1_SnapshotStoreItem_init_zero } \ + } +#define cosmos_store_snapshots_v1_SnapshotStoreItem_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_init_zero \ + { {{NULL}, NULL}, 0 } +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_store_snapshots_v1_Metadata_chunk_hashes_tag 1 +#define cosmos_store_snapshots_v1_Snapshot_height_tag 1 +#define cosmos_store_snapshots_v1_Snapshot_format_tag 2 +#define cosmos_store_snapshots_v1_Snapshot_chunks_tag 3 +#define cosmos_store_snapshots_v1_Snapshot_hash_tag 4 +#define cosmos_store_snapshots_v1_Snapshot_metadata_tag 5 +#define cosmos_store_snapshots_v1_SnapshotStoreItem_name_tag 1 +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_key_tag 1 +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_value_tag 2 +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_version_tag 3 +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_height_tag 4 +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_name_tag 1 +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_format_tag 2 +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_payload_tag 1 +#define cosmos_store_snapshots_v1_SnapshotItem_store_tag 1 +#define cosmos_store_snapshots_v1_SnapshotItem_iavl_tag 2 +#define cosmos_store_snapshots_v1_SnapshotItem_extension_tag 3 +#define cosmos_store_snapshots_v1_SnapshotItem_extension_payload_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_store_snapshots_v1_Snapshot_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, SINGULAR, UINT32, format, 2) \ + X(a, STATIC, SINGULAR, UINT32, chunks, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, metadata, 5) +#define cosmos_store_snapshots_v1_Snapshot_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_Snapshot_DEFAULT NULL +#define cosmos_store_snapshots_v1_Snapshot_metadata_MSGTYPE cosmos_store_snapshots_v1_Metadata + +#define cosmos_store_snapshots_v1_Metadata_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, chunk_hashes, 1) +#define cosmos_store_snapshots_v1_Metadata_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_Metadata_DEFAULT NULL + +#define cosmos_store_snapshots_v1_SnapshotItem_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (item, store, item.store), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (item, iavl, item.iavl), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (item, extension, item.extension), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (item, extension_payload, item.extension_payload), 4) +#define cosmos_store_snapshots_v1_SnapshotItem_CALLBACK NULL +#define cosmos_store_snapshots_v1_SnapshotItem_DEFAULT NULL +#define cosmos_store_snapshots_v1_SnapshotItem_item_store_MSGTYPE cosmos_store_snapshots_v1_SnapshotStoreItem +#define cosmos_store_snapshots_v1_SnapshotItem_item_iavl_MSGTYPE cosmos_store_snapshots_v1_SnapshotIAVLItem +#define cosmos_store_snapshots_v1_SnapshotItem_item_extension_MSGTYPE cosmos_store_snapshots_v1_SnapshotExtensionMeta +#define cosmos_store_snapshots_v1_SnapshotItem_item_extension_payload_MSGTYPE \ + cosmos_store_snapshots_v1_SnapshotExtensionPayload + +#define cosmos_store_snapshots_v1_SnapshotStoreItem_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, name, 1) +#define cosmos_store_snapshots_v1_SnapshotStoreItem_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_SnapshotStoreItem_DEFAULT NULL + +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, SINGULAR, INT64, version, 3) \ + X(a, STATIC, SINGULAR, INT32, height, 4) +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_DEFAULT NULL + +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, SINGULAR, UINT32, format, 2) +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_DEFAULT NULL + +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, payload, 1) +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_CALLBACK pb_default_field_callback +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_store_snapshots_v1_Snapshot_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_Metadata_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_SnapshotItem_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_SnapshotStoreItem_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_SnapshotIAVLItem_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_SnapshotExtensionMeta_msg; +extern const pb_msgdesc_t cosmos_store_snapshots_v1_SnapshotExtensionPayload_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_store_snapshots_v1_Snapshot_fields &cosmos_store_snapshots_v1_Snapshot_msg +#define cosmos_store_snapshots_v1_Metadata_fields &cosmos_store_snapshots_v1_Metadata_msg +#define cosmos_store_snapshots_v1_SnapshotItem_fields &cosmos_store_snapshots_v1_SnapshotItem_msg +#define cosmos_store_snapshots_v1_SnapshotStoreItem_fields &cosmos_store_snapshots_v1_SnapshotStoreItem_msg +#define cosmos_store_snapshots_v1_SnapshotIAVLItem_fields &cosmos_store_snapshots_v1_SnapshotIAVLItem_msg +#define cosmos_store_snapshots_v1_SnapshotExtensionMeta_fields &cosmos_store_snapshots_v1_SnapshotExtensionMeta_msg +#define cosmos_store_snapshots_v1_SnapshotExtensionPayload_fields &cosmos_store_snapshots_v1_SnapshotExtensionPayload_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_store_snapshots_v1_Snapshot_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_Metadata_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_SnapshotItem_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_SnapshotStoreItem_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_SnapshotIAVLItem_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_SnapshotExtensionMeta_size depends on runtime parameters */ +/* cosmos_store_snapshots_v1_SnapshotExtensionPayload_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.c b/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.c new file mode 100644 index 0000000..0c768d4 --- /dev/null +++ b/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.c @@ -0,0 +1,23 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/store/streaming/abci/grpc.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_store_streaming_abci_ListenBeginBlockRequest, cosmos_store_streaming_abci_ListenBeginBlockRequest, 2) + +PB_BIND(cosmos_store_streaming_abci_ListenBeginBlockResponse, cosmos_store_streaming_abci_ListenBeginBlockResponse, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenEndBlockRequest, cosmos_store_streaming_abci_ListenEndBlockRequest, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenEndBlockResponse, cosmos_store_streaming_abci_ListenEndBlockResponse, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenDeliverTxRequest, cosmos_store_streaming_abci_ListenDeliverTxRequest, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenDeliverTxResponse, cosmos_store_streaming_abci_ListenDeliverTxResponse, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenCommitRequest, cosmos_store_streaming_abci_ListenCommitRequest, AUTO) + +PB_BIND(cosmos_store_streaming_abci_ListenCommitResponse, cosmos_store_streaming_abci_ListenCommitResponse, AUTO) diff --git a/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.h b/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.h new file mode 100644 index 0000000..cbe6dac --- /dev/null +++ b/app/src/protobuf/cosmos/store/streaming/abci/grpc.pb.h @@ -0,0 +1,223 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STORE_STREAMING_ABCI_COSMOS_STORE_STREAMING_ABCI_GRPC_PB_H_INCLUDED +#define PB_COSMOS_STORE_STREAMING_ABCI_COSMOS_STORE_STREAMING_ABCI_GRPC_PB_H_INCLUDED +#include + +#include "cosmos/store/v1beta1/listening.pb.h" +#include "tendermint/abci/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ListenBeginBlockRequest is the request type for the ListenBeginBlock RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenBeginBlockRequest { + bool has_req; + tendermint_abci_RequestBeginBlock req; + bool has_res; + tendermint_abci_ResponseBeginBlock res; +} cosmos_store_streaming_abci_ListenBeginBlockRequest; + +/* ListenBeginBlockResponse is the response type for the ListenBeginBlock RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenBeginBlockResponse { + char dummy_field; +} cosmos_store_streaming_abci_ListenBeginBlockResponse; + +/* ListenEndBlockRequest is the request type for the ListenEndBlock RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenEndBlockRequest { + bool has_req; + tendermint_abci_RequestEndBlock req; + bool has_res; + tendermint_abci_ResponseEndBlock res; +} cosmos_store_streaming_abci_ListenEndBlockRequest; + +/* ListenEndBlockResponse is the response type for the ListenEndBlock RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenEndBlockResponse { + char dummy_field; +} cosmos_store_streaming_abci_ListenEndBlockResponse; + +/* ListenDeliverTxRequest is the request type for the ListenDeliverTx RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenDeliverTxRequest { + /* explicitly pass in block height as neither RequestDeliverTx or ResponseDeliverTx contain it */ + int64_t block_height; + bool has_req; + tendermint_abci_RequestDeliverTx req; + bool has_res; + tendermint_abci_ResponseDeliverTx res; +} cosmos_store_streaming_abci_ListenDeliverTxRequest; + +/* ListenDeliverTxResponse is the response type for the ListenDeliverTx RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenDeliverTxResponse { + char dummy_field; +} cosmos_store_streaming_abci_ListenDeliverTxResponse; + +/* ListenCommitRequest is the request type for the ListenCommit RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenCommitRequest { + /* explicitly pass in block height as ResponseCommit does not contain this info */ + int64_t block_height; + bool has_res; + tendermint_abci_ResponseCommit res; + pb_callback_t change_set; +} cosmos_store_streaming_abci_ListenCommitRequest; + +/* ListenCommitResponse is the response type for the ListenCommit RPC method */ +typedef struct _cosmos_store_streaming_abci_ListenCommitResponse { + char dummy_field; +} cosmos_store_streaming_abci_ListenCommitResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_init_default \ + { false, tendermint_abci_RequestBeginBlock_init_default, false, tendermint_abci_ResponseBeginBlock_init_default } +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_init_default \ + { 0 } +#define cosmos_store_streaming_abci_ListenEndBlockRequest_init_default \ + { false, tendermint_abci_RequestEndBlock_init_default, false, tendermint_abci_ResponseEndBlock_init_default } +#define cosmos_store_streaming_abci_ListenEndBlockResponse_init_default \ + { 0 } +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_init_default \ + { 0, false, tendermint_abci_RequestDeliverTx_init_default, false, tendermint_abci_ResponseDeliverTx_init_default } +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_init_default \ + { 0 } +#define cosmos_store_streaming_abci_ListenCommitRequest_init_default \ + { \ + 0, false, tendermint_abci_ResponseCommit_init_default, { {NULL}, NULL } \ + } +#define cosmos_store_streaming_abci_ListenCommitResponse_init_default \ + { 0 } +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_init_zero \ + { false, tendermint_abci_RequestBeginBlock_init_zero, false, tendermint_abci_ResponseBeginBlock_init_zero } +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_init_zero \ + { 0 } +#define cosmos_store_streaming_abci_ListenEndBlockRequest_init_zero \ + { false, tendermint_abci_RequestEndBlock_init_zero, false, tendermint_abci_ResponseEndBlock_init_zero } +#define cosmos_store_streaming_abci_ListenEndBlockResponse_init_zero \ + { 0 } +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_init_zero \ + { 0, false, tendermint_abci_RequestDeliverTx_init_zero, false, tendermint_abci_ResponseDeliverTx_init_zero } +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_init_zero \ + { 0 } +#define cosmos_store_streaming_abci_ListenCommitRequest_init_zero \ + { \ + 0, false, tendermint_abci_ResponseCommit_init_zero, { {NULL}, NULL } \ + } +#define cosmos_store_streaming_abci_ListenCommitResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_req_tag 1 +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_res_tag 2 +#define cosmos_store_streaming_abci_ListenEndBlockRequest_req_tag 1 +#define cosmos_store_streaming_abci_ListenEndBlockRequest_res_tag 2 +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_block_height_tag 1 +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_req_tag 2 +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_res_tag 3 +#define cosmos_store_streaming_abci_ListenCommitRequest_block_height_tag 1 +#define cosmos_store_streaming_abci_ListenCommitRequest_res_tag 2 +#define cosmos_store_streaming_abci_ListenCommitRequest_change_set_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, req, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, res, 2) +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_DEFAULT NULL +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_req_MSGTYPE tendermint_abci_RequestBeginBlock +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_res_MSGTYPE tendermint_abci_ResponseBeginBlock + +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_FIELDLIST(X, a) + +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_DEFAULT NULL + +#define cosmos_store_streaming_abci_ListenEndBlockRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, req, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, res, 2) +#define cosmos_store_streaming_abci_ListenEndBlockRequest_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenEndBlockRequest_DEFAULT NULL +#define cosmos_store_streaming_abci_ListenEndBlockRequest_req_MSGTYPE tendermint_abci_RequestEndBlock +#define cosmos_store_streaming_abci_ListenEndBlockRequest_res_MSGTYPE tendermint_abci_ResponseEndBlock + +#define cosmos_store_streaming_abci_ListenEndBlockResponse_FIELDLIST(X, a) + +#define cosmos_store_streaming_abci_ListenEndBlockResponse_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenEndBlockResponse_DEFAULT NULL + +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, block_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, req, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, res, 3) +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_DEFAULT NULL +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_req_MSGTYPE tendermint_abci_RequestDeliverTx +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_res_MSGTYPE tendermint_abci_ResponseDeliverTx + +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_FIELDLIST(X, a) + +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_DEFAULT NULL + +#define cosmos_store_streaming_abci_ListenCommitRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, block_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, res, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, change_set, 3) +#define cosmos_store_streaming_abci_ListenCommitRequest_CALLBACK pb_default_field_callback +#define cosmos_store_streaming_abci_ListenCommitRequest_DEFAULT NULL +#define cosmos_store_streaming_abci_ListenCommitRequest_res_MSGTYPE tendermint_abci_ResponseCommit +#define cosmos_store_streaming_abci_ListenCommitRequest_change_set_MSGTYPE cosmos_store_v1beta1_StoreKVPair + +#define cosmos_store_streaming_abci_ListenCommitResponse_FIELDLIST(X, a) + +#define cosmos_store_streaming_abci_ListenCommitResponse_CALLBACK NULL +#define cosmos_store_streaming_abci_ListenCommitResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenBeginBlockRequest_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenBeginBlockResponse_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenEndBlockRequest_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenEndBlockResponse_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenDeliverTxRequest_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenDeliverTxResponse_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenCommitRequest_msg; +extern const pb_msgdesc_t cosmos_store_streaming_abci_ListenCommitResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_fields &cosmos_store_streaming_abci_ListenBeginBlockRequest_msg +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_fields &cosmos_store_streaming_abci_ListenBeginBlockResponse_msg +#define cosmos_store_streaming_abci_ListenEndBlockRequest_fields &cosmos_store_streaming_abci_ListenEndBlockRequest_msg +#define cosmos_store_streaming_abci_ListenEndBlockResponse_fields &cosmos_store_streaming_abci_ListenEndBlockResponse_msg +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_fields &cosmos_store_streaming_abci_ListenDeliverTxRequest_msg +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_fields &cosmos_store_streaming_abci_ListenDeliverTxResponse_msg +#define cosmos_store_streaming_abci_ListenCommitRequest_fields &cosmos_store_streaming_abci_ListenCommitRequest_msg +#define cosmos_store_streaming_abci_ListenCommitResponse_fields &cosmos_store_streaming_abci_ListenCommitResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_store_streaming_abci_ListenCommitRequest_size depends on runtime parameters */ +#if defined(tendermint_abci_RequestBeginBlock_size) && defined(tendermint_abci_ResponseBeginBlock_size) +#define cosmos_store_streaming_abci_ListenBeginBlockRequest_size \ + (12 + tendermint_abci_RequestBeginBlock_size + tendermint_abci_ResponseBeginBlock_size) +#endif +#define cosmos_store_streaming_abci_ListenBeginBlockResponse_size 0 +#define cosmos_store_streaming_abci_ListenCommitResponse_size 0 +#define cosmos_store_streaming_abci_ListenDeliverTxResponse_size 0 +#define cosmos_store_streaming_abci_ListenEndBlockResponse_size 0 +#if defined(tendermint_abci_ResponseEndBlock_size) +#define cosmos_store_streaming_abci_ListenEndBlockRequest_size (19 + tendermint_abci_ResponseEndBlock_size) +#endif +#if defined(tendermint_abci_RequestDeliverTx_size) && defined(tendermint_abci_ResponseDeliverTx_size) +#define COSMOS_STORE_STREAMING_ABCI_COSMOS_STORE_STREAMING_ABCI_GRPC_PB_H_MAX_SIZE \ + cosmos_store_streaming_abci_ListenDeliverTxRequest_size +#define cosmos_store_streaming_abci_ListenDeliverTxRequest_size \ + (23 + tendermint_abci_RequestDeliverTx_size + tendermint_abci_ResponseDeliverTx_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.c b/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.c new file mode 100644 index 0000000..15998b6 --- /dev/null +++ b/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/store/v1beta1/commit_info.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_store_v1beta1_CommitInfo, cosmos_store_v1beta1_CommitInfo, AUTO) + +PB_BIND(cosmos_store_v1beta1_StoreInfo, cosmos_store_v1beta1_StoreInfo, AUTO) + +PB_BIND(cosmos_store_v1beta1_CommitID, cosmos_store_v1beta1_CommitID, AUTO) diff --git a/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.h b/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.h new file mode 100644 index 0000000..38524e2 --- /dev/null +++ b/app/src/protobuf/cosmos/store/v1beta1/commit_info.pb.h @@ -0,0 +1,112 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STORE_V1BETA1_COSMOS_STORE_V1BETA1_COMMIT_INFO_PB_H_INCLUDED +#define PB_COSMOS_STORE_V1BETA1_COSMOS_STORE_V1BETA1_COMMIT_INFO_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* CommitInfo defines commit information used by the multi-store when committing + a version/height. */ +typedef struct _cosmos_store_v1beta1_CommitInfo { + int64_t version; + pb_callback_t store_infos; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} cosmos_store_v1beta1_CommitInfo; + +/* CommitID defines the commitment information when a specific store is + committed. */ +typedef struct _cosmos_store_v1beta1_CommitID { + int64_t version; + pb_callback_t hash; +} cosmos_store_v1beta1_CommitID; + +/* StoreInfo defines store-specific commit information. It contains a reference + between a store name and the commit ID. */ +typedef struct _cosmos_store_v1beta1_StoreInfo { + pb_callback_t name; + bool has_commit_id; + cosmos_store_v1beta1_CommitID commit_id; +} cosmos_store_v1beta1_StoreInfo; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_store_v1beta1_CommitInfo_init_default \ + { 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default } +#define cosmos_store_v1beta1_StoreInfo_init_default \ + { {{NULL}, NULL}, false, cosmos_store_v1beta1_CommitID_init_default } +#define cosmos_store_v1beta1_CommitID_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_store_v1beta1_CommitInfo_init_zero \ + { 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero } +#define cosmos_store_v1beta1_StoreInfo_init_zero \ + { {{NULL}, NULL}, false, cosmos_store_v1beta1_CommitID_init_zero } +#define cosmos_store_v1beta1_CommitID_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_store_v1beta1_CommitInfo_version_tag 1 +#define cosmos_store_v1beta1_CommitInfo_store_infos_tag 2 +#define cosmos_store_v1beta1_CommitInfo_timestamp_tag 3 +#define cosmos_store_v1beta1_CommitID_version_tag 1 +#define cosmos_store_v1beta1_CommitID_hash_tag 2 +#define cosmos_store_v1beta1_StoreInfo_name_tag 1 +#define cosmos_store_v1beta1_StoreInfo_commit_id_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_store_v1beta1_CommitInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, version, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, store_infos, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) +#define cosmos_store_v1beta1_CommitInfo_CALLBACK pb_default_field_callback +#define cosmos_store_v1beta1_CommitInfo_DEFAULT NULL +#define cosmos_store_v1beta1_CommitInfo_store_infos_MSGTYPE cosmos_store_v1beta1_StoreInfo +#define cosmos_store_v1beta1_CommitInfo_timestamp_MSGTYPE google_protobuf_Timestamp + +#define cosmos_store_v1beta1_StoreInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, commit_id, 2) +#define cosmos_store_v1beta1_StoreInfo_CALLBACK pb_default_field_callback +#define cosmos_store_v1beta1_StoreInfo_DEFAULT NULL +#define cosmos_store_v1beta1_StoreInfo_commit_id_MSGTYPE cosmos_store_v1beta1_CommitID + +#define cosmos_store_v1beta1_CommitID_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, version, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 2) +#define cosmos_store_v1beta1_CommitID_CALLBACK pb_default_field_callback +#define cosmos_store_v1beta1_CommitID_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_store_v1beta1_CommitInfo_msg; +extern const pb_msgdesc_t cosmos_store_v1beta1_StoreInfo_msg; +extern const pb_msgdesc_t cosmos_store_v1beta1_CommitID_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_store_v1beta1_CommitInfo_fields &cosmos_store_v1beta1_CommitInfo_msg +#define cosmos_store_v1beta1_StoreInfo_fields &cosmos_store_v1beta1_StoreInfo_msg +#define cosmos_store_v1beta1_CommitID_fields &cosmos_store_v1beta1_CommitID_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_store_v1beta1_CommitInfo_size depends on runtime parameters */ +/* cosmos_store_v1beta1_StoreInfo_size depends on runtime parameters */ +/* cosmos_store_v1beta1_CommitID_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/store/v1beta1/listening.pb.c b/app/src/protobuf/cosmos/store/v1beta1/listening.pb.c new file mode 100644 index 0000000..392169e --- /dev/null +++ b/app/src/protobuf/cosmos/store/v1beta1/listening.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/store/v1beta1/listening.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_store_v1beta1_StoreKVPair, cosmos_store_v1beta1_StoreKVPair, AUTO) + +PB_BIND(cosmos_store_v1beta1_BlockMetadata, cosmos_store_v1beta1_BlockMetadata, 2) + +PB_BIND(cosmos_store_v1beta1_BlockMetadata_DeliverTx, cosmos_store_v1beta1_BlockMetadata_DeliverTx, AUTO) diff --git a/app/src/protobuf/cosmos/store/v1beta1/listening.pb.h b/app/src/protobuf/cosmos/store/v1beta1/listening.pb.h new file mode 100644 index 0000000..5fa6c20 --- /dev/null +++ b/app/src/protobuf/cosmos/store/v1beta1/listening.pb.h @@ -0,0 +1,150 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_STORE_V1BETA1_COSMOS_STORE_V1BETA1_LISTENING_PB_H_INCLUDED +#define PB_COSMOS_STORE_V1BETA1_COSMOS_STORE_V1BETA1_LISTENING_PB_H_INCLUDED +#include + +#include "tendermint/abci/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes) + It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and + Deletes + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_store_v1beta1_StoreKVPair { + pb_callback_t store_key; /* the store key for the KVStore this pair originates from */ + bool delete; /* true indicates a delete operation, false indicates a set operation */ + pb_callback_t key; + pb_callback_t value; +} cosmos_store_v1beta1_StoreKVPair; + +/* BlockMetadata contains all the abci event data of a block + the file streamer dump them into files together with the state changes. */ +typedef struct _cosmos_store_v1beta1_BlockMetadata { + bool has_request_begin_block; + tendermint_abci_RequestBeginBlock request_begin_block; + bool has_response_begin_block; + tendermint_abci_ResponseBeginBlock response_begin_block; + pb_callback_t deliver_txs; + bool has_request_end_block; + tendermint_abci_RequestEndBlock request_end_block; + bool has_response_end_block; + tendermint_abci_ResponseEndBlock response_end_block; + bool has_response_commit; + tendermint_abci_ResponseCommit response_commit; +} cosmos_store_v1beta1_BlockMetadata; + +/* DeliverTx encapulate deliver tx request and response. */ +typedef struct _cosmos_store_v1beta1_BlockMetadata_DeliverTx { + bool has_request; + tendermint_abci_RequestDeliverTx request; + bool has_response; + tendermint_abci_ResponseDeliverTx response; +} cosmos_store_v1beta1_BlockMetadata_DeliverTx; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_store_v1beta1_StoreKVPair_init_default \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_store_v1beta1_BlockMetadata_init_default \ + { \ + false, tendermint_abci_RequestBeginBlock_init_default, false, tendermint_abci_ResponseBeginBlock_init_default, \ + {{NULL}, NULL}, false, tendermint_abci_RequestEndBlock_init_default, false, \ + tendermint_abci_ResponseEndBlock_init_default, false, tendermint_abci_ResponseCommit_init_default \ + } +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_init_default \ + { false, tendermint_abci_RequestDeliverTx_init_default, false, tendermint_abci_ResponseDeliverTx_init_default } +#define cosmos_store_v1beta1_StoreKVPair_init_zero \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_store_v1beta1_BlockMetadata_init_zero \ + { \ + false, tendermint_abci_RequestBeginBlock_init_zero, false, tendermint_abci_ResponseBeginBlock_init_zero, \ + {{NULL}, NULL}, false, tendermint_abci_RequestEndBlock_init_zero, false, \ + tendermint_abci_ResponseEndBlock_init_zero, false, tendermint_abci_ResponseCommit_init_zero \ + } +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_init_zero \ + { false, tendermint_abci_RequestDeliverTx_init_zero, false, tendermint_abci_ResponseDeliverTx_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_store_v1beta1_StoreKVPair_store_key_tag 1 +#define cosmos_store_v1beta1_StoreKVPair_delete_tag 2 +#define cosmos_store_v1beta1_StoreKVPair_key_tag 3 +#define cosmos_store_v1beta1_StoreKVPair_value_tag 4 +#define cosmos_store_v1beta1_BlockMetadata_request_begin_block_tag 1 +#define cosmos_store_v1beta1_BlockMetadata_response_begin_block_tag 2 +#define cosmos_store_v1beta1_BlockMetadata_deliver_txs_tag 3 +#define cosmos_store_v1beta1_BlockMetadata_request_end_block_tag 4 +#define cosmos_store_v1beta1_BlockMetadata_response_end_block_tag 5 +#define cosmos_store_v1beta1_BlockMetadata_response_commit_tag 6 +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_request_tag 1 +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_response_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_store_v1beta1_StoreKVPair_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, store_key, 1) \ + X(a, STATIC, SINGULAR, BOOL, delete, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 4) +#define cosmos_store_v1beta1_StoreKVPair_CALLBACK pb_default_field_callback +#define cosmos_store_v1beta1_StoreKVPair_DEFAULT NULL + +#define cosmos_store_v1beta1_BlockMetadata_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, request_begin_block, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, response_begin_block, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, deliver_txs, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, request_end_block, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, response_end_block, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, response_commit, 6) +#define cosmos_store_v1beta1_BlockMetadata_CALLBACK pb_default_field_callback +#define cosmos_store_v1beta1_BlockMetadata_DEFAULT NULL +#define cosmos_store_v1beta1_BlockMetadata_request_begin_block_MSGTYPE tendermint_abci_RequestBeginBlock +#define cosmos_store_v1beta1_BlockMetadata_response_begin_block_MSGTYPE tendermint_abci_ResponseBeginBlock +#define cosmos_store_v1beta1_BlockMetadata_deliver_txs_MSGTYPE cosmos_store_v1beta1_BlockMetadata_DeliverTx +#define cosmos_store_v1beta1_BlockMetadata_request_end_block_MSGTYPE tendermint_abci_RequestEndBlock +#define cosmos_store_v1beta1_BlockMetadata_response_end_block_MSGTYPE tendermint_abci_ResponseEndBlock +#define cosmos_store_v1beta1_BlockMetadata_response_commit_MSGTYPE tendermint_abci_ResponseCommit + +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, request, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, response, 2) +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_CALLBACK NULL +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_DEFAULT NULL +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_request_MSGTYPE tendermint_abci_RequestDeliverTx +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_response_MSGTYPE tendermint_abci_ResponseDeliverTx + +extern const pb_msgdesc_t cosmos_store_v1beta1_StoreKVPair_msg; +extern const pb_msgdesc_t cosmos_store_v1beta1_BlockMetadata_msg; +extern const pb_msgdesc_t cosmos_store_v1beta1_BlockMetadata_DeliverTx_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_store_v1beta1_StoreKVPair_fields &cosmos_store_v1beta1_StoreKVPair_msg +#define cosmos_store_v1beta1_BlockMetadata_fields &cosmos_store_v1beta1_BlockMetadata_msg +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_fields &cosmos_store_v1beta1_BlockMetadata_DeliverTx_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_store_v1beta1_StoreKVPair_size depends on runtime parameters */ +/* cosmos_store_v1beta1_BlockMetadata_size depends on runtime parameters */ +#if defined(tendermint_abci_RequestDeliverTx_size) && defined(tendermint_abci_ResponseDeliverTx_size) +#define COSMOS_STORE_V1BETA1_COSMOS_STORE_V1BETA1_LISTENING_PB_H_MAX_SIZE cosmos_store_v1beta1_BlockMetadata_DeliverTx_size +#define cosmos_store_v1beta1_BlockMetadata_DeliverTx_size \ + (12 + tendermint_abci_RequestDeliverTx_size + tendermint_abci_ResponseDeliverTx_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/tx/config/v1/config.pb.c b/app/src/protobuf/cosmos/tx/config/v1/config.pb.c new file mode 100644 index 0000000..650681f --- /dev/null +++ b/app/src/protobuf/cosmos/tx/config/v1/config.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/tx/config/v1/config.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_tx_config_v1_Config, cosmos_tx_config_v1_Config, AUTO) diff --git a/app/src/protobuf/cosmos/tx/config/v1/config.pb.h b/app/src/protobuf/cosmos/tx/config/v1/config.pb.h new file mode 100644 index 0000000..cd7ed1a --- /dev/null +++ b/app/src/protobuf/cosmos/tx/config/v1/config.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_TX_CONFIG_V1_COSMOS_TX_CONFIG_V1_CONFIG_PB_H_INCLUDED +#define PB_COSMOS_TX_CONFIG_V1_COSMOS_TX_CONFIG_V1_CONFIG_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Config is the config object of the x/auth/tx package. */ +typedef struct _cosmos_tx_config_v1_Config { + /* skip_ante_handler defines whether the ante handler registration should be skipped in case an app wants to override + this functionality. */ + bool skip_ante_handler; + /* skip_post_handler defines whether the post handler registration should be skipped in case an app wants to override + this functionality. */ + bool skip_post_handler; +} cosmos_tx_config_v1_Config; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_tx_config_v1_Config_init_default \ + { 0, 0 } +#define cosmos_tx_config_v1_Config_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_tx_config_v1_Config_skip_ante_handler_tag 1 +#define cosmos_tx_config_v1_Config_skip_post_handler_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_tx_config_v1_Config_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, skip_ante_handler, 1) \ + X(a, STATIC, SINGULAR, BOOL, skip_post_handler, 2) +#define cosmos_tx_config_v1_Config_CALLBACK NULL +#define cosmos_tx_config_v1_Config_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_tx_config_v1_Config_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_tx_config_v1_Config_fields &cosmos_tx_config_v1_Config_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_TX_CONFIG_V1_COSMOS_TX_CONFIG_V1_CONFIG_PB_H_MAX_SIZE cosmos_tx_config_v1_Config_size +#define cosmos_tx_config_v1_Config_size 4 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.c b/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.c new file mode 100644 index 0000000..31effeb --- /dev/null +++ b/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/tx/signing/v1beta1/signing.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_tx_signing_v1beta1_SignatureDescriptors, cosmos_tx_signing_v1beta1_SignatureDescriptors, AUTO) + +PB_BIND(cosmos_tx_signing_v1beta1_SignatureDescriptor, cosmos_tx_signing_v1beta1_SignatureDescriptor, AUTO) + +PB_BIND(cosmos_tx_signing_v1beta1_SignatureDescriptor_Data, cosmos_tx_signing_v1beta1_SignatureDescriptor_Data, AUTO) + +PB_BIND(cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single, cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single, + AUTO) + +PB_BIND(cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi, cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi, + AUTO) diff --git a/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.h b/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.h new file mode 100644 index 0000000..cad4d2d --- /dev/null +++ b/app/src/protobuf/cosmos/tx/signing/v1beta1/signing.pb.h @@ -0,0 +1,240 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_TX_SIGNING_V1BETA1_COSMOS_TX_SIGNING_V1BETA1_SIGNING_PB_H_INCLUDED +#define PB_COSMOS_TX_SIGNING_V1BETA1_COSMOS_TX_SIGNING_V1BETA1_SIGNING_PB_H_INCLUDED +#include + +#include "cosmos/crypto/multisig/v1beta1/multisig.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* SignMode represents a signing mode with its own security guarantees. + + This enum should be considered a registry of all known sign modes + in the Cosmos ecosystem. Apps are not expected to support all known + sign modes. Apps that would like to support custom sign modes are + encouraged to open a small PR against this file to add a new case + to this SignMode enum describing their sign mode so that different + apps have a consistent version of this enum. */ +typedef enum _cosmos_tx_signing_v1beta1_SignMode { + /* SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + rejected. */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_UNSPECIFIED = 0, + /* SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + verified with raw bytes from Tx. */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_DIRECT = 1, + /* SIGN_MODE_TEXTUAL is a future signing mode that will verify some + human-readable textual representation on top of the binary representation + from SIGN_MODE_DIRECT. It is currently experimental, and should be used + for testing purposes only, until Textual is fully released. Please follow + the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970. */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_TEXTUAL = 2, + /* SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + require signers signing over other signers' `signer_info`. It also allows + for adding Tips in transactions. + + Since: cosmos-sdk 0.46 */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_DIRECT_AUX = 3, + /* SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + Amino JSON and will be removed in the future. */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_LEGACY_AMINO_JSON = 127, + /* SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + + Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant, + but is not implemented on the SDK by default. To enable EIP-191, you need + to pass a custom `TxConfig` that has an implementation of + `SignModeHandler` for EIP-191. The SDK may decide to fully support + EIP-191 in the future. + + Since: cosmos-sdk 0.45.2 */ + cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_EIP_191 = 191 +} cosmos_tx_signing_v1beta1_SignMode; + +/* Struct definitions */ +/* SignatureDescriptors wraps multiple SignatureDescriptor's. */ +typedef struct _cosmos_tx_signing_v1beta1_SignatureDescriptors { + /* signatures are the signature descriptors */ + pb_callback_t signatures; +} cosmos_tx_signing_v1beta1_SignatureDescriptors; + +/* Single is the signature data for a single signer */ +typedef struct _cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single { + /* mode is the signing mode of the single signer */ + cosmos_tx_signing_v1beta1_SignMode mode; + /* signature is the raw signature bytes */ + pb_callback_t signature; +} cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single; + +/* Multi is the signature data for a multisig public key */ +typedef struct _cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi { + /* bitarray specifies which keys within the multisig are signing */ + bool has_bitarray; + cosmos_crypto_multisig_v1beta1_CompactBitArray bitarray; + /* signatures is the signatures of the multi-signature */ + pb_callback_t signatures; +} cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi; + +/* Data represents signature data */ +typedef struct _cosmos_tx_signing_v1beta1_SignatureDescriptor_Data { + pb_size_t which_sum; + union { + /* single represents a single signer */ + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single single; + /* multi represents a multisig signer */ + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi multi; + } sum; +} cosmos_tx_signing_v1beta1_SignatureDescriptor_Data; + +/* SignatureDescriptor is a convenience type which represents the full data for + a signature including the public key of the signer, signing modes and the + signature itself. It is primarily used for coordinating signatures between + clients. */ +typedef struct _cosmos_tx_signing_v1beta1_SignatureDescriptor { + /* public_key is the public key of the signer */ + bool has_public_key; + google_protobuf_Any public_key; + bool has_data; + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data data; + /* sequence is the sequence of the account, which describes the + number of committed transactions signed by a given address. It is used to prevent + replay attacks. */ + uint64_t sequence; +} cosmos_tx_signing_v1beta1_SignatureDescriptor; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_tx_signing_v1beta1_SignMode_MIN cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_UNSPECIFIED +#define _cosmos_tx_signing_v1beta1_SignMode_MAX cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_EIP_191 +#define _cosmos_tx_signing_v1beta1_SignMode_ARRAYSIZE \ + ((cosmos_tx_signing_v1beta1_SignMode)(cosmos_tx_signing_v1beta1_SignMode_SIGN_MODE_EIP_191 + 1)) + +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_mode_ENUMTYPE cosmos_tx_signing_v1beta1_SignMode + +/* Initializer values for message structs */ +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_init_default \ + { false, google_protobuf_Any_init_default, false, cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_init_default, 0 } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_init_default \ + { \ + 0, { cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_init_default } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_init_default \ + { \ + _cosmos_tx_signing_v1beta1_SignMode_MIN, { {NULL}, NULL } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_init_default \ + { \ + false, cosmos_crypto_multisig_v1beta1_CompactBitArray_init_default, { {NULL}, NULL } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_init_zero \ + { false, google_protobuf_Any_init_zero, false, cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_init_zero, 0 } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_init_zero \ + { \ + 0, { cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_init_zero } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_init_zero \ + { \ + _cosmos_tx_signing_v1beta1_SignMode_MIN, { {NULL}, NULL } \ + } +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_init_zero \ + { \ + false, cosmos_crypto_multisig_v1beta1_CompactBitArray_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_signatures_tag 1 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_mode_tag 1 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_signature_tag 2 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_bitarray_tag 1 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_signatures_tag 2 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_single_tag 1 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_multi_tag 2 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_public_key_tag 1 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_data_tag 2 +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_sequence_tag 3 + +/* Struct field encoding specification for nanopb */ +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, signatures, 1) +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_CALLBACK pb_default_field_callback +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_DEFAULT NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_signatures_MSGTYPE cosmos_tx_signing_v1beta1_SignatureDescriptor + +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, public_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_CALLBACK NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_DEFAULT NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_public_key_MSGTYPE google_protobuf_Any +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_data_MSGTYPE cosmos_tx_signing_v1beta1_SignatureDescriptor_Data + +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, single, sum.single), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, multi, sum.multi), 2) +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_CALLBACK NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_DEFAULT NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_sum_single_MSGTYPE \ + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_sum_multi_MSGTYPE \ + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi + +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, mode, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 2) +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_CALLBACK pb_default_field_callback +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_DEFAULT NULL + +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, bitarray, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, signatures, 2) +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_CALLBACK pb_default_field_callback +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_DEFAULT NULL +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_bitarray_MSGTYPE \ + cosmos_crypto_multisig_v1beta1_CompactBitArray +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_signatures_MSGTYPE \ + cosmos_tx_signing_v1beta1_SignatureDescriptor_Data + +extern const pb_msgdesc_t cosmos_tx_signing_v1beta1_SignatureDescriptors_msg; +extern const pb_msgdesc_t cosmos_tx_signing_v1beta1_SignatureDescriptor_msg; +extern const pb_msgdesc_t cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_msg; +extern const pb_msgdesc_t cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_msg; +extern const pb_msgdesc_t cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_tx_signing_v1beta1_SignatureDescriptors_fields &cosmos_tx_signing_v1beta1_SignatureDescriptors_msg +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_fields &cosmos_tx_signing_v1beta1_SignatureDescriptor_msg +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_fields &cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_msg +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_fields \ + &cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_msg +#define cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_fields \ + &cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_tx_signing_v1beta1_SignatureDescriptors_size depends on runtime parameters */ +/* cosmos_tx_signing_v1beta1_SignatureDescriptor_size depends on runtime parameters */ +/* cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_size depends on runtime parameters */ +/* cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Single_size depends on runtime parameters */ +/* cosmos_tx_signing_v1beta1_SignatureDescriptor_Data_Multi_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/tx/v1beta1/service.pb.c b/app/src/protobuf/cosmos/tx/v1beta1/service.pb.c new file mode 100644 index 0000000..b9fd960 --- /dev/null +++ b/app/src/protobuf/cosmos/tx/v1beta1/service.pb.c @@ -0,0 +1,43 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/tx/v1beta1/service.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_tx_v1beta1_GetTxsEventRequest, cosmos_tx_v1beta1_GetTxsEventRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_GetTxsEventResponse, cosmos_tx_v1beta1_GetTxsEventResponse, AUTO) + +PB_BIND(cosmos_tx_v1beta1_BroadcastTxRequest, cosmos_tx_v1beta1_BroadcastTxRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_BroadcastTxResponse, cosmos_tx_v1beta1_BroadcastTxResponse, AUTO) + +PB_BIND(cosmos_tx_v1beta1_SimulateRequest, cosmos_tx_v1beta1_SimulateRequest, 2) + +PB_BIND(cosmos_tx_v1beta1_SimulateResponse, cosmos_tx_v1beta1_SimulateResponse, AUTO) + +PB_BIND(cosmos_tx_v1beta1_GetTxRequest, cosmos_tx_v1beta1_GetTxRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_GetTxResponse, cosmos_tx_v1beta1_GetTxResponse, 2) + +PB_BIND(cosmos_tx_v1beta1_GetBlockWithTxsRequest, cosmos_tx_v1beta1_GetBlockWithTxsRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_GetBlockWithTxsResponse, cosmos_tx_v1beta1_GetBlockWithTxsResponse, 2) + +PB_BIND(cosmos_tx_v1beta1_TxDecodeRequest, cosmos_tx_v1beta1_TxDecodeRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxDecodeResponse, cosmos_tx_v1beta1_TxDecodeResponse, 2) + +PB_BIND(cosmos_tx_v1beta1_TxEncodeRequest, cosmos_tx_v1beta1_TxEncodeRequest, 2) + +PB_BIND(cosmos_tx_v1beta1_TxEncodeResponse, cosmos_tx_v1beta1_TxEncodeResponse, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxEncodeAminoRequest, cosmos_tx_v1beta1_TxEncodeAminoRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxEncodeAminoResponse, cosmos_tx_v1beta1_TxEncodeAminoResponse, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxDecodeAminoRequest, cosmos_tx_v1beta1_TxDecodeAminoRequest, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxDecodeAminoResponse, cosmos_tx_v1beta1_TxDecodeAminoResponse, AUTO) diff --git a/app/src/protobuf/cosmos/tx/v1beta1/service.pb.h b/app/src/protobuf/cosmos/tx/v1beta1/service.pb.h new file mode 100644 index 0000000..99b89d5 --- /dev/null +++ b/app/src/protobuf/cosmos/tx/v1beta1/service.pb.h @@ -0,0 +1,605 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_SERVICE_PB_H_INCLUDED +#define PB_COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_SERVICE_PB_H_INCLUDED +#include + +#include "cosmos/base/abci/v1beta1/abci.pb.h" +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/tx/v1beta1/tx.pb.h" +#include "google/api/annotations.pb.h" +#include "tendermint/types/block.pb.h" +#include "tendermint/types/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* OrderBy defines the sorting order */ +typedef enum _cosmos_tx_v1beta1_OrderBy { + /* ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults + to ASC in this case. */ + cosmos_tx_v1beta1_OrderBy_ORDER_BY_UNSPECIFIED = 0, + /* ORDER_BY_ASC defines ascending order */ + cosmos_tx_v1beta1_OrderBy_ORDER_BY_ASC = 1, + /* ORDER_BY_DESC defines descending order */ + cosmos_tx_v1beta1_OrderBy_ORDER_BY_DESC = 2 +} cosmos_tx_v1beta1_OrderBy; + +/* BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC + method. */ +typedef enum _cosmos_tx_v1beta1_BroadcastMode { + /* zero-value for mode ordering */ + cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_UNSPECIFIED = 0, + /* DEPRECATED: use BROADCAST_MODE_SYNC instead, + BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. */ + cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_BLOCK = 1, + /* BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + for a CheckTx execution response only. */ + cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_SYNC = 2, + /* BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + returns immediately. */ + cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_ASYNC = 3 +} cosmos_tx_v1beta1_BroadcastMode; + +/* Struct definitions */ +/* GetTxsEventRequest is the request type for the Service.TxsByEvents + RPC method. */ +typedef struct _cosmos_tx_v1beta1_GetTxsEventRequest { + /* events is the list of transaction event type. + Deprecated post v0.47.x: use query instead, which should contain a valid + events query. */ + pb_callback_t events; + /* pagination defines a pagination for the request. + Deprecated post v0.46.x: use page and limit instead. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + cosmos_tx_v1beta1_OrderBy order_by; + /* page is the page number to query, starts at 1. If not provided, will + default to first page. */ + uint64_t page; + /* limit is the total number of results to be returned in the result page. + If left empty it will default to a value to be set by each app. */ + uint64_t limit; + /* query defines the transaction event query that is proxied to Tendermint's + TxSearch RPC method. The query must be valid. + + Since Cosmos SDK 0.48 */ + pb_callback_t query; +} cosmos_tx_v1beta1_GetTxsEventRequest; + +/* GetTxsEventResponse is the response type for the Service.TxsByEvents + RPC method. */ +typedef struct _cosmos_tx_v1beta1_GetTxsEventResponse { + /* txs is the list of queried transactions. */ + pb_callback_t txs; + /* tx_responses is the list of queried TxResponses. */ + pb_callback_t tx_responses; + /* pagination defines a pagination for the response. + Deprecated post v0.46.x: use total instead. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* total is total number of results available */ + uint64_t total; +} cosmos_tx_v1beta1_GetTxsEventResponse; + +/* BroadcastTxRequest is the request type for the Service.BroadcastTxRequest + RPC method. */ +typedef struct _cosmos_tx_v1beta1_BroadcastTxRequest { + /* tx_bytes is the raw transaction. */ + pb_callback_t tx_bytes; + cosmos_tx_v1beta1_BroadcastMode mode; +} cosmos_tx_v1beta1_BroadcastTxRequest; + +/* BroadcastTxResponse is the response type for the + Service.BroadcastTx method. */ +typedef struct _cosmos_tx_v1beta1_BroadcastTxResponse { + /* tx_response is the queried TxResponses. */ + bool has_tx_response; + cosmos_base_abci_v1beta1_TxResponse tx_response; +} cosmos_tx_v1beta1_BroadcastTxResponse; + +/* SimulateRequest is the request type for the Service.Simulate + RPC method. */ +typedef struct _cosmos_tx_v1beta1_SimulateRequest { + /* tx is the transaction to simulate. + Deprecated. Send raw tx bytes instead. */ + bool has_tx; + cosmos_tx_v1beta1_Tx tx; + /* tx_bytes is the raw transaction. + + Since: cosmos-sdk 0.43 */ + pb_callback_t tx_bytes; +} cosmos_tx_v1beta1_SimulateRequest; + +/* SimulateResponse is the response type for the + Service.SimulateRPC method. */ +typedef struct _cosmos_tx_v1beta1_SimulateResponse { + /* gas_info is the information about gas used in the simulation. */ + bool has_gas_info; + cosmos_base_abci_v1beta1_GasInfo gas_info; + /* result is the result of the simulation. */ + bool has_result; + cosmos_base_abci_v1beta1_Result result; +} cosmos_tx_v1beta1_SimulateResponse; + +/* GetTxRequest is the request type for the Service.GetTx + RPC method. */ +typedef struct _cosmos_tx_v1beta1_GetTxRequest { + /* hash is the tx hash to query, encoded as a hex string. */ + pb_callback_t hash; +} cosmos_tx_v1beta1_GetTxRequest; + +/* GetTxResponse is the response type for the Service.GetTx method. */ +typedef struct _cosmos_tx_v1beta1_GetTxResponse { + /* tx is the queried transaction. */ + bool has_tx; + cosmos_tx_v1beta1_Tx tx; + /* tx_response is the queried TxResponses. */ + bool has_tx_response; + cosmos_base_abci_v1beta1_TxResponse tx_response; +} cosmos_tx_v1beta1_GetTxResponse; + +/* GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs + RPC method. + + Since: cosmos-sdk 0.45.2 */ +typedef struct _cosmos_tx_v1beta1_GetBlockWithTxsRequest { + /* height is the height of the block to query. */ + int64_t height; + /* pagination defines a pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} cosmos_tx_v1beta1_GetBlockWithTxsRequest; + +/* GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs + method. + + Since: cosmos-sdk 0.45.2 */ +typedef struct _cosmos_tx_v1beta1_GetBlockWithTxsResponse { + /* txs are the transactions in the block. */ + pb_callback_t txs; + bool has_block_id; + tendermint_types_BlockID block_id; + bool has_block; + tendermint_types_Block block; + /* pagination defines a pagination for the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} cosmos_tx_v1beta1_GetBlockWithTxsResponse; + +/* TxDecodeRequest is the request type for the Service.TxDecode + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxDecodeRequest { + /* tx_bytes is the raw transaction. */ + pb_callback_t tx_bytes; +} cosmos_tx_v1beta1_TxDecodeRequest; + +/* TxDecodeResponse is the response type for the + Service.TxDecode method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxDecodeResponse { + /* tx is the decoded transaction. */ + bool has_tx; + cosmos_tx_v1beta1_Tx tx; +} cosmos_tx_v1beta1_TxDecodeResponse; + +/* TxEncodeRequest is the request type for the Service.TxEncode + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxEncodeRequest { + /* tx is the transaction to encode. */ + bool has_tx; + cosmos_tx_v1beta1_Tx tx; +} cosmos_tx_v1beta1_TxEncodeRequest; + +/* TxEncodeResponse is the response type for the + Service.TxEncode method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxEncodeResponse { + /* tx_bytes is the encoded transaction bytes. */ + pb_callback_t tx_bytes; +} cosmos_tx_v1beta1_TxEncodeResponse; + +/* TxEncodeAminoRequest is the request type for the Service.TxEncodeAmino + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxEncodeAminoRequest { + pb_callback_t amino_json; +} cosmos_tx_v1beta1_TxEncodeAminoRequest; + +/* TxEncodeAminoResponse is the response type for the Service.TxEncodeAmino + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxEncodeAminoResponse { + pb_callback_t amino_binary; +} cosmos_tx_v1beta1_TxEncodeAminoResponse; + +/* TxDecodeAminoRequest is the request type for the Service.TxDecodeAmino + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxDecodeAminoRequest { + pb_callback_t amino_binary; +} cosmos_tx_v1beta1_TxDecodeAminoRequest; + +/* TxDecodeAminoResponse is the response type for the Service.TxDecodeAmino + RPC method. + + Since: cosmos-sdk 0.47 */ +typedef struct _cosmos_tx_v1beta1_TxDecodeAminoResponse { + pb_callback_t amino_json; +} cosmos_tx_v1beta1_TxDecodeAminoResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_tx_v1beta1_OrderBy_MIN cosmos_tx_v1beta1_OrderBy_ORDER_BY_UNSPECIFIED +#define _cosmos_tx_v1beta1_OrderBy_MAX cosmos_tx_v1beta1_OrderBy_ORDER_BY_DESC +#define _cosmos_tx_v1beta1_OrderBy_ARRAYSIZE ((cosmos_tx_v1beta1_OrderBy)(cosmos_tx_v1beta1_OrderBy_ORDER_BY_DESC + 1)) + +#define _cosmos_tx_v1beta1_BroadcastMode_MIN cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_UNSPECIFIED +#define _cosmos_tx_v1beta1_BroadcastMode_MAX cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_ASYNC +#define _cosmos_tx_v1beta1_BroadcastMode_ARRAYSIZE \ + ((cosmos_tx_v1beta1_BroadcastMode)(cosmos_tx_v1beta1_BroadcastMode_BROADCAST_MODE_ASYNC + 1)) + +#define cosmos_tx_v1beta1_GetTxsEventRequest_order_by_ENUMTYPE cosmos_tx_v1beta1_OrderBy + +#define cosmos_tx_v1beta1_BroadcastTxRequest_mode_ENUMTYPE cosmos_tx_v1beta1_BroadcastMode + +/* Initializer values for message structs */ +#define cosmos_tx_v1beta1_GetTxsEventRequest_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default, _cosmos_tx_v1beta1_OrderBy_MIN, 0, 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_tx_v1beta1_GetTxsEventResponse_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, 0 } +#define cosmos_tx_v1beta1_BroadcastTxRequest_init_default \ + { {{NULL}, NULL}, _cosmos_tx_v1beta1_BroadcastMode_MIN } +#define cosmos_tx_v1beta1_BroadcastTxResponse_init_default \ + { false, cosmos_base_abci_v1beta1_TxResponse_init_default } +#define cosmos_tx_v1beta1_SimulateRequest_init_default \ + { \ + false, cosmos_tx_v1beta1_Tx_init_default, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_SimulateResponse_init_default \ + { false, cosmos_base_abci_v1beta1_GasInfo_init_default, false, cosmos_base_abci_v1beta1_Result_init_default } +#define cosmos_tx_v1beta1_GetTxRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_GetTxResponse_init_default \ + { false, cosmos_tx_v1beta1_Tx_init_default, false, cosmos_base_abci_v1beta1_TxResponse_init_default } +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_init_default \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_init_default \ + { \ + {{NULL}, NULL}, false, tendermint_types_BlockID_init_default, false, tendermint_types_Block_init_default, false, \ + cosmos_base_query_v1beta1_PageResponse_init_default \ + } +#define cosmos_tx_v1beta1_TxDecodeRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeResponse_init_default \ + { false, cosmos_tx_v1beta1_Tx_init_default } +#define cosmos_tx_v1beta1_TxEncodeRequest_init_default \ + { false, cosmos_tx_v1beta1_Tx_init_default } +#define cosmos_tx_v1beta1_TxEncodeResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_GetTxsEventRequest_init_zero \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero, _cosmos_tx_v1beta1_OrderBy_MIN, 0, 0, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_tx_v1beta1_GetTxsEventResponse_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, 0 } +#define cosmos_tx_v1beta1_BroadcastTxRequest_init_zero \ + { {{NULL}, NULL}, _cosmos_tx_v1beta1_BroadcastMode_MIN } +#define cosmos_tx_v1beta1_BroadcastTxResponse_init_zero \ + { false, cosmos_base_abci_v1beta1_TxResponse_init_zero } +#define cosmos_tx_v1beta1_SimulateRequest_init_zero \ + { \ + false, cosmos_tx_v1beta1_Tx_init_zero, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_SimulateResponse_init_zero \ + { false, cosmos_base_abci_v1beta1_GasInfo_init_zero, false, cosmos_base_abci_v1beta1_Result_init_zero } +#define cosmos_tx_v1beta1_GetTxRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_GetTxResponse_init_zero \ + { false, cosmos_tx_v1beta1_Tx_init_zero, false, cosmos_base_abci_v1beta1_TxResponse_init_zero } +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_init_zero \ + { 0, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_init_zero \ + { \ + {{NULL}, NULL}, false, tendermint_types_BlockID_init_zero, false, tendermint_types_Block_init_zero, false, \ + cosmos_base_query_v1beta1_PageResponse_init_zero \ + } +#define cosmos_tx_v1beta1_TxDecodeRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeResponse_init_zero \ + { false, cosmos_tx_v1beta1_Tx_init_zero } +#define cosmos_tx_v1beta1_TxEncodeRequest_init_zero \ + { false, cosmos_tx_v1beta1_Tx_init_zero } +#define cosmos_tx_v1beta1_TxEncodeResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_tx_v1beta1_GetTxsEventRequest_events_tag 1 +#define cosmos_tx_v1beta1_GetTxsEventRequest_pagination_tag 2 +#define cosmos_tx_v1beta1_GetTxsEventRequest_order_by_tag 3 +#define cosmos_tx_v1beta1_GetTxsEventRequest_page_tag 4 +#define cosmos_tx_v1beta1_GetTxsEventRequest_limit_tag 5 +#define cosmos_tx_v1beta1_GetTxsEventRequest_query_tag 6 +#define cosmos_tx_v1beta1_GetTxsEventResponse_txs_tag 1 +#define cosmos_tx_v1beta1_GetTxsEventResponse_tx_responses_tag 2 +#define cosmos_tx_v1beta1_GetTxsEventResponse_pagination_tag 3 +#define cosmos_tx_v1beta1_GetTxsEventResponse_total_tag 4 +#define cosmos_tx_v1beta1_BroadcastTxRequest_tx_bytes_tag 1 +#define cosmos_tx_v1beta1_BroadcastTxRequest_mode_tag 2 +#define cosmos_tx_v1beta1_BroadcastTxResponse_tx_response_tag 1 +#define cosmos_tx_v1beta1_SimulateRequest_tx_tag 1 +#define cosmos_tx_v1beta1_SimulateRequest_tx_bytes_tag 2 +#define cosmos_tx_v1beta1_SimulateResponse_gas_info_tag 1 +#define cosmos_tx_v1beta1_SimulateResponse_result_tag 2 +#define cosmos_tx_v1beta1_GetTxRequest_hash_tag 1 +#define cosmos_tx_v1beta1_GetTxResponse_tx_tag 1 +#define cosmos_tx_v1beta1_GetTxResponse_tx_response_tag 2 +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_height_tag 1 +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_pagination_tag 2 +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_txs_tag 1 +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_block_id_tag 2 +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_block_tag 3 +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_pagination_tag 4 +#define cosmos_tx_v1beta1_TxDecodeRequest_tx_bytes_tag 1 +#define cosmos_tx_v1beta1_TxDecodeResponse_tx_tag 1 +#define cosmos_tx_v1beta1_TxEncodeRequest_tx_tag 1 +#define cosmos_tx_v1beta1_TxEncodeResponse_tx_bytes_tag 1 +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_amino_json_tag 1 +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_amino_binary_tag 1 +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_amino_binary_tag 1 +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_amino_json_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_tx_v1beta1_GetTxsEventRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, events, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, SINGULAR, UENUM, order_by, 3) \ + X(a, STATIC, SINGULAR, UINT64, page, 4) \ + X(a, STATIC, SINGULAR, UINT64, limit, 5) \ + X(a, CALLBACK, SINGULAR, STRING, query, 6) +#define cosmos_tx_v1beta1_GetTxsEventRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_GetTxsEventRequest_DEFAULT NULL +#define cosmos_tx_v1beta1_GetTxsEventRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_tx_v1beta1_GetTxsEventResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, txs, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, tx_responses, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) \ + X(a, STATIC, SINGULAR, UINT64, total, 4) +#define cosmos_tx_v1beta1_GetTxsEventResponse_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_GetTxsEventResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_GetTxsEventResponse_txs_MSGTYPE cosmos_tx_v1beta1_Tx +#define cosmos_tx_v1beta1_GetTxsEventResponse_tx_responses_MSGTYPE cosmos_base_abci_v1beta1_TxResponse +#define cosmos_tx_v1beta1_GetTxsEventResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_tx_v1beta1_BroadcastTxRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, tx_bytes, 1) \ + X(a, STATIC, SINGULAR, UENUM, mode, 2) +#define cosmos_tx_v1beta1_BroadcastTxRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_BroadcastTxRequest_DEFAULT NULL + +#define cosmos_tx_v1beta1_BroadcastTxResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx_response, 1) +#define cosmos_tx_v1beta1_BroadcastTxResponse_CALLBACK NULL +#define cosmos_tx_v1beta1_BroadcastTxResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_BroadcastTxResponse_tx_response_MSGTYPE cosmos_base_abci_v1beta1_TxResponse + +#define cosmos_tx_v1beta1_SimulateRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, tx_bytes, 2) +#define cosmos_tx_v1beta1_SimulateRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_SimulateRequest_DEFAULT NULL +#define cosmos_tx_v1beta1_SimulateRequest_tx_MSGTYPE cosmos_tx_v1beta1_Tx + +#define cosmos_tx_v1beta1_SimulateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_info, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, result, 2) +#define cosmos_tx_v1beta1_SimulateResponse_CALLBACK NULL +#define cosmos_tx_v1beta1_SimulateResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_SimulateResponse_gas_info_MSGTYPE cosmos_base_abci_v1beta1_GasInfo +#define cosmos_tx_v1beta1_SimulateResponse_result_MSGTYPE cosmos_base_abci_v1beta1_Result + +#define cosmos_tx_v1beta1_GetTxRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, hash, 1) +#define cosmos_tx_v1beta1_GetTxRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_GetTxRequest_DEFAULT NULL + +#define cosmos_tx_v1beta1_GetTxResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx_response, 2) +#define cosmos_tx_v1beta1_GetTxResponse_CALLBACK NULL +#define cosmos_tx_v1beta1_GetTxResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_GetTxResponse_tx_MSGTYPE cosmos_tx_v1beta1_Tx +#define cosmos_tx_v1beta1_GetTxResponse_tx_response_MSGTYPE cosmos_base_abci_v1beta1_TxResponse + +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_CALLBACK NULL +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_DEFAULT NULL +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, txs, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 4) +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_txs_MSGTYPE cosmos_tx_v1beta1_Tx +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_block_id_MSGTYPE tendermint_types_BlockID +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_block_MSGTYPE tendermint_types_Block +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define cosmos_tx_v1beta1_TxDecodeRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, tx_bytes, 1) +#define cosmos_tx_v1beta1_TxDecodeRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxDecodeRequest_DEFAULT NULL + +#define cosmos_tx_v1beta1_TxDecodeResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) +#define cosmos_tx_v1beta1_TxDecodeResponse_CALLBACK NULL +#define cosmos_tx_v1beta1_TxDecodeResponse_DEFAULT NULL +#define cosmos_tx_v1beta1_TxDecodeResponse_tx_MSGTYPE cosmos_tx_v1beta1_Tx + +#define cosmos_tx_v1beta1_TxEncodeRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx, 1) +#define cosmos_tx_v1beta1_TxEncodeRequest_CALLBACK NULL +#define cosmos_tx_v1beta1_TxEncodeRequest_DEFAULT NULL +#define cosmos_tx_v1beta1_TxEncodeRequest_tx_MSGTYPE cosmos_tx_v1beta1_Tx + +#define cosmos_tx_v1beta1_TxEncodeResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, tx_bytes, 1) +#define cosmos_tx_v1beta1_TxEncodeResponse_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxEncodeResponse_DEFAULT NULL + +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, amino_json, 1) +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_DEFAULT NULL + +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, amino_binary, 1) +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_DEFAULT NULL + +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, amino_binary, 1) +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_DEFAULT NULL + +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, amino_json, 1) +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetTxsEventRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetTxsEventResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_BroadcastTxRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_BroadcastTxResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_SimulateRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_SimulateResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetTxRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetTxResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetBlockWithTxsRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_GetBlockWithTxsResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxDecodeRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxDecodeResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxEncodeRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxEncodeResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxEncodeAminoRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxEncodeAminoResponse_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxDecodeAminoRequest_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxDecodeAminoResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_tx_v1beta1_GetTxsEventRequest_fields &cosmos_tx_v1beta1_GetTxsEventRequest_msg +#define cosmos_tx_v1beta1_GetTxsEventResponse_fields &cosmos_tx_v1beta1_GetTxsEventResponse_msg +#define cosmos_tx_v1beta1_BroadcastTxRequest_fields &cosmos_tx_v1beta1_BroadcastTxRequest_msg +#define cosmos_tx_v1beta1_BroadcastTxResponse_fields &cosmos_tx_v1beta1_BroadcastTxResponse_msg +#define cosmos_tx_v1beta1_SimulateRequest_fields &cosmos_tx_v1beta1_SimulateRequest_msg +#define cosmos_tx_v1beta1_SimulateResponse_fields &cosmos_tx_v1beta1_SimulateResponse_msg +#define cosmos_tx_v1beta1_GetTxRequest_fields &cosmos_tx_v1beta1_GetTxRequest_msg +#define cosmos_tx_v1beta1_GetTxResponse_fields &cosmos_tx_v1beta1_GetTxResponse_msg +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_fields &cosmos_tx_v1beta1_GetBlockWithTxsRequest_msg +#define cosmos_tx_v1beta1_GetBlockWithTxsResponse_fields &cosmos_tx_v1beta1_GetBlockWithTxsResponse_msg +#define cosmos_tx_v1beta1_TxDecodeRequest_fields &cosmos_tx_v1beta1_TxDecodeRequest_msg +#define cosmos_tx_v1beta1_TxDecodeResponse_fields &cosmos_tx_v1beta1_TxDecodeResponse_msg +#define cosmos_tx_v1beta1_TxEncodeRequest_fields &cosmos_tx_v1beta1_TxEncodeRequest_msg +#define cosmos_tx_v1beta1_TxEncodeResponse_fields &cosmos_tx_v1beta1_TxEncodeResponse_msg +#define cosmos_tx_v1beta1_TxEncodeAminoRequest_fields &cosmos_tx_v1beta1_TxEncodeAminoRequest_msg +#define cosmos_tx_v1beta1_TxEncodeAminoResponse_fields &cosmos_tx_v1beta1_TxEncodeAminoResponse_msg +#define cosmos_tx_v1beta1_TxDecodeAminoRequest_fields &cosmos_tx_v1beta1_TxDecodeAminoRequest_msg +#define cosmos_tx_v1beta1_TxDecodeAminoResponse_fields &cosmos_tx_v1beta1_TxDecodeAminoResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_tx_v1beta1_GetTxsEventRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_GetTxsEventResponse_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_BroadcastTxRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_SimulateRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_GetTxRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_GetBlockWithTxsResponse_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxDecodeRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxEncodeResponse_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxEncodeAminoRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxEncodeAminoResponse_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxDecodeAminoRequest_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxDecodeAminoResponse_size depends on runtime parameters */ +#if defined(cosmos_base_abci_v1beta1_TxResponse_size) +#define cosmos_tx_v1beta1_BroadcastTxResponse_size (6 + cosmos_base_abci_v1beta1_TxResponse_size) +#endif +#if defined(cosmos_base_abci_v1beta1_Result_size) +#define COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_SERVICE_PB_H_MAX_SIZE cosmos_tx_v1beta1_SimulateResponse_size +#define cosmos_tx_v1beta1_SimulateResponse_size (30 + cosmos_base_abci_v1beta1_Result_size) +#endif +#if defined(cosmos_tx_v1beta1_Tx_size) && defined(cosmos_base_abci_v1beta1_TxResponse_size) +#define cosmos_tx_v1beta1_GetTxResponse_size (12 + cosmos_tx_v1beta1_Tx_size + cosmos_base_abci_v1beta1_TxResponse_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define cosmos_tx_v1beta1_GetBlockWithTxsRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(cosmos_tx_v1beta1_Tx_size) +#define cosmos_tx_v1beta1_TxDecodeResponse_size (6 + cosmos_tx_v1beta1_Tx_size) +#define cosmos_tx_v1beta1_TxEncodeRequest_size (6 + cosmos_tx_v1beta1_Tx_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.c new file mode 100644 index 0000000..dfbe94d --- /dev/null +++ b/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.c @@ -0,0 +1,33 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/tx/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_tx_v1beta1_Tx, cosmos_tx_v1beta1_Tx, 2) + +PB_BIND(cosmos_tx_v1beta1_TxRaw, cosmos_tx_v1beta1_TxRaw, AUTO) + +PB_BIND(cosmos_tx_v1beta1_SignDoc, cosmos_tx_v1beta1_SignDoc, AUTO) + +PB_BIND(cosmos_tx_v1beta1_SignDocDirectAux, cosmos_tx_v1beta1_SignDocDirectAux, AUTO) + +PB_BIND(cosmos_tx_v1beta1_TxBody, cosmos_tx_v1beta1_TxBody, 4) + +PB_BIND(cosmos_tx_v1beta1_AuthInfo, cosmos_tx_v1beta1_AuthInfo, AUTO) + +PB_BIND(cosmos_tx_v1beta1_SignerInfo, cosmos_tx_v1beta1_SignerInfo, AUTO) + +PB_BIND(cosmos_tx_v1beta1_ModeInfo, cosmos_tx_v1beta1_ModeInfo, AUTO) + +PB_BIND(cosmos_tx_v1beta1_ModeInfo_Single, cosmos_tx_v1beta1_ModeInfo_Single, AUTO) + +PB_BIND(cosmos_tx_v1beta1_ModeInfo_Multi, cosmos_tx_v1beta1_ModeInfo_Multi, AUTO) + +PB_BIND(cosmos_tx_v1beta1_Fee, cosmos_tx_v1beta1_Fee, AUTO) + +PB_BIND(cosmos_tx_v1beta1_Tip, cosmos_tx_v1beta1_Tip, AUTO) + +PB_BIND(cosmos_tx_v1beta1_AuxSignerData, cosmos_tx_v1beta1_AuxSignerData, AUTO) diff --git a/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.h new file mode 100644 index 0000000..9499a16 --- /dev/null +++ b/app/src/protobuf/cosmos/tx/v1beta1/tx.pb.h @@ -0,0 +1,550 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/crypto/multisig/v1beta1/multisig.pb.h" +#include "cosmos/tx/signing/v1beta1/signing.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* TxRaw is a variant of Tx that pins the signer's exact binary representation + of body and auth_info. This is used for signing, broadcasting and + verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and + the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used + as the transaction ID. */ +typedef struct _cosmos_tx_v1beta1_TxRaw { + /* body_bytes is a protobuf serialization of a TxBody that matches the + representation in SignDoc. */ + pb_callback_t body_bytes; + /* auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + representation in SignDoc. */ + pb_callback_t auth_info_bytes; + /* signatures is a list of signatures that matches the length and order of + AuthInfo's signer_infos to allow connecting signature meta information like + public key and signing mode by position. */ + pb_callback_t signatures; +} cosmos_tx_v1beta1_TxRaw; + +/* SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. */ +typedef struct _cosmos_tx_v1beta1_SignDoc { + /* body_bytes is protobuf serialization of a TxBody that matches the + representation in TxRaw. */ + pb_callback_t body_bytes; + /* auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + representation in TxRaw. */ + pb_callback_t auth_info_bytes; + /* chain_id is the unique identifier of the chain this transaction targets. + It prevents signed transactions from being used on another chain by an + attacker */ + pb_callback_t chain_id; + /* account_number is the account number of the account in state */ + uint64_t account_number; +} cosmos_tx_v1beta1_SignDoc; + +/* TxBody is the body of a transaction that all signers sign over. */ +typedef struct _cosmos_tx_v1beta1_TxBody { + /* messages is a list of messages to be executed. The required signers of + those messages define the number and order of elements in AuthInfo's + signer_infos and Tx's signatures. Each required signer address is added to + the list only the first time it occurs. + By convention, the first required signer (usually from the first message) + is referred to as the primary signer and pays the fee for the whole + transaction. */ + pb_callback_t messages; + /* memo is any arbitrary note/comment to be added to the transaction. + WARNING: in clients, any publicly exposed text should not be called memo, + but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122). */ + pb_callback_t memo; + /* timeout is the block height after which this transaction will not + be processed by the chain */ + uint64_t timeout_height; + /* extension_options are arbitrary options that can be added by chains + when the default options are not sufficient. If any of these are present + and can't be handled, the transaction will be rejected */ + pb_callback_t extension_options; + /* extension_options are arbitrary options that can be added by chains + when the default options are not sufficient. If any of these are present + and can't be handled, they will be ignored */ + pb_callback_t non_critical_extension_options; +} cosmos_tx_v1beta1_TxBody; + +/* Single is the mode info for a single signer. It is structured as a message + to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the + future */ +typedef struct _cosmos_tx_v1beta1_ModeInfo_Single { + /* mode is the signing mode of the single signer */ + cosmos_tx_signing_v1beta1_SignMode mode; +} cosmos_tx_v1beta1_ModeInfo_Single; + +/* Multi is the mode info for a multisig public key */ +typedef struct _cosmos_tx_v1beta1_ModeInfo_Multi { + /* bitarray specifies which keys within the multisig are signing */ + bool has_bitarray; + cosmos_crypto_multisig_v1beta1_CompactBitArray bitarray; + /* mode_infos is the corresponding modes of the signers of the multisig + which could include nested multisig public keys */ + pb_callback_t mode_infos; +} cosmos_tx_v1beta1_ModeInfo_Multi; + +/* ModeInfo describes the signing mode of a single or nested multisig signer. */ +typedef struct _cosmos_tx_v1beta1_ModeInfo { + pb_size_t which_sum; + union { + /* single represents a single signer */ + cosmos_tx_v1beta1_ModeInfo_Single single; + /* multi represents a nested multisig signer */ + cosmos_tx_v1beta1_ModeInfo_Multi multi; + } sum; +} cosmos_tx_v1beta1_ModeInfo; + +/* SignerInfo describes the public key and signing mode of a single top-level + signer. */ +typedef struct _cosmos_tx_v1beta1_SignerInfo { + /* public_key is the public key of the signer. It is optional for accounts + that already exist in state. If unset, the verifier can use the required \ + signer address for this position and lookup the public key. */ + bool has_public_key; + google_protobuf_Any public_key; + /* mode_info describes the signing mode of the signer and is a nested + structure to support nested multisig pubkey's */ + bool has_mode_info; + cosmos_tx_v1beta1_ModeInfo mode_info; + /* sequence is the sequence of the account, which describes the + number of committed transactions signed by a given address. It is used to + prevent replay attacks. */ + uint64_t sequence; +} cosmos_tx_v1beta1_SignerInfo; + +/* Fee includes the amount of coins paid in fees and the maximum + gas to be used by the transaction. The ratio yields an effective "gasprice", + which must be above some miminum to be accepted into the mempool. */ +typedef struct _cosmos_tx_v1beta1_Fee { + /* amount is the amount of coins to be paid as a fee */ + pb_callback_t amount; + /* gas_limit is the maximum gas that can be used in transaction processing + before an out of gas error occurs */ + uint64_t gas_limit; + /* if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees. + the payer must be a tx signer (and thus have signed this field in AuthInfo). + setting this field does *not* change the ordering of required signers for the transaction. */ + pb_callback_t payer; + /* if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used + to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does + not support fee grants, this will fail */ + pb_callback_t granter; +} cosmos_tx_v1beta1_Fee; + +/* Tip is the tip used for meta-transactions. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_tx_v1beta1_Tip { + /* amount is the amount of the tip */ + pb_callback_t amount; + /* tipper is the address of the account paying for the tip */ + pb_callback_t tipper; +} cosmos_tx_v1beta1_Tip; + +/* SignDocDirectAux is the type used for generating sign bytes for + SIGN_MODE_DIRECT_AUX. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_tx_v1beta1_SignDocDirectAux { + /* body_bytes is protobuf serialization of a TxBody that matches the + representation in TxRaw. */ + pb_callback_t body_bytes; + /* public_key is the public key of the signing account. */ + bool has_public_key; + google_protobuf_Any public_key; + /* chain_id is the identifier of the chain this transaction targets. + It prevents signed transactions from being used on another chain by an + attacker. */ + pb_callback_t chain_id; + /* account_number is the account number of the account in state. */ + uint64_t account_number; + /* sequence is the sequence number of the signing account. */ + uint64_t sequence; + /* Tip is the optional tip used for transactions fees paid in another denom. + It should be left empty if the signer is not the tipper for this + transaction. + + This field is ignored if the chain didn't enable tips, i.e. didn't add the + `TipDecorator` in its posthandler. */ + bool has_tip; + cosmos_tx_v1beta1_Tip tip; +} cosmos_tx_v1beta1_SignDocDirectAux; + +/* AuthInfo describes the fee and signer modes that are used to sign a + transaction. */ +typedef struct _cosmos_tx_v1beta1_AuthInfo { + /* signer_infos defines the signing modes for the required signers. The number + and order of elements must match the required signers from TxBody's + messages. The first element is the primary signer and the one which pays + the fee. */ + pb_callback_t signer_infos; + /* Fee is the fee and gas limit for the transaction. The first signer is the + primary signer and the one which pays the fee. The fee can be calculated + based on the cost of evaluating the body and doing signature verification + of the signers. This can be estimated via simulation. */ + bool has_fee; + cosmos_tx_v1beta1_Fee fee; + /* Tip is the optional tip used for transactions fees paid in another denom. + + This field is ignored if the chain didn't enable tips, i.e. didn't add the + `TipDecorator` in its posthandler. + + Since: cosmos-sdk 0.46 */ + bool has_tip; + cosmos_tx_v1beta1_Tip tip; +} cosmos_tx_v1beta1_AuthInfo; + +/* Tx is the standard type used for broadcasting transactions. */ +typedef struct _cosmos_tx_v1beta1_Tx { + /* body is the processable content of the transaction */ + bool has_body; + cosmos_tx_v1beta1_TxBody body; + /* auth_info is the authorization related content of the transaction, + specifically signers, signer modes and fee */ + bool has_auth_info; + cosmos_tx_v1beta1_AuthInfo auth_info; + /* signatures is a list of signatures that matches the length and order of + AuthInfo's signer_infos to allow connecting signature meta information like + public key and signing mode by position. */ + pb_callback_t signatures; +} cosmos_tx_v1beta1_Tx; + +/* AuxSignerData is the intermediary format that an auxiliary signer (e.g. a + tipper) builds and sends to the fee payer (who will build and broadcast the + actual tx). AuxSignerData is not a valid tx in itself, and will be rejected + by the node if sent directly as-is. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_tx_v1beta1_AuxSignerData { + /* address is the bech32-encoded address of the auxiliary signer. If using + AuxSignerData across different chains, the bech32 prefix of the target + chain (where the final transaction is broadcasted) should be used. */ + pb_callback_t address; + /* sign_doc is the SIGN_MODE_DIRECT_AUX sign doc that the auxiliary signer + signs. Note: we use the same sign doc even if we're signing with + LEGACY_AMINO_JSON. */ + bool has_sign_doc; + cosmos_tx_v1beta1_SignDocDirectAux sign_doc; + /* mode is the signing mode of the single signer. */ + cosmos_tx_signing_v1beta1_SignMode mode; + /* sig is the signature of the sign doc. */ + pb_callback_t sig; +} cosmos_tx_v1beta1_AuxSignerData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_tx_v1beta1_Tx_init_default \ + { \ + false, cosmos_tx_v1beta1_TxBody_init_default, false, cosmos_tx_v1beta1_AuthInfo_init_default, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxRaw_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_SignDoc_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_tx_v1beta1_SignDocDirectAux_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, {{NULL}, NULL}, 0, 0, false, \ + cosmos_tx_v1beta1_Tip_init_default \ + } +#define cosmos_tx_v1beta1_TxBody_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_AuthInfo_init_default \ + { {{NULL}, NULL}, false, cosmos_tx_v1beta1_Fee_init_default, false, cosmos_tx_v1beta1_Tip_init_default } +#define cosmos_tx_v1beta1_SignerInfo_init_default \ + { false, google_protobuf_Any_init_default, false, cosmos_tx_v1beta1_ModeInfo_init_default, 0 } +#define cosmos_tx_v1beta1_ModeInfo_init_default \ + { \ + 0, { cosmos_tx_v1beta1_ModeInfo_Single_init_default } \ + } +#define cosmos_tx_v1beta1_ModeInfo_Single_init_default \ + { _cosmos_tx_signing_v1beta1_SignMode_MIN } +#define cosmos_tx_v1beta1_ModeInfo_Multi_init_default \ + { \ + false, cosmos_crypto_multisig_v1beta1_CompactBitArray_init_default, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_Fee_init_default \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_Tip_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_AuxSignerData_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_tx_v1beta1_SignDocDirectAux_init_default, _cosmos_tx_signing_v1beta1_SignMode_MIN, { \ + {NULL}, NULL \ + } \ + } +#define cosmos_tx_v1beta1_Tx_init_zero \ + { \ + false, cosmos_tx_v1beta1_TxBody_init_zero, false, cosmos_tx_v1beta1_AuthInfo_init_zero, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_TxRaw_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_SignDoc_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_tx_v1beta1_SignDocDirectAux_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero, {{NULL}, NULL}, 0, 0, false, cosmos_tx_v1beta1_Tip_init_zero } +#define cosmos_tx_v1beta1_TxBody_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_AuthInfo_init_zero \ + { {{NULL}, NULL}, false, cosmos_tx_v1beta1_Fee_init_zero, false, cosmos_tx_v1beta1_Tip_init_zero } +#define cosmos_tx_v1beta1_SignerInfo_init_zero \ + { false, google_protobuf_Any_init_zero, false, cosmos_tx_v1beta1_ModeInfo_init_zero, 0 } +#define cosmos_tx_v1beta1_ModeInfo_init_zero \ + { \ + 0, { cosmos_tx_v1beta1_ModeInfo_Single_init_zero } \ + } +#define cosmos_tx_v1beta1_ModeInfo_Single_init_zero \ + { _cosmos_tx_signing_v1beta1_SignMode_MIN } +#define cosmos_tx_v1beta1_ModeInfo_Multi_init_zero \ + { \ + false, cosmos_crypto_multisig_v1beta1_CompactBitArray_init_zero, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_Fee_init_zero \ + { \ + {{NULL}, NULL}, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_Tip_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_tx_v1beta1_AuxSignerData_init_zero \ + { \ + {{NULL}, NULL}, false, cosmos_tx_v1beta1_SignDocDirectAux_init_zero, _cosmos_tx_signing_v1beta1_SignMode_MIN, { \ + {NULL}, NULL \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_tx_v1beta1_TxRaw_body_bytes_tag 1 +#define cosmos_tx_v1beta1_TxRaw_auth_info_bytes_tag 2 +#define cosmos_tx_v1beta1_TxRaw_signatures_tag 3 +#define cosmos_tx_v1beta1_SignDoc_body_bytes_tag 1 +#define cosmos_tx_v1beta1_SignDoc_auth_info_bytes_tag 2 +#define cosmos_tx_v1beta1_SignDoc_chain_id_tag 3 +#define cosmos_tx_v1beta1_SignDoc_account_number_tag 4 +#define cosmos_tx_v1beta1_TxBody_messages_tag 1 +#define cosmos_tx_v1beta1_TxBody_memo_tag 2 +#define cosmos_tx_v1beta1_TxBody_timeout_height_tag 3 +#define cosmos_tx_v1beta1_TxBody_extension_options_tag 1023 +#define cosmos_tx_v1beta1_TxBody_non_critical_extension_options_tag 2047 +#define cosmos_tx_v1beta1_ModeInfo_Single_mode_tag 1 +#define cosmos_tx_v1beta1_ModeInfo_Multi_bitarray_tag 1 +#define cosmos_tx_v1beta1_ModeInfo_Multi_mode_infos_tag 2 +#define cosmos_tx_v1beta1_ModeInfo_single_tag 1 +#define cosmos_tx_v1beta1_ModeInfo_multi_tag 2 +#define cosmos_tx_v1beta1_SignerInfo_public_key_tag 1 +#define cosmos_tx_v1beta1_SignerInfo_mode_info_tag 2 +#define cosmos_tx_v1beta1_SignerInfo_sequence_tag 3 +#define cosmos_tx_v1beta1_Fee_amount_tag 1 +#define cosmos_tx_v1beta1_Fee_gas_limit_tag 2 +#define cosmos_tx_v1beta1_Fee_payer_tag 3 +#define cosmos_tx_v1beta1_Fee_granter_tag 4 +#define cosmos_tx_v1beta1_Tip_amount_tag 1 +#define cosmos_tx_v1beta1_Tip_tipper_tag 2 +#define cosmos_tx_v1beta1_SignDocDirectAux_body_bytes_tag 1 +#define cosmos_tx_v1beta1_SignDocDirectAux_public_key_tag 2 +#define cosmos_tx_v1beta1_SignDocDirectAux_chain_id_tag 3 +#define cosmos_tx_v1beta1_SignDocDirectAux_account_number_tag 4 +#define cosmos_tx_v1beta1_SignDocDirectAux_sequence_tag 5 +#define cosmos_tx_v1beta1_SignDocDirectAux_tip_tag 6 +#define cosmos_tx_v1beta1_AuthInfo_signer_infos_tag 1 +#define cosmos_tx_v1beta1_AuthInfo_fee_tag 2 +#define cosmos_tx_v1beta1_AuthInfo_tip_tag 3 +#define cosmos_tx_v1beta1_Tx_body_tag 1 +#define cosmos_tx_v1beta1_Tx_auth_info_tag 2 +#define cosmos_tx_v1beta1_Tx_signatures_tag 3 +#define cosmos_tx_v1beta1_AuxSignerData_address_tag 1 +#define cosmos_tx_v1beta1_AuxSignerData_sign_doc_tag 2 +#define cosmos_tx_v1beta1_AuxSignerData_mode_tag 3 +#define cosmos_tx_v1beta1_AuxSignerData_sig_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_tx_v1beta1_Tx_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auth_info, 2) \ + X(a, CALLBACK, REPEATED, BYTES, signatures, 3) +#define cosmos_tx_v1beta1_Tx_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_Tx_DEFAULT NULL +#define cosmos_tx_v1beta1_Tx_body_MSGTYPE cosmos_tx_v1beta1_TxBody +#define cosmos_tx_v1beta1_Tx_auth_info_MSGTYPE cosmos_tx_v1beta1_AuthInfo + +#define cosmos_tx_v1beta1_TxRaw_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, body_bytes, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, auth_info_bytes, 2) \ + X(a, CALLBACK, REPEATED, BYTES, signatures, 3) +#define cosmos_tx_v1beta1_TxRaw_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxRaw_DEFAULT NULL + +#define cosmos_tx_v1beta1_SignDoc_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, body_bytes, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, auth_info_bytes, 2) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 3) \ + X(a, STATIC, SINGULAR, UINT64, account_number, 4) +#define cosmos_tx_v1beta1_SignDoc_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_SignDoc_DEFAULT NULL + +#define cosmos_tx_v1beta1_SignDocDirectAux_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, body_bytes, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, public_key, 2) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 3) \ + X(a, STATIC, SINGULAR, UINT64, account_number, 4) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, tip, 6) +#define cosmos_tx_v1beta1_SignDocDirectAux_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_SignDocDirectAux_DEFAULT NULL +#define cosmos_tx_v1beta1_SignDocDirectAux_public_key_MSGTYPE google_protobuf_Any +#define cosmos_tx_v1beta1_SignDocDirectAux_tip_MSGTYPE cosmos_tx_v1beta1_Tip + +#define cosmos_tx_v1beta1_TxBody_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, messages, 1) \ + X(a, CALLBACK, SINGULAR, STRING, memo, 2) \ + X(a, STATIC, SINGULAR, UINT64, timeout_height, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, extension_options, 1023) \ + X(a, CALLBACK, REPEATED, MESSAGE, non_critical_extension_options, 2047) +#define cosmos_tx_v1beta1_TxBody_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_TxBody_DEFAULT NULL +#define cosmos_tx_v1beta1_TxBody_messages_MSGTYPE google_protobuf_Any +#define cosmos_tx_v1beta1_TxBody_extension_options_MSGTYPE google_protobuf_Any +#define cosmos_tx_v1beta1_TxBody_non_critical_extension_options_MSGTYPE google_protobuf_Any + +#define cosmos_tx_v1beta1_AuthInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, signer_infos, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, tip, 3) +#define cosmos_tx_v1beta1_AuthInfo_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_AuthInfo_DEFAULT NULL +#define cosmos_tx_v1beta1_AuthInfo_signer_infos_MSGTYPE cosmos_tx_v1beta1_SignerInfo +#define cosmos_tx_v1beta1_AuthInfo_fee_MSGTYPE cosmos_tx_v1beta1_Fee +#define cosmos_tx_v1beta1_AuthInfo_tip_MSGTYPE cosmos_tx_v1beta1_Tip + +#define cosmos_tx_v1beta1_SignerInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, public_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, mode_info, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define cosmos_tx_v1beta1_SignerInfo_CALLBACK NULL +#define cosmos_tx_v1beta1_SignerInfo_DEFAULT NULL +#define cosmos_tx_v1beta1_SignerInfo_public_key_MSGTYPE google_protobuf_Any +#define cosmos_tx_v1beta1_SignerInfo_mode_info_MSGTYPE cosmos_tx_v1beta1_ModeInfo + +#define cosmos_tx_v1beta1_ModeInfo_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, single, sum.single), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, multi, sum.multi), 2) +#define cosmos_tx_v1beta1_ModeInfo_CALLBACK NULL +#define cosmos_tx_v1beta1_ModeInfo_DEFAULT NULL +#define cosmos_tx_v1beta1_ModeInfo_sum_single_MSGTYPE cosmos_tx_v1beta1_ModeInfo_Single +#define cosmos_tx_v1beta1_ModeInfo_sum_multi_MSGTYPE cosmos_tx_v1beta1_ModeInfo_Multi + +#define cosmos_tx_v1beta1_ModeInfo_Single_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, mode, 1) +#define cosmos_tx_v1beta1_ModeInfo_Single_CALLBACK NULL +#define cosmos_tx_v1beta1_ModeInfo_Single_DEFAULT NULL + +#define cosmos_tx_v1beta1_ModeInfo_Multi_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, bitarray, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, mode_infos, 2) +#define cosmos_tx_v1beta1_ModeInfo_Multi_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_ModeInfo_Multi_DEFAULT NULL +#define cosmos_tx_v1beta1_ModeInfo_Multi_bitarray_MSGTYPE cosmos_crypto_multisig_v1beta1_CompactBitArray +#define cosmos_tx_v1beta1_ModeInfo_Multi_mode_infos_MSGTYPE cosmos_tx_v1beta1_ModeInfo + +#define cosmos_tx_v1beta1_Fee_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 1) \ + X(a, STATIC, SINGULAR, UINT64, gas_limit, 2) \ + X(a, CALLBACK, SINGULAR, STRING, payer, 3) \ + X(a, CALLBACK, SINGULAR, STRING, granter, 4) +#define cosmos_tx_v1beta1_Fee_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_Fee_DEFAULT NULL +#define cosmos_tx_v1beta1_Fee_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_tx_v1beta1_Tip_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 1) \ + X(a, CALLBACK, SINGULAR, STRING, tipper, 2) +#define cosmos_tx_v1beta1_Tip_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_Tip_DEFAULT NULL +#define cosmos_tx_v1beta1_Tip_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_tx_v1beta1_AuxSignerData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, sign_doc, 2) \ + X(a, STATIC, SINGULAR, UENUM, mode, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, sig, 4) +#define cosmos_tx_v1beta1_AuxSignerData_CALLBACK pb_default_field_callback +#define cosmos_tx_v1beta1_AuxSignerData_DEFAULT NULL +#define cosmos_tx_v1beta1_AuxSignerData_sign_doc_MSGTYPE cosmos_tx_v1beta1_SignDocDirectAux + +extern const pb_msgdesc_t cosmos_tx_v1beta1_Tx_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxRaw_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_SignDoc_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_SignDocDirectAux_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_TxBody_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_AuthInfo_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_SignerInfo_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_ModeInfo_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_ModeInfo_Single_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_ModeInfo_Multi_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_Fee_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_Tip_msg; +extern const pb_msgdesc_t cosmos_tx_v1beta1_AuxSignerData_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_tx_v1beta1_Tx_fields &cosmos_tx_v1beta1_Tx_msg +#define cosmos_tx_v1beta1_TxRaw_fields &cosmos_tx_v1beta1_TxRaw_msg +#define cosmos_tx_v1beta1_SignDoc_fields &cosmos_tx_v1beta1_SignDoc_msg +#define cosmos_tx_v1beta1_SignDocDirectAux_fields &cosmos_tx_v1beta1_SignDocDirectAux_msg +#define cosmos_tx_v1beta1_TxBody_fields &cosmos_tx_v1beta1_TxBody_msg +#define cosmos_tx_v1beta1_AuthInfo_fields &cosmos_tx_v1beta1_AuthInfo_msg +#define cosmos_tx_v1beta1_SignerInfo_fields &cosmos_tx_v1beta1_SignerInfo_msg +#define cosmos_tx_v1beta1_ModeInfo_fields &cosmos_tx_v1beta1_ModeInfo_msg +#define cosmos_tx_v1beta1_ModeInfo_Single_fields &cosmos_tx_v1beta1_ModeInfo_Single_msg +#define cosmos_tx_v1beta1_ModeInfo_Multi_fields &cosmos_tx_v1beta1_ModeInfo_Multi_msg +#define cosmos_tx_v1beta1_Fee_fields &cosmos_tx_v1beta1_Fee_msg +#define cosmos_tx_v1beta1_Tip_fields &cosmos_tx_v1beta1_Tip_msg +#define cosmos_tx_v1beta1_AuxSignerData_fields &cosmos_tx_v1beta1_AuxSignerData_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_tx_v1beta1_Tx_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxRaw_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_SignDoc_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_SignDocDirectAux_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_TxBody_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_AuthInfo_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_SignerInfo_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_ModeInfo_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_ModeInfo_Multi_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_Fee_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_Tip_size depends on runtime parameters */ +/* cosmos_tx_v1beta1_AuxSignerData_size depends on runtime parameters */ +#define COSMOS_TX_V1BETA1_COSMOS_TX_V1BETA1_TX_PB_H_MAX_SIZE cosmos_tx_v1beta1_ModeInfo_Single_size +#define cosmos_tx_v1beta1_ModeInfo_Single_size 3 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.c b/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.c new file mode 100644 index 0000000..a4d68a5 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/upgrade/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_upgrade_module_v1_Module, cosmos_upgrade_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.h b/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.h new file mode 100644 index 0000000..12772c7 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/module/v1/module.pb.h @@ -0,0 +1,55 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_UPGRADE_MODULE_V1_COSMOS_UPGRADE_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_UPGRADE_MODULE_V1_COSMOS_UPGRADE_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the upgrade module. */ +typedef struct _cosmos_upgrade_module_v1_Module { + /* authority defines the custom module authority. If not set, defaults to the governance module. */ + pb_callback_t authority; +} cosmos_upgrade_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_upgrade_module_v1_Module_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_module_v1_Module_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_upgrade_module_v1_Module_authority_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_upgrade_module_v1_Module_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, authority, 1) +#define cosmos_upgrade_module_v1_Module_CALLBACK pb_default_field_callback +#define cosmos_upgrade_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_upgrade_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_upgrade_module_v1_Module_fields &cosmos_upgrade_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_upgrade_module_v1_Module_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.c b/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.c new file mode 100644 index 0000000..35b95d9 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.c @@ -0,0 +1,29 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/upgrade/v1beta1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_upgrade_v1beta1_QueryCurrentPlanRequest, cosmos_upgrade_v1beta1_QueryCurrentPlanRequest, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryCurrentPlanResponse, cosmos_upgrade_v1beta1_QueryCurrentPlanResponse, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryAppliedPlanRequest, cosmos_upgrade_v1beta1_QueryAppliedPlanRequest, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryAppliedPlanResponse, cosmos_upgrade_v1beta1_QueryAppliedPlanResponse, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest, cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest, + AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse, + cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryModuleVersionsRequest, cosmos_upgrade_v1beta1_QueryModuleVersionsRequest, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryModuleVersionsResponse, cosmos_upgrade_v1beta1_QueryModuleVersionsResponse, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryAuthorityRequest, cosmos_upgrade_v1beta1_QueryAuthorityRequest, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_QueryAuthorityResponse, cosmos_upgrade_v1beta1_QueryAuthorityResponse, AUTO) diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.h b/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.h new file mode 100644 index 0000000..239a98e --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/query.pb.h @@ -0,0 +1,262 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_QUERY_PB_H_INCLUDED +#define PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/upgrade/v1beta1/upgrade.pb.h" +#include "google/api/annotations.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC + method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryCurrentPlanRequest { + char dummy_field; +} cosmos_upgrade_v1beta1_QueryCurrentPlanRequest; + +/* QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC + method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryCurrentPlanResponse { + /* plan is the current upgrade plan. */ + bool has_plan; + cosmos_upgrade_v1beta1_Plan plan; +} cosmos_upgrade_v1beta1_QueryCurrentPlanResponse; + +/* QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC + method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryAppliedPlanRequest { + /* name is the name of the applied plan to query for. */ + pb_callback_t name; +} cosmos_upgrade_v1beta1_QueryAppliedPlanRequest; + +/* QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC + method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryAppliedPlanResponse { + /* height is the block height at which the plan was applied. */ + int64_t height; +} cosmos_upgrade_v1beta1_QueryAppliedPlanResponse; + +/* QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState + RPC method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest { + /* last height of the current chain must be sent in request + as this is the height under which next consensus state is stored */ + int64_t last_height; +} cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest; + +/* QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState + RPC method. */ +typedef struct _cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse { + /* Since: cosmos-sdk 0.43 */ + pb_callback_t upgraded_consensus_state; +} cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse; + +/* QueryModuleVersionsRequest is the request type for the Query/ModuleVersions + RPC method. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_upgrade_v1beta1_QueryModuleVersionsRequest { + /* module_name is a field to query a specific module + consensus version from state. Leaving this empty will + fetch the full list of module versions from state */ + pb_callback_t module_name; +} cosmos_upgrade_v1beta1_QueryModuleVersionsRequest; + +/* QueryModuleVersionsResponse is the response type for the Query/ModuleVersions + RPC method. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_upgrade_v1beta1_QueryModuleVersionsResponse { + /* module_versions is a list of module names with their consensus versions. */ + pb_callback_t module_versions; +} cosmos_upgrade_v1beta1_QueryModuleVersionsResponse; + +/* QueryAuthorityRequest is the request type for Query/Authority + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_QueryAuthorityRequest { + char dummy_field; +} cosmos_upgrade_v1beta1_QueryAuthorityRequest; + +/* QueryAuthorityResponse is the response type for Query/Authority + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_QueryAuthorityResponse { + pb_callback_t address; +} cosmos_upgrade_v1beta1_QueryAuthorityResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_init_default \ + { false, cosmos_upgrade_v1beta1_Plan_init_default } +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_init_zero \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_init_zero \ + { false, cosmos_upgrade_v1beta1_Plan_init_zero } +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_init_zero \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_init_zero \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_init_zero \ + { 0 } +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_plan_tag 1 +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_name_tag 1 +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_height_tag 1 +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_last_height_tag 1 +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_upgraded_consensus_state_tag 2 +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_module_name_tag 1 +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_module_versions_tag 1 +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_address_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_FIELDLIST(X, a) + +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_CALLBACK NULL +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, plan, 1) +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_CALLBACK NULL +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_DEFAULT NULL +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_plan_MSGTYPE cosmos_upgrade_v1beta1_Plan + +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, name, 1) +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT64, height, 1) +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_CALLBACK NULL +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, last_height, 1) +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_CALLBACK NULL +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, upgraded_consensus_state, 2) +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, module_name, 1) +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, module_versions, 1) +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_DEFAULT NULL +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_module_versions_MSGTYPE cosmos_upgrade_v1beta1_ModuleVersion + +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_FIELDLIST(X, a) + +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_CALLBACK NULL +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryAuthorityRequest_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_QueryAuthorityResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_fields &cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_msg +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_fields &cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_msg +#define cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_fields &cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_msg +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_fields &cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_msg +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_fields \ + &cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_msg +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_fields \ + &cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_msg +#define cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_fields &cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_msg +#define cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_fields &cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_msg +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_fields &cosmos_upgrade_v1beta1_QueryAuthorityRequest_msg +#define cosmos_upgrade_v1beta1_QueryAuthorityResponse_fields &cosmos_upgrade_v1beta1_QueryAuthorityResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_upgrade_v1beta1_QueryAppliedPlanRequest_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateResponse_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_QueryModuleVersionsRequest_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_QueryModuleVersionsResponse_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_QueryAuthorityResponse_size depends on runtime parameters */ +#define COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_QUERY_PB_H_MAX_SIZE \ + cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_size +#define cosmos_upgrade_v1beta1_QueryAppliedPlanResponse_size 11 +#define cosmos_upgrade_v1beta1_QueryAuthorityRequest_size 0 +#define cosmos_upgrade_v1beta1_QueryCurrentPlanRequest_size 0 +#define cosmos_upgrade_v1beta1_QueryUpgradedConsensusStateRequest_size 11 +#if defined(cosmos_upgrade_v1beta1_Plan_size) +#define cosmos_upgrade_v1beta1_QueryCurrentPlanResponse_size (6 + cosmos_upgrade_v1beta1_Plan_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.c new file mode 100644 index 0000000..074a333 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/upgrade/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_upgrade_v1beta1_MsgSoftwareUpgrade, cosmos_upgrade_v1beta1_MsgSoftwareUpgrade, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse, cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_MsgCancelUpgrade, cosmos_upgrade_v1beta1_MsgCancelUpgrade, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse, cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse, AUTO) diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.h new file mode 100644 index 0000000..0d84a75 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/tx.pb.h @@ -0,0 +1,126 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos/upgrade/v1beta1/upgrade.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_MsgSoftwareUpgrade { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; + /* plan is the upgrade plan. */ + bool has_plan; + cosmos_upgrade_v1beta1_Plan plan; +} cosmos_upgrade_v1beta1_MsgSoftwareUpgrade; + +/* MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse { + char dummy_field; +} cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse; + +/* MsgCancelUpgrade is the Msg/CancelUpgrade request type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_MsgCancelUpgrade { + /* authority is the address that controls the module (defaults to x/gov unless overwritten). */ + pb_callback_t authority; +} cosmos_upgrade_v1beta1_MsgCancelUpgrade; + +/* MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse { + char dummy_field; +} cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_init_default \ + { {{NULL}, NULL}, false, cosmos_upgrade_v1beta1_Plan_init_default } +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_init_default \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_init_default \ + { 0 } +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_init_zero \ + { {{NULL}, NULL}, false, cosmos_upgrade_v1beta1_Plan_init_zero } +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_init_zero \ + { 0 } +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_authority_tag 1 +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_plan_tag 2 +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_authority_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, authority, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, plan, 2) +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_DEFAULT NULL +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_plan_MSGTYPE cosmos_upgrade_v1beta1_Plan + +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_FIELDLIST(X, a) + +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_CALLBACK NULL +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, authority, 1) +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_FIELDLIST(X, a) + +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_CALLBACK NULL +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_MsgCancelUpgrade_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_fields &cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_msg +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_fields &cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_msg +#define cosmos_upgrade_v1beta1_MsgCancelUpgrade_fields &cosmos_upgrade_v1beta1_MsgCancelUpgrade_msg +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_fields &cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_upgrade_v1beta1_MsgSoftwareUpgrade_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_MsgCancelUpgrade_size depends on runtime parameters */ +#define cosmos_upgrade_v1beta1_MsgCancelUpgradeResponse_size 0 +#define cosmos_upgrade_v1beta1_MsgSoftwareUpgradeResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.c b/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.c new file mode 100644 index 0000000..895e997 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/upgrade/v1beta1/upgrade.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_upgrade_v1beta1_Plan, cosmos_upgrade_v1beta1_Plan, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_SoftwareUpgradeProposal, cosmos_upgrade_v1beta1_SoftwareUpgradeProposal, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal, cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal, AUTO) + +PB_BIND(cosmos_upgrade_v1beta1_ModuleVersion, cosmos_upgrade_v1beta1_ModuleVersion, AUTO) diff --git a/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.h b/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.h new file mode 100644 index 0000000..9af84f1 --- /dev/null +++ b/app/src/protobuf/cosmos/upgrade/v1beta1/upgrade.pb.h @@ -0,0 +1,177 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_UPGRADE_PB_H_INCLUDED +#define PB_COSMOS_UPGRADE_V1BETA1_COSMOS_UPGRADE_V1BETA1_UPGRADE_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "google/protobuf/timestamp.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Plan specifies information about a planned upgrade and when it should occur. */ +typedef struct _cosmos_upgrade_v1beta1_Plan { + /* Sets the name for the upgrade. This name will be used by the upgraded + version of the software to apply any special "on-upgrade" commands during + the first BeginBlock method after the upgrade is applied. It is also used + to detect whether a software version can handle a given upgrade. If no + upgrade handler with this name has been set in the software, it will be + assumed that the software is out-of-date when the upgrade Time or Height is + reached and the software will exit. */ + pb_callback_t name; + /* Deprecated: Time based upgrades have been deprecated. Time based upgrade logic + has been removed from the SDK. + If this field is not empty, an error will be thrown. */ + bool has_time; + google_protobuf_Timestamp time; + /* The height at which the upgrade must be performed. */ + int64_t height; + /* Any application specific upgrade info to be included on-chain + such as a git commit that validators could automatically upgrade to */ + pb_callback_t info; + /* Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been + moved to the IBC module in the sub module 02-client. + If this field is not empty, an error will be thrown. */ + bool has_upgraded_client_state; + google_protobuf_Any upgraded_client_state; +} cosmos_upgrade_v1beta1_Plan; + +/* SoftwareUpgradeProposal is a gov Content type for initiating a software + upgrade. + Deprecated: This legacy proposal is deprecated in favor of Msg-based gov + proposals, see MsgSoftwareUpgrade. */ +typedef struct _cosmos_upgrade_v1beta1_SoftwareUpgradeProposal { + /* title of the proposal */ + pb_callback_t title; + /* description of the proposal */ + pb_callback_t description; + /* plan of the proposal */ + bool has_plan; + cosmos_upgrade_v1beta1_Plan plan; +} cosmos_upgrade_v1beta1_SoftwareUpgradeProposal; + +/* CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software + upgrade. + Deprecated: This legacy proposal is deprecated in favor of Msg-based gov + proposals, see MsgCancelUpgrade. */ +typedef struct _cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal { + /* title of the proposal */ + pb_callback_t title; + /* description of the proposal */ + pb_callback_t description; +} cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal; + +/* ModuleVersion specifies a module and its consensus version. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_upgrade_v1beta1_ModuleVersion { + /* name of the app module */ + pb_callback_t name; + /* consensus version of the app module */ + uint64_t version; +} cosmos_upgrade_v1beta1_ModuleVersion; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_upgrade_v1beta1_Plan_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, 0, {{NULL}, NULL}, false, \ + google_protobuf_Any_init_default \ + } +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_upgrade_v1beta1_Plan_init_default } +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_ModuleVersion_init_default \ + { {{NULL}, NULL}, 0 } +#define cosmos_upgrade_v1beta1_Plan_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, 0, {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_upgrade_v1beta1_Plan_init_zero } +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_upgrade_v1beta1_ModuleVersion_init_zero \ + { {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_upgrade_v1beta1_Plan_name_tag 1 +#define cosmos_upgrade_v1beta1_Plan_time_tag 2 +#define cosmos_upgrade_v1beta1_Plan_height_tag 3 +#define cosmos_upgrade_v1beta1_Plan_info_tag 4 +#define cosmos_upgrade_v1beta1_Plan_upgraded_client_state_tag 5 +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_title_tag 1 +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_description_tag 2 +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_plan_tag 3 +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_title_tag 1 +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_description_tag 2 +#define cosmos_upgrade_v1beta1_ModuleVersion_name_tag 1 +#define cosmos_upgrade_v1beta1_ModuleVersion_version_tag 2 + +/* Struct field encoding specification for nanopb */ +#define cosmos_upgrade_v1beta1_Plan_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, upgraded_client_state, 5) +#define cosmos_upgrade_v1beta1_Plan_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_Plan_DEFAULT NULL +#define cosmos_upgrade_v1beta1_Plan_time_MSGTYPE google_protobuf_Timestamp +#define cosmos_upgrade_v1beta1_Plan_upgraded_client_state_MSGTYPE google_protobuf_Any + +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, plan, 3) +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_DEFAULT NULL +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_plan_MSGTYPE cosmos_upgrade_v1beta1_Plan + +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_DEFAULT NULL + +#define cosmos_upgrade_v1beta1_ModuleVersion_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, STATIC, SINGULAR, UINT64, version, 2) +#define cosmos_upgrade_v1beta1_ModuleVersion_CALLBACK pb_default_field_callback +#define cosmos_upgrade_v1beta1_ModuleVersion_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_Plan_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_msg; +extern const pb_msgdesc_t cosmos_upgrade_v1beta1_ModuleVersion_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_upgrade_v1beta1_Plan_fields &cosmos_upgrade_v1beta1_Plan_msg +#define cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_fields &cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_msg +#define cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_fields &cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_msg +#define cosmos_upgrade_v1beta1_ModuleVersion_fields &cosmos_upgrade_v1beta1_ModuleVersion_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_upgrade_v1beta1_Plan_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_SoftwareUpgradeProposal_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_CancelSoftwareUpgradeProposal_size depends on runtime parameters */ +/* cosmos_upgrade_v1beta1_ModuleVersion_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/vesting/module/v1/module.pb.c b/app/src/protobuf/cosmos/vesting/module/v1/module.pb.c new file mode 100644 index 0000000..ec55373 --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/module/v1/module.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/vesting/module/v1/module.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_vesting_module_v1_Module, cosmos_vesting_module_v1_Module, AUTO) diff --git a/app/src/protobuf/cosmos/vesting/module/v1/module.pb.h b/app/src/protobuf/cosmos/vesting/module/v1/module.pb.h new file mode 100644 index 0000000..965e873 --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/module/v1/module.pb.h @@ -0,0 +1,51 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_VESTING_MODULE_V1_COSMOS_VESTING_MODULE_V1_MODULE_PB_H_INCLUDED +#define PB_COSMOS_VESTING_MODULE_V1_COSMOS_VESTING_MODULE_V1_MODULE_PB_H_INCLUDED +#include + +#include "cosmos/app/v1alpha1/module.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Module is the config object of the vesting module. */ +typedef struct _cosmos_vesting_module_v1_Module { + char dummy_field; +} cosmos_vesting_module_v1_Module; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_vesting_module_v1_Module_init_default \ + { 0 } +#define cosmos_vesting_module_v1_Module_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ + +/* Struct field encoding specification for nanopb */ +#define cosmos_vesting_module_v1_Module_FIELDLIST(X, a) + +#define cosmos_vesting_module_v1_Module_CALLBACK NULL +#define cosmos_vesting_module_v1_Module_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_vesting_module_v1_Module_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_vesting_module_v1_Module_fields &cosmos_vesting_module_v1_Module_msg + +/* Maximum encoded size of messages (where known) */ +#define COSMOS_VESTING_MODULE_V1_COSMOS_VESTING_MODULE_V1_MODULE_PB_H_MAX_SIZE cosmos_vesting_module_v1_Module_size +#define cosmos_vesting_module_v1_Module_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.c b/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.c new file mode 100644 index 0000000..a057fbc --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/vesting/v1beta1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_vesting_v1beta1_MsgCreateVestingAccount, cosmos_vesting_v1beta1_MsgCreateVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse, cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount, cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse, + cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount, cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse, + cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse, AUTO) diff --git a/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.h b/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.h new file mode 100644 index 0000000..9f1f0ef --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/v1beta1/tx.pb.h @@ -0,0 +1,200 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_VESTING_V1BETA1_COSMOS_VESTING_V1BETA1_TX_PB_H_INCLUDED +#define PB_COSMOS_VESTING_V1BETA1_COSMOS_VESTING_V1BETA1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos/vesting/v1beta1/vesting.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgCreateVestingAccount defines a message that enables creating a vesting + account. */ +typedef struct _cosmos_vesting_v1beta1_MsgCreateVestingAccount { + pb_callback_t from_address; + pb_callback_t to_address; + pb_callback_t amount; + /* end of vesting as unix time (in seconds). */ + int64_t end_time; + bool delayed; +} cosmos_vesting_v1beta1_MsgCreateVestingAccount; + +/* MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. */ +typedef struct _cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse { + char dummy_field; +} cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse; + +/* MsgCreatePermanentLockedAccount defines a message that enables creating a permanent + locked account. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount { + pb_callback_t from_address; + pb_callback_t to_address; + pb_callback_t amount; +} cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount; + +/* MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse { + char dummy_field; +} cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse; + +/* MsgCreateVestingAccount defines a message that enables creating a vesting + account. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount { + pb_callback_t from_address; + pb_callback_t to_address; + /* start of vesting as unix time (in seconds). */ + int64_t start_time; + pb_callback_t vesting_periods; +} cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount; + +/* MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount + response type. + + Since: cosmos-sdk 0.46 */ +typedef struct _cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse { + char dummy_field; +} cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_init_default \ + { 0 } +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_init_default \ + { 0 } +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_init_default \ + { 0 } +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_init_zero \ + { 0 } +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_init_zero \ + { 0 } +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_from_address_tag 1 +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_to_address_tag 2 +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_amount_tag 3 +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_end_time_tag 4 +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_delayed_tag 5 +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_from_address_tag 1 +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_to_address_tag 2 +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_amount_tag 3 +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_from_address_tag 1 +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_to_address_tag 2 +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_start_time_tag 3 +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_vesting_periods_tag 4 + +/* Struct field encoding specification for nanopb */ +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, from_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, to_address, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) \ + X(a, STATIC, SINGULAR, INT64, end_time, 4) \ + X(a, STATIC, SINGULAR, BOOL, delayed, 5) +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_FIELDLIST(X, a) + +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_CALLBACK NULL +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_DEFAULT NULL + +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, from_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, to_address, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 3) +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_FIELDLIST(X, a) + +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_CALLBACK NULL +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_DEFAULT NULL + +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, from_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, to_address, 2) \ + X(a, STATIC, SINGULAR, INT64, start_time, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, vesting_periods, 4) +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_vesting_periods_MSGTYPE cosmos_vesting_v1beta1_Period + +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_FIELDLIST(X, a) + +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_CALLBACK NULL +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreateVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_vesting_v1beta1_MsgCreateVestingAccount_fields &cosmos_vesting_v1beta1_MsgCreateVestingAccount_msg +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_fields \ + &cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_msg +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_fields \ + &cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_msg +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_fields \ + &cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_msg +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_fields \ + &cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_msg +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_fields \ + &cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_vesting_v1beta1_MsgCreateVestingAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccount_size depends on runtime parameters */ +#define cosmos_vesting_v1beta1_MsgCreatePeriodicVestingAccountResponse_size 0 +#define cosmos_vesting_v1beta1_MsgCreatePermanentLockedAccountResponse_size 0 +#define cosmos_vesting_v1beta1_MsgCreateVestingAccountResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.c b/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.c new file mode 100644 index 0000000..2b5188d --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos/vesting/v1beta1/vesting.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_vesting_v1beta1_BaseVestingAccount, cosmos_vesting_v1beta1_BaseVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_ContinuousVestingAccount, cosmos_vesting_v1beta1_ContinuousVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_DelayedVestingAccount, cosmos_vesting_v1beta1_DelayedVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_Period, cosmos_vesting_v1beta1_Period, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_PeriodicVestingAccount, cosmos_vesting_v1beta1_PeriodicVestingAccount, AUTO) + +PB_BIND(cosmos_vesting_v1beta1_PermanentLockedAccount, cosmos_vesting_v1beta1_PermanentLockedAccount, AUTO) diff --git a/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.h b/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.h new file mode 100644 index 0000000..2b8c41f --- /dev/null +++ b/app/src/protobuf/cosmos/vesting/v1beta1/vesting.pb.h @@ -0,0 +1,203 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_VESTING_V1BETA1_COSMOS_VESTING_V1BETA1_VESTING_PB_H_INCLUDED +#define PB_COSMOS_VESTING_V1BETA1_COSMOS_VESTING_V1BETA1_VESTING_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/auth/v1beta1/auth.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* BaseVestingAccount implements the VestingAccount interface. It contains all + the necessary fields needed for any vesting account implementation. */ +typedef struct _cosmos_vesting_v1beta1_BaseVestingAccount { + bool has_base_account; + cosmos_auth_v1beta1_BaseAccount base_account; + pb_callback_t original_vesting; + pb_callback_t delegated_free; + pb_callback_t delegated_vesting; + /* Vesting end time, as unix timestamp (in seconds). */ + int64_t end_time; +} cosmos_vesting_v1beta1_BaseVestingAccount; + +/* ContinuousVestingAccount implements the VestingAccount interface. It + continuously vests by unlocking coins linearly with respect to time. */ +typedef struct _cosmos_vesting_v1beta1_ContinuousVestingAccount { + bool has_base_vesting_account; + cosmos_vesting_v1beta1_BaseVestingAccount base_vesting_account; + /* Vesting start time, as unix timestamp (in seconds). */ + int64_t start_time; +} cosmos_vesting_v1beta1_ContinuousVestingAccount; + +/* DelayedVestingAccount implements the VestingAccount interface. It vests all + coins after a specific time, but non prior. In other words, it keeps them + locked until a specified time. */ +typedef struct _cosmos_vesting_v1beta1_DelayedVestingAccount { + bool has_base_vesting_account; + cosmos_vesting_v1beta1_BaseVestingAccount base_vesting_account; +} cosmos_vesting_v1beta1_DelayedVestingAccount; + +/* Period defines a length of time and amount of coins that will vest. */ +typedef struct _cosmos_vesting_v1beta1_Period { + /* Period duration in seconds. */ + int64_t length; + pb_callback_t amount; +} cosmos_vesting_v1beta1_Period; + +/* PeriodicVestingAccount implements the VestingAccount interface. It + periodically vests by unlocking coins during each specified period. */ +typedef struct _cosmos_vesting_v1beta1_PeriodicVestingAccount { + bool has_base_vesting_account; + cosmos_vesting_v1beta1_BaseVestingAccount base_vesting_account; + int64_t start_time; + pb_callback_t vesting_periods; +} cosmos_vesting_v1beta1_PeriodicVestingAccount; + +/* PermanentLockedAccount implements the VestingAccount interface. It does + not ever release coins, locking them indefinitely. Coins in this account can + still be used for delegating and for governance votes even while locked. + + Since: cosmos-sdk 0.43 */ +typedef struct _cosmos_vesting_v1beta1_PermanentLockedAccount { + bool has_base_vesting_account; + cosmos_vesting_v1beta1_BaseVestingAccount base_vesting_account; +} cosmos_vesting_v1beta1_PermanentLockedAccount; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define cosmos_vesting_v1beta1_BaseVestingAccount_init_default \ + { false, cosmos_auth_v1beta1_BaseAccount_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_init_default \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_default, 0 } +#define cosmos_vesting_v1beta1_DelayedVestingAccount_init_default \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_default } +#define cosmos_vesting_v1beta1_Period_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_init_default \ + { \ + false, cosmos_vesting_v1beta1_BaseVestingAccount_init_default, 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_PermanentLockedAccount_init_default \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_default } +#define cosmos_vesting_v1beta1_BaseVestingAccount_init_zero \ + { false, cosmos_auth_v1beta1_BaseAccount_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_init_zero \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_zero, 0 } +#define cosmos_vesting_v1beta1_DelayedVestingAccount_init_zero \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_zero } +#define cosmos_vesting_v1beta1_Period_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_init_zero \ + { \ + false, cosmos_vesting_v1beta1_BaseVestingAccount_init_zero, 0, { {NULL}, NULL } \ + } +#define cosmos_vesting_v1beta1_PermanentLockedAccount_init_zero \ + { false, cosmos_vesting_v1beta1_BaseVestingAccount_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_vesting_v1beta1_BaseVestingAccount_base_account_tag 1 +#define cosmos_vesting_v1beta1_BaseVestingAccount_original_vesting_tag 2 +#define cosmos_vesting_v1beta1_BaseVestingAccount_delegated_free_tag 3 +#define cosmos_vesting_v1beta1_BaseVestingAccount_delegated_vesting_tag 4 +#define cosmos_vesting_v1beta1_BaseVestingAccount_end_time_tag 5 +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_base_vesting_account_tag 1 +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_start_time_tag 2 +#define cosmos_vesting_v1beta1_DelayedVestingAccount_base_vesting_account_tag 1 +#define cosmos_vesting_v1beta1_Period_length_tag 1 +#define cosmos_vesting_v1beta1_Period_amount_tag 2 +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_base_vesting_account_tag 1 +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_start_time_tag 2 +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_vesting_periods_tag 3 +#define cosmos_vesting_v1beta1_PermanentLockedAccount_base_vesting_account_tag 1 + +/* Struct field encoding specification for nanopb */ +#define cosmos_vesting_v1beta1_BaseVestingAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_account, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, original_vesting, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegated_free, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegated_vesting, 4) \ + X(a, STATIC, SINGULAR, INT64, end_time, 5) +#define cosmos_vesting_v1beta1_BaseVestingAccount_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_BaseVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_BaseVestingAccount_base_account_MSGTYPE cosmos_auth_v1beta1_BaseAccount +#define cosmos_vesting_v1beta1_BaseVestingAccount_original_vesting_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_vesting_v1beta1_BaseVestingAccount_delegated_free_MSGTYPE cosmos_base_v1beta1_Coin +#define cosmos_vesting_v1beta1_BaseVestingAccount_delegated_vesting_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_vesting_account, 1) \ + X(a, STATIC, SINGULAR, INT64, start_time, 2) +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_CALLBACK NULL +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_base_vesting_account_MSGTYPE \ + cosmos_vesting_v1beta1_BaseVestingAccount + +#define cosmos_vesting_v1beta1_DelayedVestingAccount_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, base_vesting_account, 1) +#define cosmos_vesting_v1beta1_DelayedVestingAccount_CALLBACK NULL +#define cosmos_vesting_v1beta1_DelayedVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_DelayedVestingAccount_base_vesting_account_MSGTYPE cosmos_vesting_v1beta1_BaseVestingAccount + +#define cosmos_vesting_v1beta1_Period_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, length, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, amount, 2) +#define cosmos_vesting_v1beta1_Period_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_Period_DEFAULT NULL +#define cosmos_vesting_v1beta1_Period_amount_MSGTYPE cosmos_base_v1beta1_Coin + +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_vesting_account, 1) \ + X(a, STATIC, SINGULAR, INT64, start_time, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, vesting_periods, 3) +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_CALLBACK pb_default_field_callback +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_base_vesting_account_MSGTYPE cosmos_vesting_v1beta1_BaseVestingAccount +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_vesting_periods_MSGTYPE cosmos_vesting_v1beta1_Period + +#define cosmos_vesting_v1beta1_PermanentLockedAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_vesting_account, 1) +#define cosmos_vesting_v1beta1_PermanentLockedAccount_CALLBACK NULL +#define cosmos_vesting_v1beta1_PermanentLockedAccount_DEFAULT NULL +#define cosmos_vesting_v1beta1_PermanentLockedAccount_base_vesting_account_MSGTYPE cosmos_vesting_v1beta1_BaseVestingAccount + +extern const pb_msgdesc_t cosmos_vesting_v1beta1_BaseVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_ContinuousVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_DelayedVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_Period_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_PeriodicVestingAccount_msg; +extern const pb_msgdesc_t cosmos_vesting_v1beta1_PermanentLockedAccount_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_vesting_v1beta1_BaseVestingAccount_fields &cosmos_vesting_v1beta1_BaseVestingAccount_msg +#define cosmos_vesting_v1beta1_ContinuousVestingAccount_fields &cosmos_vesting_v1beta1_ContinuousVestingAccount_msg +#define cosmos_vesting_v1beta1_DelayedVestingAccount_fields &cosmos_vesting_v1beta1_DelayedVestingAccount_msg +#define cosmos_vesting_v1beta1_Period_fields &cosmos_vesting_v1beta1_Period_msg +#define cosmos_vesting_v1beta1_PeriodicVestingAccount_fields &cosmos_vesting_v1beta1_PeriodicVestingAccount_msg +#define cosmos_vesting_v1beta1_PermanentLockedAccount_fields &cosmos_vesting_v1beta1_PermanentLockedAccount_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_vesting_v1beta1_BaseVestingAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_ContinuousVestingAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_DelayedVestingAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_Period_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_PeriodicVestingAccount_size depends on runtime parameters */ +/* cosmos_vesting_v1beta1_PermanentLockedAccount_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/cosmos_proto/cosmos.pb.c b/app/src/protobuf/cosmos_proto/cosmos.pb.c new file mode 100644 index 0000000..6013c02 --- /dev/null +++ b/app/src/protobuf/cosmos_proto/cosmos.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "cosmos_proto/cosmos.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(cosmos_proto_InterfaceDescriptor, cosmos_proto_InterfaceDescriptor, AUTO) + +PB_BIND(cosmos_proto_ScalarDescriptor, cosmos_proto_ScalarDescriptor, AUTO) diff --git a/app/src/protobuf/cosmos_proto/cosmos.pb.h b/app/src/protobuf/cosmos_proto/cosmos.pb.h new file mode 100644 index 0000000..031c657 --- /dev/null +++ b/app/src/protobuf/cosmos_proto/cosmos.pb.h @@ -0,0 +1,139 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_COSMOS_PROTO_COSMOS_PROTO_COSMOS_PB_H_INCLUDED +#define PB_COSMOS_PROTO_COSMOS_PROTO_COSMOS_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _cosmos_proto_ScalarType { + cosmos_proto_ScalarType_SCALAR_TYPE_UNSPECIFIED = 0, + cosmos_proto_ScalarType_SCALAR_TYPE_STRING = 1, + cosmos_proto_ScalarType_SCALAR_TYPE_BYTES = 2 +} cosmos_proto_ScalarType; + +/* Struct definitions */ +/* InterfaceDescriptor describes an interface type to be used with + accepts_interface and implements_interface and declared by declare_interface. */ +typedef struct _cosmos_proto_InterfaceDescriptor { + /* name is the name of the interface. It should be a short-name (without + a period) such that the fully qualified name of the interface will be + package.name, ex. for the package a.b and interface named C, the + fully-qualified name will be a.b.C. */ + pb_callback_t name; + /* description is a human-readable description of the interface and its + purpose. */ + pb_callback_t description; +} cosmos_proto_InterfaceDescriptor; + +/* ScalarDescriptor describes an scalar type to be used with + the scalar field option and declared by declare_scalar. + Scalars extend simple protobuf built-in types with additional + syntax and semantics, for instance to represent big integers. + Scalars should ideally define an encoding such that there is only one + valid syntactical representation for a given semantic meaning, + i.e. the encoding should be deterministic. */ +typedef struct _cosmos_proto_ScalarDescriptor { + /* name is the name of the scalar. It should be a short-name (without + a period) such that the fully qualified name of the scalar will be + package.name, ex. for the package a.b and scalar named C, the + fully-qualified name will be a.b.C. */ + pb_callback_t name; + /* description is a human-readable description of the scalar and its + encoding format. For instance a big integer or decimal scalar should + specify precisely the expected encoding format. */ + pb_callback_t description; + /* field_type is the type of field with which this scalar can be used. + Scalars can be used with one and only one type of field so that + encoding standards and simple and clear. Currently only string and + bytes fields are supported for scalars. */ + pb_callback_t field_type; +} cosmos_proto_ScalarDescriptor; + +/* Extensions */ +/* Extension field cosmos_proto_implements_interface was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field cosmos_proto_accepts_interface was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field cosmos_proto_scalar was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field cosmos_proto_declare_interface was skipped because only "optional" + type of extension fields is currently supported. */ +/* Extension field cosmos_proto_declare_scalar was skipped because only "optional" + type of extension fields is currently supported. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _cosmos_proto_ScalarType_MIN cosmos_proto_ScalarType_SCALAR_TYPE_UNSPECIFIED +#define _cosmos_proto_ScalarType_MAX cosmos_proto_ScalarType_SCALAR_TYPE_BYTES +#define _cosmos_proto_ScalarType_ARRAYSIZE ((cosmos_proto_ScalarType)(cosmos_proto_ScalarType_SCALAR_TYPE_BYTES + 1)) + +#define cosmos_proto_ScalarDescriptor_field_type_ENUMTYPE cosmos_proto_ScalarType + +/* Initializer values for message structs */ +#define cosmos_proto_InterfaceDescriptor_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_proto_ScalarDescriptor_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_proto_InterfaceDescriptor_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define cosmos_proto_ScalarDescriptor_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define cosmos_proto_InterfaceDescriptor_name_tag 1 +#define cosmos_proto_InterfaceDescriptor_description_tag 2 +#define cosmos_proto_ScalarDescriptor_name_tag 1 +#define cosmos_proto_ScalarDescriptor_description_tag 2 +#define cosmos_proto_ScalarDescriptor_field_type_tag 3 +#define cosmos_proto_implements_interface_tag 93001 +#define cosmos_proto_accepts_interface_tag 93001 +#define cosmos_proto_scalar_tag 93002 +#define cosmos_proto_declare_interface_tag 793021 +#define cosmos_proto_declare_scalar_tag 793022 + +/* Struct field encoding specification for nanopb */ +#define cosmos_proto_InterfaceDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) +#define cosmos_proto_InterfaceDescriptor_CALLBACK pb_default_field_callback +#define cosmos_proto_InterfaceDescriptor_DEFAULT NULL + +#define cosmos_proto_ScalarDescriptor_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, name, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, CALLBACK, REPEATED, UENUM, field_type, 3) +#define cosmos_proto_ScalarDescriptor_CALLBACK pb_default_field_callback +#define cosmos_proto_ScalarDescriptor_DEFAULT NULL + +extern const pb_msgdesc_t cosmos_proto_InterfaceDescriptor_msg; +extern const pb_msgdesc_t cosmos_proto_ScalarDescriptor_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define cosmos_proto_InterfaceDescriptor_fields &cosmos_proto_InterfaceDescriptor_msg +#define cosmos_proto_ScalarDescriptor_fields &cosmos_proto_ScalarDescriptor_msg + +/* Maximum encoded size of messages (where known) */ +/* cosmos_proto_InterfaceDescriptor_size depends on runtime parameters */ +/* cosmos_proto_ScalarDescriptor_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/gogoproto/gogo.pb.c b/app/src/protobuf/gogoproto/gogo.pb.c new file mode 100644 index 0000000..573d930 --- /dev/null +++ b/app/src/protobuf/gogoproto/gogo.pb.c @@ -0,0 +1,859 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "gogoproto/gogo.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Definition for extension field gogoproto_goproto_enum_prefix */ +typedef struct _gogoproto_goproto_enum_prefix_extmsg { + bool goproto_enum_prefix; +} gogoproto_goproto_enum_prefix_extmsg; +#define gogoproto_goproto_enum_prefix_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_enum_prefix, 62001) +#define gogoproto_goproto_enum_prefix_extmsg_CALLBACK NULL +#define gogoproto_goproto_enum_prefix_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_enum_prefix_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_enum_prefix_extmsg, gogoproto_goproto_enum_prefix_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_enum_prefix = {NULL, NULL, &gogoproto_goproto_enum_prefix_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_enum_stringer */ +typedef struct _gogoproto_goproto_enum_stringer_extmsg { + bool goproto_enum_stringer; +} gogoproto_goproto_enum_stringer_extmsg; +#define gogoproto_goproto_enum_stringer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_enum_stringer, 62021) +#define gogoproto_goproto_enum_stringer_extmsg_CALLBACK NULL +#define gogoproto_goproto_enum_stringer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_enum_stringer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_enum_stringer_extmsg, gogoproto_goproto_enum_stringer_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_enum_stringer = {NULL, NULL, &gogoproto_goproto_enum_stringer_extmsg_msg}; + +/* Definition for extension field gogoproto_enum_stringer */ +typedef struct _gogoproto_enum_stringer_extmsg { + bool enum_stringer; +} gogoproto_enum_stringer_extmsg; +#define gogoproto_enum_stringer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, enum_stringer, 62022) +#define gogoproto_enum_stringer_extmsg_CALLBACK NULL +#define gogoproto_enum_stringer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enum_stringer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enum_stringer_extmsg, gogoproto_enum_stringer_extmsg, 4) +const pb_extension_type_t gogoproto_enum_stringer = {NULL, NULL, &gogoproto_enum_stringer_extmsg_msg}; + +/* Definition for extension field gogoproto_enum_customname */ +typedef struct _gogoproto_enum_customname_extmsg { + pb_callback_t enum_customname; +} gogoproto_enum_customname_extmsg; +#define gogoproto_enum_customname_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, enum_customname, 62023) +#define gogoproto_enum_customname_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_enum_customname_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enum_customname_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enum_customname_extmsg, gogoproto_enum_customname_extmsg, 4) +const pb_extension_type_t gogoproto_enum_customname = {NULL, NULL, &gogoproto_enum_customname_extmsg_msg}; + +/* Definition for extension field gogoproto_enumdecl */ +typedef struct _gogoproto_enumdecl_extmsg { + bool enumdecl; +} gogoproto_enumdecl_extmsg; +#define gogoproto_enumdecl_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, enumdecl, 62024) +#define gogoproto_enumdecl_extmsg_CALLBACK NULL +#define gogoproto_enumdecl_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enumdecl_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enumdecl_extmsg, gogoproto_enumdecl_extmsg, 4) +const pb_extension_type_t gogoproto_enumdecl = {NULL, NULL, &gogoproto_enumdecl_extmsg_msg}; + +/* Definition for extension field gogoproto_enumvalue_customname */ +typedef struct _gogoproto_enumvalue_customname_extmsg { + pb_callback_t enumvalue_customname; +} gogoproto_enumvalue_customname_extmsg; +#define gogoproto_enumvalue_customname_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, enumvalue_customname, 1234) +#define gogoproto_enumvalue_customname_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_enumvalue_customname_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enumvalue_customname_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enumvalue_customname_extmsg, gogoproto_enumvalue_customname_extmsg, 4) +const pb_extension_type_t gogoproto_enumvalue_customname = {NULL, NULL, &gogoproto_enumvalue_customname_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_getters_all */ +typedef struct _gogoproto_goproto_getters_all_extmsg { + bool goproto_getters_all; +} gogoproto_goproto_getters_all_extmsg; +#define gogoproto_goproto_getters_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_getters_all, 63001) +#define gogoproto_goproto_getters_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_getters_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_getters_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_getters_all_extmsg, gogoproto_goproto_getters_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_getters_all = {NULL, NULL, &gogoproto_goproto_getters_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_enum_prefix_all */ +typedef struct _gogoproto_goproto_enum_prefix_all_extmsg { + bool goproto_enum_prefix_all; +} gogoproto_goproto_enum_prefix_all_extmsg; +#define gogoproto_goproto_enum_prefix_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_enum_prefix_all, 63002) +#define gogoproto_goproto_enum_prefix_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_enum_prefix_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_enum_prefix_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_enum_prefix_all_extmsg, gogoproto_goproto_enum_prefix_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_enum_prefix_all = {NULL, NULL, &gogoproto_goproto_enum_prefix_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_stringer_all */ +typedef struct _gogoproto_goproto_stringer_all_extmsg { + bool goproto_stringer_all; +} gogoproto_goproto_stringer_all_extmsg; +#define gogoproto_goproto_stringer_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_stringer_all, 63003) +#define gogoproto_goproto_stringer_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_stringer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_stringer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_stringer_all_extmsg, gogoproto_goproto_stringer_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_stringer_all = {NULL, NULL, &gogoproto_goproto_stringer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_verbose_equal_all */ +typedef struct _gogoproto_verbose_equal_all_extmsg { + bool verbose_equal_all; +} gogoproto_verbose_equal_all_extmsg; +#define gogoproto_verbose_equal_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, verbose_equal_all, 63004) +#define gogoproto_verbose_equal_all_extmsg_CALLBACK NULL +#define gogoproto_verbose_equal_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_verbose_equal_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_verbose_equal_all_extmsg, gogoproto_verbose_equal_all_extmsg, 4) +const pb_extension_type_t gogoproto_verbose_equal_all = {NULL, NULL, &gogoproto_verbose_equal_all_extmsg_msg}; + +/* Definition for extension field gogoproto_face_all */ +typedef struct _gogoproto_face_all_extmsg { + bool face_all; +} gogoproto_face_all_extmsg; +#define gogoproto_face_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, face_all, 63005) +#define gogoproto_face_all_extmsg_CALLBACK NULL +#define gogoproto_face_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_face_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_face_all_extmsg, gogoproto_face_all_extmsg, 4) +const pb_extension_type_t gogoproto_face_all = {NULL, NULL, &gogoproto_face_all_extmsg_msg}; + +/* Definition for extension field gogoproto_gostring_all */ +typedef struct _gogoproto_gostring_all_extmsg { + bool gostring_all; +} gogoproto_gostring_all_extmsg; +#define gogoproto_gostring_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, gostring_all, 63006) +#define gogoproto_gostring_all_extmsg_CALLBACK NULL +#define gogoproto_gostring_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_gostring_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_gostring_all_extmsg, gogoproto_gostring_all_extmsg, 4) +const pb_extension_type_t gogoproto_gostring_all = {NULL, NULL, &gogoproto_gostring_all_extmsg_msg}; + +/* Definition for extension field gogoproto_populate_all */ +typedef struct _gogoproto_populate_all_extmsg { + bool populate_all; +} gogoproto_populate_all_extmsg; +#define gogoproto_populate_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, populate_all, 63007) +#define gogoproto_populate_all_extmsg_CALLBACK NULL +#define gogoproto_populate_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_populate_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_populate_all_extmsg, gogoproto_populate_all_extmsg, 4) +const pb_extension_type_t gogoproto_populate_all = {NULL, NULL, &gogoproto_populate_all_extmsg_msg}; + +/* Definition for extension field gogoproto_stringer_all */ +typedef struct _gogoproto_stringer_all_extmsg { + bool stringer_all; +} gogoproto_stringer_all_extmsg; +#define gogoproto_stringer_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stringer_all, 63008) +#define gogoproto_stringer_all_extmsg_CALLBACK NULL +#define gogoproto_stringer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stringer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stringer_all_extmsg, gogoproto_stringer_all_extmsg, 4) +const pb_extension_type_t gogoproto_stringer_all = {NULL, NULL, &gogoproto_stringer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_onlyone_all */ +typedef struct _gogoproto_onlyone_all_extmsg { + bool onlyone_all; +} gogoproto_onlyone_all_extmsg; +#define gogoproto_onlyone_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, onlyone_all, 63009) +#define gogoproto_onlyone_all_extmsg_CALLBACK NULL +#define gogoproto_onlyone_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_onlyone_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_onlyone_all_extmsg, gogoproto_onlyone_all_extmsg, 4) +const pb_extension_type_t gogoproto_onlyone_all = {NULL, NULL, &gogoproto_onlyone_all_extmsg_msg}; + +/* Definition for extension field gogoproto_equal_all */ +typedef struct _gogoproto_equal_all_extmsg { + bool equal_all; +} gogoproto_equal_all_extmsg; +#define gogoproto_equal_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, equal_all, 63013) +#define gogoproto_equal_all_extmsg_CALLBACK NULL +#define gogoproto_equal_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_equal_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_equal_all_extmsg, gogoproto_equal_all_extmsg, 4) +const pb_extension_type_t gogoproto_equal_all = {NULL, NULL, &gogoproto_equal_all_extmsg_msg}; + +/* Definition for extension field gogoproto_description_all */ +typedef struct _gogoproto_description_all_extmsg { + bool description_all; +} gogoproto_description_all_extmsg; +#define gogoproto_description_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, description_all, 63014) +#define gogoproto_description_all_extmsg_CALLBACK NULL +#define gogoproto_description_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_description_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_description_all_extmsg, gogoproto_description_all_extmsg, 4) +const pb_extension_type_t gogoproto_description_all = {NULL, NULL, &gogoproto_description_all_extmsg_msg}; + +/* Definition for extension field gogoproto_testgen_all */ +typedef struct _gogoproto_testgen_all_extmsg { + bool testgen_all; +} gogoproto_testgen_all_extmsg; +#define gogoproto_testgen_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, testgen_all, 63015) +#define gogoproto_testgen_all_extmsg_CALLBACK NULL +#define gogoproto_testgen_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_testgen_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_testgen_all_extmsg, gogoproto_testgen_all_extmsg, 4) +const pb_extension_type_t gogoproto_testgen_all = {NULL, NULL, &gogoproto_testgen_all_extmsg_msg}; + +/* Definition for extension field gogoproto_benchgen_all */ +typedef struct _gogoproto_benchgen_all_extmsg { + bool benchgen_all; +} gogoproto_benchgen_all_extmsg; +#define gogoproto_benchgen_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, benchgen_all, 63016) +#define gogoproto_benchgen_all_extmsg_CALLBACK NULL +#define gogoproto_benchgen_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_benchgen_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_benchgen_all_extmsg, gogoproto_benchgen_all_extmsg, 4) +const pb_extension_type_t gogoproto_benchgen_all = {NULL, NULL, &gogoproto_benchgen_all_extmsg_msg}; + +/* Definition for extension field gogoproto_marshaler_all */ +typedef struct _gogoproto_marshaler_all_extmsg { + bool marshaler_all; +} gogoproto_marshaler_all_extmsg; +#define gogoproto_marshaler_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, marshaler_all, 63017) +#define gogoproto_marshaler_all_extmsg_CALLBACK NULL +#define gogoproto_marshaler_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_marshaler_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_marshaler_all_extmsg, gogoproto_marshaler_all_extmsg, 4) +const pb_extension_type_t gogoproto_marshaler_all = {NULL, NULL, &gogoproto_marshaler_all_extmsg_msg}; + +/* Definition for extension field gogoproto_unmarshaler_all */ +typedef struct _gogoproto_unmarshaler_all_extmsg { + bool unmarshaler_all; +} gogoproto_unmarshaler_all_extmsg; +#define gogoproto_unmarshaler_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unmarshaler_all, 63018) +#define gogoproto_unmarshaler_all_extmsg_CALLBACK NULL +#define gogoproto_unmarshaler_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unmarshaler_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unmarshaler_all_extmsg, gogoproto_unmarshaler_all_extmsg, 4) +const pb_extension_type_t gogoproto_unmarshaler_all = {NULL, NULL, &gogoproto_unmarshaler_all_extmsg_msg}; + +/* Definition for extension field gogoproto_stable_marshaler_all */ +typedef struct _gogoproto_stable_marshaler_all_extmsg { + bool stable_marshaler_all; +} gogoproto_stable_marshaler_all_extmsg; +#define gogoproto_stable_marshaler_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stable_marshaler_all, 63019) +#define gogoproto_stable_marshaler_all_extmsg_CALLBACK NULL +#define gogoproto_stable_marshaler_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stable_marshaler_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stable_marshaler_all_extmsg, gogoproto_stable_marshaler_all_extmsg, 4) +const pb_extension_type_t gogoproto_stable_marshaler_all = {NULL, NULL, &gogoproto_stable_marshaler_all_extmsg_msg}; + +/* Definition for extension field gogoproto_sizer_all */ +typedef struct _gogoproto_sizer_all_extmsg { + bool sizer_all; +} gogoproto_sizer_all_extmsg; +#define gogoproto_sizer_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, sizer_all, 63020) +#define gogoproto_sizer_all_extmsg_CALLBACK NULL +#define gogoproto_sizer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_sizer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_sizer_all_extmsg, gogoproto_sizer_all_extmsg, 4) +const pb_extension_type_t gogoproto_sizer_all = {NULL, NULL, &gogoproto_sizer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_enum_stringer_all */ +typedef struct _gogoproto_goproto_enum_stringer_all_extmsg { + bool goproto_enum_stringer_all; +} gogoproto_goproto_enum_stringer_all_extmsg; +#define gogoproto_goproto_enum_stringer_all_extmsg_FIELDLIST(X, a) \ + X(a, STATIC, REQUIRED, BOOL, goproto_enum_stringer_all, 63021) +#define gogoproto_goproto_enum_stringer_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_enum_stringer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_enum_stringer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_enum_stringer_all_extmsg, gogoproto_goproto_enum_stringer_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_enum_stringer_all = {NULL, NULL, + &gogoproto_goproto_enum_stringer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_enum_stringer_all */ +typedef struct _gogoproto_enum_stringer_all_extmsg { + bool enum_stringer_all; +} gogoproto_enum_stringer_all_extmsg; +#define gogoproto_enum_stringer_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, enum_stringer_all, 63022) +#define gogoproto_enum_stringer_all_extmsg_CALLBACK NULL +#define gogoproto_enum_stringer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enum_stringer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enum_stringer_all_extmsg, gogoproto_enum_stringer_all_extmsg, 4) +const pb_extension_type_t gogoproto_enum_stringer_all = {NULL, NULL, &gogoproto_enum_stringer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_unsafe_marshaler_all */ +typedef struct _gogoproto_unsafe_marshaler_all_extmsg { + bool unsafe_marshaler_all; +} gogoproto_unsafe_marshaler_all_extmsg; +#define gogoproto_unsafe_marshaler_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unsafe_marshaler_all, 63023) +#define gogoproto_unsafe_marshaler_all_extmsg_CALLBACK NULL +#define gogoproto_unsafe_marshaler_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unsafe_marshaler_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unsafe_marshaler_all_extmsg, gogoproto_unsafe_marshaler_all_extmsg, 4) +const pb_extension_type_t gogoproto_unsafe_marshaler_all = {NULL, NULL, &gogoproto_unsafe_marshaler_all_extmsg_msg}; + +/* Definition for extension field gogoproto_unsafe_unmarshaler_all */ +typedef struct _gogoproto_unsafe_unmarshaler_all_extmsg { + bool unsafe_unmarshaler_all; +} gogoproto_unsafe_unmarshaler_all_extmsg; +#define gogoproto_unsafe_unmarshaler_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unsafe_unmarshaler_all, 63024) +#define gogoproto_unsafe_unmarshaler_all_extmsg_CALLBACK NULL +#define gogoproto_unsafe_unmarshaler_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unsafe_unmarshaler_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unsafe_unmarshaler_all_extmsg, gogoproto_unsafe_unmarshaler_all_extmsg, 4) +const pb_extension_type_t gogoproto_unsafe_unmarshaler_all = {NULL, NULL, &gogoproto_unsafe_unmarshaler_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_extensions_map_all */ +typedef struct _gogoproto_goproto_extensions_map_all_extmsg { + bool goproto_extensions_map_all; +} gogoproto_goproto_extensions_map_all_extmsg; +#define gogoproto_goproto_extensions_map_all_extmsg_FIELDLIST(X, a) \ + X(a, STATIC, REQUIRED, BOOL, goproto_extensions_map_all, 63025) +#define gogoproto_goproto_extensions_map_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_extensions_map_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_extensions_map_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_extensions_map_all_extmsg, gogoproto_goproto_extensions_map_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_extensions_map_all = {NULL, NULL, + &gogoproto_goproto_extensions_map_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_unrecognized_all */ +typedef struct _gogoproto_goproto_unrecognized_all_extmsg { + bool goproto_unrecognized_all; +} gogoproto_goproto_unrecognized_all_extmsg; +#define gogoproto_goproto_unrecognized_all_extmsg_FIELDLIST(X, a) \ + X(a, STATIC, REQUIRED, BOOL, goproto_unrecognized_all, 63026) +#define gogoproto_goproto_unrecognized_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_unrecognized_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_unrecognized_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_unrecognized_all_extmsg, gogoproto_goproto_unrecognized_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_unrecognized_all = {NULL, NULL, &gogoproto_goproto_unrecognized_all_extmsg_msg}; + +/* Definition for extension field gogoproto_gogoproto_import */ +typedef struct _gogoproto_gogoproto_import_extmsg { + bool gogoproto_import; +} gogoproto_gogoproto_import_extmsg; +#define gogoproto_gogoproto_import_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, gogoproto_import, 63027) +#define gogoproto_gogoproto_import_extmsg_CALLBACK NULL +#define gogoproto_gogoproto_import_extmsg_DEFAULT NULL +pb_byte_t gogoproto_gogoproto_import_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_gogoproto_import_extmsg, gogoproto_gogoproto_import_extmsg, 4) +const pb_extension_type_t gogoproto_gogoproto_import = {NULL, NULL, &gogoproto_gogoproto_import_extmsg_msg}; + +/* Definition for extension field gogoproto_protosizer_all */ +typedef struct _gogoproto_protosizer_all_extmsg { + bool protosizer_all; +} gogoproto_protosizer_all_extmsg; +#define gogoproto_protosizer_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, protosizer_all, 63028) +#define gogoproto_protosizer_all_extmsg_CALLBACK NULL +#define gogoproto_protosizer_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_protosizer_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_protosizer_all_extmsg, gogoproto_protosizer_all_extmsg, 4) +const pb_extension_type_t gogoproto_protosizer_all = {NULL, NULL, &gogoproto_protosizer_all_extmsg_msg}; + +/* Definition for extension field gogoproto_compare_all */ +typedef struct _gogoproto_compare_all_extmsg { + bool compare_all; +} gogoproto_compare_all_extmsg; +#define gogoproto_compare_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, compare_all, 63029) +#define gogoproto_compare_all_extmsg_CALLBACK NULL +#define gogoproto_compare_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_compare_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_compare_all_extmsg, gogoproto_compare_all_extmsg, 4) +const pb_extension_type_t gogoproto_compare_all = {NULL, NULL, &gogoproto_compare_all_extmsg_msg}; + +/* Definition for extension field gogoproto_typedecl_all */ +typedef struct _gogoproto_typedecl_all_extmsg { + bool typedecl_all; +} gogoproto_typedecl_all_extmsg; +#define gogoproto_typedecl_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, typedecl_all, 63030) +#define gogoproto_typedecl_all_extmsg_CALLBACK NULL +#define gogoproto_typedecl_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_typedecl_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_typedecl_all_extmsg, gogoproto_typedecl_all_extmsg, 4) +const pb_extension_type_t gogoproto_typedecl_all = {NULL, NULL, &gogoproto_typedecl_all_extmsg_msg}; + +/* Definition for extension field gogoproto_enumdecl_all */ +typedef struct _gogoproto_enumdecl_all_extmsg { + bool enumdecl_all; +} gogoproto_enumdecl_all_extmsg; +#define gogoproto_enumdecl_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, enumdecl_all, 63031) +#define gogoproto_enumdecl_all_extmsg_CALLBACK NULL +#define gogoproto_enumdecl_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_enumdecl_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_enumdecl_all_extmsg, gogoproto_enumdecl_all_extmsg, 4) +const pb_extension_type_t gogoproto_enumdecl_all = {NULL, NULL, &gogoproto_enumdecl_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_registration */ +typedef struct _gogoproto_goproto_registration_extmsg { + bool goproto_registration; +} gogoproto_goproto_registration_extmsg; +#define gogoproto_goproto_registration_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_registration, 63032) +#define gogoproto_goproto_registration_extmsg_CALLBACK NULL +#define gogoproto_goproto_registration_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_registration_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_registration_extmsg, gogoproto_goproto_registration_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_registration = {NULL, NULL, &gogoproto_goproto_registration_extmsg_msg}; + +/* Definition for extension field gogoproto_messagename_all */ +typedef struct _gogoproto_messagename_all_extmsg { + bool messagename_all; +} gogoproto_messagename_all_extmsg; +#define gogoproto_messagename_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, messagename_all, 63033) +#define gogoproto_messagename_all_extmsg_CALLBACK NULL +#define gogoproto_messagename_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_messagename_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_messagename_all_extmsg, gogoproto_messagename_all_extmsg, 4) +const pb_extension_type_t gogoproto_messagename_all = {NULL, NULL, &gogoproto_messagename_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_sizecache_all */ +typedef struct _gogoproto_goproto_sizecache_all_extmsg { + bool goproto_sizecache_all; +} gogoproto_goproto_sizecache_all_extmsg; +#define gogoproto_goproto_sizecache_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_sizecache_all, 63034) +#define gogoproto_goproto_sizecache_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_sizecache_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_sizecache_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_sizecache_all_extmsg, gogoproto_goproto_sizecache_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_sizecache_all = {NULL, NULL, &gogoproto_goproto_sizecache_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_unkeyed_all */ +typedef struct _gogoproto_goproto_unkeyed_all_extmsg { + bool goproto_unkeyed_all; +} gogoproto_goproto_unkeyed_all_extmsg; +#define gogoproto_goproto_unkeyed_all_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_unkeyed_all, 63035) +#define gogoproto_goproto_unkeyed_all_extmsg_CALLBACK NULL +#define gogoproto_goproto_unkeyed_all_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_unkeyed_all_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_unkeyed_all_extmsg, gogoproto_goproto_unkeyed_all_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_unkeyed_all = {NULL, NULL, &gogoproto_goproto_unkeyed_all_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_getters */ +typedef struct _gogoproto_goproto_getters_extmsg { + bool goproto_getters; +} gogoproto_goproto_getters_extmsg; +#define gogoproto_goproto_getters_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_getters, 64001) +#define gogoproto_goproto_getters_extmsg_CALLBACK NULL +#define gogoproto_goproto_getters_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_getters_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_getters_extmsg, gogoproto_goproto_getters_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_getters = {NULL, NULL, &gogoproto_goproto_getters_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_stringer */ +typedef struct _gogoproto_goproto_stringer_extmsg { + bool goproto_stringer; +} gogoproto_goproto_stringer_extmsg; +#define gogoproto_goproto_stringer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_stringer, 64003) +#define gogoproto_goproto_stringer_extmsg_CALLBACK NULL +#define gogoproto_goproto_stringer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_stringer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_stringer_extmsg, gogoproto_goproto_stringer_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_stringer = {NULL, NULL, &gogoproto_goproto_stringer_extmsg_msg}; + +/* Definition for extension field gogoproto_verbose_equal */ +typedef struct _gogoproto_verbose_equal_extmsg { + bool verbose_equal; +} gogoproto_verbose_equal_extmsg; +#define gogoproto_verbose_equal_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, verbose_equal, 64004) +#define gogoproto_verbose_equal_extmsg_CALLBACK NULL +#define gogoproto_verbose_equal_extmsg_DEFAULT NULL +pb_byte_t gogoproto_verbose_equal_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_verbose_equal_extmsg, gogoproto_verbose_equal_extmsg, 4) +const pb_extension_type_t gogoproto_verbose_equal = {NULL, NULL, &gogoproto_verbose_equal_extmsg_msg}; + +/* Definition for extension field gogoproto_face */ +typedef struct _gogoproto_face_extmsg { + bool face; +} gogoproto_face_extmsg; +#define gogoproto_face_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, face, 64005) +#define gogoproto_face_extmsg_CALLBACK NULL +#define gogoproto_face_extmsg_DEFAULT NULL +pb_byte_t gogoproto_face_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_face_extmsg, gogoproto_face_extmsg, 4) +const pb_extension_type_t gogoproto_face = {NULL, NULL, &gogoproto_face_extmsg_msg}; + +/* Definition for extension field gogoproto_gostring */ +typedef struct _gogoproto_gostring_extmsg { + bool gostring; +} gogoproto_gostring_extmsg; +#define gogoproto_gostring_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, gostring, 64006) +#define gogoproto_gostring_extmsg_CALLBACK NULL +#define gogoproto_gostring_extmsg_DEFAULT NULL +pb_byte_t gogoproto_gostring_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_gostring_extmsg, gogoproto_gostring_extmsg, 4) +const pb_extension_type_t gogoproto_gostring = {NULL, NULL, &gogoproto_gostring_extmsg_msg}; + +/* Definition for extension field gogoproto_populate */ +typedef struct _gogoproto_populate_extmsg { + bool populate; +} gogoproto_populate_extmsg; +#define gogoproto_populate_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, populate, 64007) +#define gogoproto_populate_extmsg_CALLBACK NULL +#define gogoproto_populate_extmsg_DEFAULT NULL +pb_byte_t gogoproto_populate_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_populate_extmsg, gogoproto_populate_extmsg, 4) +const pb_extension_type_t gogoproto_populate = {NULL, NULL, &gogoproto_populate_extmsg_msg}; + +/* Definition for extension field gogoproto_stringer */ +typedef struct _gogoproto_stringer_extmsg { + bool stringer; +} gogoproto_stringer_extmsg; +#define gogoproto_stringer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stringer, 1234) +#define gogoproto_stringer_extmsg_CALLBACK NULL +#define gogoproto_stringer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stringer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stringer_extmsg, gogoproto_stringer_extmsg, 4) +const pb_extension_type_t gogoproto_stringer = {NULL, NULL, &gogoproto_stringer_extmsg_msg}; + +/* Definition for extension field gogoproto_onlyone */ +typedef struct _gogoproto_onlyone_extmsg { + bool onlyone; +} gogoproto_onlyone_extmsg; +#define gogoproto_onlyone_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, onlyone, 64009) +#define gogoproto_onlyone_extmsg_CALLBACK NULL +#define gogoproto_onlyone_extmsg_DEFAULT NULL +pb_byte_t gogoproto_onlyone_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_onlyone_extmsg, gogoproto_onlyone_extmsg, 4) +const pb_extension_type_t gogoproto_onlyone = {NULL, NULL, &gogoproto_onlyone_extmsg_msg}; + +/* Definition for extension field gogoproto_equal */ +typedef struct _gogoproto_equal_extmsg { + bool equal; +} gogoproto_equal_extmsg; +#define gogoproto_equal_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, equal, 64013) +#define gogoproto_equal_extmsg_CALLBACK NULL +#define gogoproto_equal_extmsg_DEFAULT NULL +pb_byte_t gogoproto_equal_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_equal_extmsg, gogoproto_equal_extmsg, 4) +const pb_extension_type_t gogoproto_equal = {NULL, NULL, &gogoproto_equal_extmsg_msg}; + +/* Definition for extension field gogoproto_description */ +typedef struct _gogoproto_description_extmsg { + bool description; +} gogoproto_description_extmsg; +#define gogoproto_description_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, description, 64014) +#define gogoproto_description_extmsg_CALLBACK NULL +#define gogoproto_description_extmsg_DEFAULT NULL +pb_byte_t gogoproto_description_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_description_extmsg, gogoproto_description_extmsg, 4) +const pb_extension_type_t gogoproto_description = {NULL, NULL, &gogoproto_description_extmsg_msg}; + +/* Definition for extension field gogoproto_testgen */ +typedef struct _gogoproto_testgen_extmsg { + bool testgen; +} gogoproto_testgen_extmsg; +#define gogoproto_testgen_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, testgen, 64015) +#define gogoproto_testgen_extmsg_CALLBACK NULL +#define gogoproto_testgen_extmsg_DEFAULT NULL +pb_byte_t gogoproto_testgen_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_testgen_extmsg, gogoproto_testgen_extmsg, 4) +const pb_extension_type_t gogoproto_testgen = {NULL, NULL, &gogoproto_testgen_extmsg_msg}; + +/* Definition for extension field gogoproto_benchgen */ +typedef struct _gogoproto_benchgen_extmsg { + bool benchgen; +} gogoproto_benchgen_extmsg; +#define gogoproto_benchgen_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, benchgen, 64016) +#define gogoproto_benchgen_extmsg_CALLBACK NULL +#define gogoproto_benchgen_extmsg_DEFAULT NULL +pb_byte_t gogoproto_benchgen_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_benchgen_extmsg, gogoproto_benchgen_extmsg, 4) +const pb_extension_type_t gogoproto_benchgen = {NULL, NULL, &gogoproto_benchgen_extmsg_msg}; + +/* Definition for extension field gogoproto_marshaler */ +typedef struct _gogoproto_marshaler_extmsg { + bool marshaler; +} gogoproto_marshaler_extmsg; +#define gogoproto_marshaler_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, marshaler, 64017) +#define gogoproto_marshaler_extmsg_CALLBACK NULL +#define gogoproto_marshaler_extmsg_DEFAULT NULL +pb_byte_t gogoproto_marshaler_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_marshaler_extmsg, gogoproto_marshaler_extmsg, 4) +const pb_extension_type_t gogoproto_marshaler = {NULL, NULL, &gogoproto_marshaler_extmsg_msg}; + +/* Definition for extension field gogoproto_unmarshaler */ +typedef struct _gogoproto_unmarshaler_extmsg { + bool unmarshaler; +} gogoproto_unmarshaler_extmsg; +#define gogoproto_unmarshaler_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unmarshaler, 64018) +#define gogoproto_unmarshaler_extmsg_CALLBACK NULL +#define gogoproto_unmarshaler_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unmarshaler_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unmarshaler_extmsg, gogoproto_unmarshaler_extmsg, 4) +const pb_extension_type_t gogoproto_unmarshaler = {NULL, NULL, &gogoproto_unmarshaler_extmsg_msg}; + +/* Definition for extension field gogoproto_stable_marshaler */ +typedef struct _gogoproto_stable_marshaler_extmsg { + bool stable_marshaler; +} gogoproto_stable_marshaler_extmsg; +#define gogoproto_stable_marshaler_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stable_marshaler, 64019) +#define gogoproto_stable_marshaler_extmsg_CALLBACK NULL +#define gogoproto_stable_marshaler_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stable_marshaler_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stable_marshaler_extmsg, gogoproto_stable_marshaler_extmsg, 4) +const pb_extension_type_t gogoproto_stable_marshaler = {NULL, NULL, &gogoproto_stable_marshaler_extmsg_msg}; + +/* Definition for extension field gogoproto_sizer */ +typedef struct _gogoproto_sizer_extmsg { + bool sizer; +} gogoproto_sizer_extmsg; +#define gogoproto_sizer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, sizer, 64020) +#define gogoproto_sizer_extmsg_CALLBACK NULL +#define gogoproto_sizer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_sizer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_sizer_extmsg, gogoproto_sizer_extmsg, 4) +const pb_extension_type_t gogoproto_sizer = {NULL, NULL, &gogoproto_sizer_extmsg_msg}; + +/* Definition for extension field gogoproto_unsafe_marshaler */ +typedef struct _gogoproto_unsafe_marshaler_extmsg { + bool unsafe_marshaler; +} gogoproto_unsafe_marshaler_extmsg; +#define gogoproto_unsafe_marshaler_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unsafe_marshaler, 64023) +#define gogoproto_unsafe_marshaler_extmsg_CALLBACK NULL +#define gogoproto_unsafe_marshaler_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unsafe_marshaler_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unsafe_marshaler_extmsg, gogoproto_unsafe_marshaler_extmsg, 4) +const pb_extension_type_t gogoproto_unsafe_marshaler = {NULL, NULL, &gogoproto_unsafe_marshaler_extmsg_msg}; + +/* Definition for extension field gogoproto_unsafe_unmarshaler */ +typedef struct _gogoproto_unsafe_unmarshaler_extmsg { + bool unsafe_unmarshaler; +} gogoproto_unsafe_unmarshaler_extmsg; +#define gogoproto_unsafe_unmarshaler_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, unsafe_unmarshaler, 64024) +#define gogoproto_unsafe_unmarshaler_extmsg_CALLBACK NULL +#define gogoproto_unsafe_unmarshaler_extmsg_DEFAULT NULL +pb_byte_t gogoproto_unsafe_unmarshaler_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_unsafe_unmarshaler_extmsg, gogoproto_unsafe_unmarshaler_extmsg, 4) +const pb_extension_type_t gogoproto_unsafe_unmarshaler = {NULL, NULL, &gogoproto_unsafe_unmarshaler_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_extensions_map */ +typedef struct _gogoproto_goproto_extensions_map_extmsg { + bool goproto_extensions_map; +} gogoproto_goproto_extensions_map_extmsg; +#define gogoproto_goproto_extensions_map_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_extensions_map, 64025) +#define gogoproto_goproto_extensions_map_extmsg_CALLBACK NULL +#define gogoproto_goproto_extensions_map_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_extensions_map_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_extensions_map_extmsg, gogoproto_goproto_extensions_map_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_extensions_map = {NULL, NULL, &gogoproto_goproto_extensions_map_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_unrecognized */ +typedef struct _gogoproto_goproto_unrecognized_extmsg { + bool goproto_unrecognized; +} gogoproto_goproto_unrecognized_extmsg; +#define gogoproto_goproto_unrecognized_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_unrecognized, 64026) +#define gogoproto_goproto_unrecognized_extmsg_CALLBACK NULL +#define gogoproto_goproto_unrecognized_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_unrecognized_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_unrecognized_extmsg, gogoproto_goproto_unrecognized_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_unrecognized = {NULL, NULL, &gogoproto_goproto_unrecognized_extmsg_msg}; + +/* Definition for extension field gogoproto_protosizer */ +typedef struct _gogoproto_protosizer_extmsg { + bool protosizer; +} gogoproto_protosizer_extmsg; +#define gogoproto_protosizer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, protosizer, 64028) +#define gogoproto_protosizer_extmsg_CALLBACK NULL +#define gogoproto_protosizer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_protosizer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_protosizer_extmsg, gogoproto_protosizer_extmsg, 4) +const pb_extension_type_t gogoproto_protosizer = {NULL, NULL, &gogoproto_protosizer_extmsg_msg}; + +/* Definition for extension field gogoproto_compare */ +typedef struct _gogoproto_compare_extmsg { + bool compare; +} gogoproto_compare_extmsg; +#define gogoproto_compare_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, compare, 64029) +#define gogoproto_compare_extmsg_CALLBACK NULL +#define gogoproto_compare_extmsg_DEFAULT NULL +pb_byte_t gogoproto_compare_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_compare_extmsg, gogoproto_compare_extmsg, 4) +const pb_extension_type_t gogoproto_compare = {NULL, NULL, &gogoproto_compare_extmsg_msg}; + +/* Definition for extension field gogoproto_typedecl */ +typedef struct _gogoproto_typedecl_extmsg { + bool typedecl; +} gogoproto_typedecl_extmsg; +#define gogoproto_typedecl_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, typedecl, 64030) +#define gogoproto_typedecl_extmsg_CALLBACK NULL +#define gogoproto_typedecl_extmsg_DEFAULT NULL +pb_byte_t gogoproto_typedecl_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_typedecl_extmsg, gogoproto_typedecl_extmsg, 4) +const pb_extension_type_t gogoproto_typedecl = {NULL, NULL, &gogoproto_typedecl_extmsg_msg}; + +/* Definition for extension field gogoproto_messagename */ +typedef struct _gogoproto_messagename_extmsg { + bool messagename; +} gogoproto_messagename_extmsg; +#define gogoproto_messagename_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, messagename, 64033) +#define gogoproto_messagename_extmsg_CALLBACK NULL +#define gogoproto_messagename_extmsg_DEFAULT NULL +pb_byte_t gogoproto_messagename_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_messagename_extmsg, gogoproto_messagename_extmsg, 4) +const pb_extension_type_t gogoproto_messagename = {NULL, NULL, &gogoproto_messagename_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_sizecache */ +typedef struct _gogoproto_goproto_sizecache_extmsg { + bool goproto_sizecache; +} gogoproto_goproto_sizecache_extmsg; +#define gogoproto_goproto_sizecache_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_sizecache, 64034) +#define gogoproto_goproto_sizecache_extmsg_CALLBACK NULL +#define gogoproto_goproto_sizecache_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_sizecache_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_sizecache_extmsg, gogoproto_goproto_sizecache_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_sizecache = {NULL, NULL, &gogoproto_goproto_sizecache_extmsg_msg}; + +/* Definition for extension field gogoproto_goproto_unkeyed */ +typedef struct _gogoproto_goproto_unkeyed_extmsg { + bool goproto_unkeyed; +} gogoproto_goproto_unkeyed_extmsg; +#define gogoproto_goproto_unkeyed_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, goproto_unkeyed, 64035) +#define gogoproto_goproto_unkeyed_extmsg_CALLBACK NULL +#define gogoproto_goproto_unkeyed_extmsg_DEFAULT NULL +pb_byte_t gogoproto_goproto_unkeyed_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_goproto_unkeyed_extmsg, gogoproto_goproto_unkeyed_extmsg, 4) +const pb_extension_type_t gogoproto_goproto_unkeyed = {NULL, NULL, &gogoproto_goproto_unkeyed_extmsg_msg}; + +/* Definition for extension field gogoproto_nullable */ +typedef struct _gogoproto_nullable_extmsg { + bool nullable; +} gogoproto_nullable_extmsg; +#define gogoproto_nullable_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, nullable, 65001) +#define gogoproto_nullable_extmsg_CALLBACK NULL +#define gogoproto_nullable_extmsg_DEFAULT NULL +pb_byte_t gogoproto_nullable_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_nullable_extmsg, gogoproto_nullable_extmsg, 4) +const pb_extension_type_t gogoproto_nullable = {NULL, NULL, &gogoproto_nullable_extmsg_msg}; + +/* Definition for extension field gogoproto_embed */ +typedef struct _gogoproto_embed_extmsg { + bool embed; +} gogoproto_embed_extmsg; +#define gogoproto_embed_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, embed, 65002) +#define gogoproto_embed_extmsg_CALLBACK NULL +#define gogoproto_embed_extmsg_DEFAULT NULL +pb_byte_t gogoproto_embed_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_embed_extmsg, gogoproto_embed_extmsg, 4) +const pb_extension_type_t gogoproto_embed = {NULL, NULL, &gogoproto_embed_extmsg_msg}; + +/* Definition for extension field gogoproto_customtype */ +typedef struct _gogoproto_customtype_extmsg { + pb_callback_t customtype; +} gogoproto_customtype_extmsg; +#define gogoproto_customtype_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, customtype, 65003) +#define gogoproto_customtype_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_customtype_extmsg_DEFAULT NULL +pb_byte_t gogoproto_customtype_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_customtype_extmsg, gogoproto_customtype_extmsg, 4) +const pb_extension_type_t gogoproto_customtype = {NULL, NULL, &gogoproto_customtype_extmsg_msg}; + +/* Definition for extension field gogoproto_customname */ +typedef struct _gogoproto_customname_extmsg { + pb_callback_t customname; +} gogoproto_customname_extmsg; +#define gogoproto_customname_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, customname, 65004) +#define gogoproto_customname_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_customname_extmsg_DEFAULT NULL +pb_byte_t gogoproto_customname_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_customname_extmsg, gogoproto_customname_extmsg, 4) +const pb_extension_type_t gogoproto_customname = {NULL, NULL, &gogoproto_customname_extmsg_msg}; + +/* Definition for extension field gogoproto_jsontag */ +typedef struct _gogoproto_jsontag_extmsg { + pb_callback_t jsontag; +} gogoproto_jsontag_extmsg; +#define gogoproto_jsontag_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, jsontag, 65005) +#define gogoproto_jsontag_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_jsontag_extmsg_DEFAULT NULL +pb_byte_t gogoproto_jsontag_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_jsontag_extmsg, gogoproto_jsontag_extmsg, 4) +const pb_extension_type_t gogoproto_jsontag = {NULL, NULL, &gogoproto_jsontag_extmsg_msg}; + +/* Definition for extension field gogoproto_moretags */ +typedef struct _gogoproto_moretags_extmsg { + pb_callback_t moretags; +} gogoproto_moretags_extmsg; +#define gogoproto_moretags_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, moretags, 65006) +#define gogoproto_moretags_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_moretags_extmsg_DEFAULT NULL +pb_byte_t gogoproto_moretags_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_moretags_extmsg, gogoproto_moretags_extmsg, 4) +const pb_extension_type_t gogoproto_moretags = {NULL, NULL, &gogoproto_moretags_extmsg_msg}; + +/* Definition for extension field gogoproto_casttype */ +typedef struct _gogoproto_casttype_extmsg { + pb_callback_t casttype; +} gogoproto_casttype_extmsg; +#define gogoproto_casttype_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, casttype, 65007) +#define gogoproto_casttype_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_casttype_extmsg_DEFAULT NULL +pb_byte_t gogoproto_casttype_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_casttype_extmsg, gogoproto_casttype_extmsg, 4) +const pb_extension_type_t gogoproto_casttype = {NULL, NULL, &gogoproto_casttype_extmsg_msg}; + +/* Definition for extension field gogoproto_castkey */ +typedef struct _gogoproto_castkey_extmsg { + pb_callback_t castkey; +} gogoproto_castkey_extmsg; +#define gogoproto_castkey_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, castkey, 65008) +#define gogoproto_castkey_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_castkey_extmsg_DEFAULT NULL +pb_byte_t gogoproto_castkey_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_castkey_extmsg, gogoproto_castkey_extmsg, 4) +const pb_extension_type_t gogoproto_castkey = {NULL, NULL, &gogoproto_castkey_extmsg_msg}; + +/* Definition for extension field gogoproto_castvalue */ +typedef struct _gogoproto_castvalue_extmsg { + pb_callback_t castvalue; +} gogoproto_castvalue_extmsg; +#define gogoproto_castvalue_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, castvalue, 65009) +#define gogoproto_castvalue_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_castvalue_extmsg_DEFAULT NULL +pb_byte_t gogoproto_castvalue_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_castvalue_extmsg, gogoproto_castvalue_extmsg, 4) +const pb_extension_type_t gogoproto_castvalue = {NULL, NULL, &gogoproto_castvalue_extmsg_msg}; + +/* Definition for extension field gogoproto_stdtime */ +typedef struct _gogoproto_stdtime_extmsg { + bool stdtime; +} gogoproto_stdtime_extmsg; +#define gogoproto_stdtime_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stdtime, 65010) +#define gogoproto_stdtime_extmsg_CALLBACK NULL +#define gogoproto_stdtime_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stdtime_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stdtime_extmsg, gogoproto_stdtime_extmsg, 4) +const pb_extension_type_t gogoproto_stdtime = {NULL, NULL, &gogoproto_stdtime_extmsg_msg}; + +/* Definition for extension field gogoproto_stdduration */ +typedef struct _gogoproto_stdduration_extmsg { + bool stdduration; +} gogoproto_stdduration_extmsg; +#define gogoproto_stdduration_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, stdduration, 65011) +#define gogoproto_stdduration_extmsg_CALLBACK NULL +#define gogoproto_stdduration_extmsg_DEFAULT NULL +pb_byte_t gogoproto_stdduration_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_stdduration_extmsg, gogoproto_stdduration_extmsg, 4) +const pb_extension_type_t gogoproto_stdduration = {NULL, NULL, &gogoproto_stdduration_extmsg_msg}; + +/* Definition for extension field gogoproto_wktpointer */ +typedef struct _gogoproto_wktpointer_extmsg { + bool wktpointer; +} gogoproto_wktpointer_extmsg; +#define gogoproto_wktpointer_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, BOOL, wktpointer, 65012) +#define gogoproto_wktpointer_extmsg_CALLBACK NULL +#define gogoproto_wktpointer_extmsg_DEFAULT NULL +pb_byte_t gogoproto_wktpointer_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_wktpointer_extmsg, gogoproto_wktpointer_extmsg, 4) +const pb_extension_type_t gogoproto_wktpointer = {NULL, NULL, &gogoproto_wktpointer_extmsg_msg}; + +/* Definition for extension field gogoproto_castrepeated */ +typedef struct _gogoproto_castrepeated_extmsg { + pb_callback_t castrepeated; +} gogoproto_castrepeated_extmsg; +#define gogoproto_castrepeated_extmsg_FIELDLIST(X, a) X(a, CALLBACK, REQUIRED, STRING, castrepeated, 65013) +#define gogoproto_castrepeated_extmsg_CALLBACK pb_default_field_callback +#define gogoproto_castrepeated_extmsg_DEFAULT NULL +pb_byte_t gogoproto_castrepeated_extmsg_default[] = {0x00}; +PB_BIND(gogoproto_castrepeated_extmsg, gogoproto_castrepeated_extmsg, 4) +const pb_extension_type_t gogoproto_castrepeated = {NULL, NULL, &gogoproto_castrepeated_extmsg_msg}; diff --git a/app/src/protobuf/gogoproto/gogo.pb.h b/app/src/protobuf/gogoproto/gogo.pb.h new file mode 100644 index 0000000..8210ec4 --- /dev/null +++ b/app/src/protobuf/gogoproto/gogo.pb.h @@ -0,0 +1,99 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOGOPROTO_GOGOPROTO_GOGO_PB_H_INCLUDED +#define PB_GOGOPROTO_GOGOPROTO_GOGO_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +extern const pb_extension_type_t gogoproto_goproto_enum_prefix; /* field type: bool goproto_enum_prefix; */ +extern const pb_extension_type_t gogoproto_goproto_enum_stringer; /* field type: bool goproto_enum_stringer; */ +extern const pb_extension_type_t gogoproto_enum_stringer; /* field type: bool enum_stringer; */ +extern const pb_extension_type_t gogoproto_enum_customname; /* field type: pb_callback_t enum_customname; */ +extern const pb_extension_type_t gogoproto_enumdecl; /* field type: bool enumdecl; */ +extern const pb_extension_type_t gogoproto_enumvalue_customname; /* field type: pb_callback_t enumvalue_customname; */ +extern const pb_extension_type_t gogoproto_goproto_getters_all; /* field type: bool goproto_getters_all; */ +extern const pb_extension_type_t gogoproto_goproto_enum_prefix_all; /* field type: bool goproto_enum_prefix_all; */ +extern const pb_extension_type_t gogoproto_goproto_stringer_all; /* field type: bool goproto_stringer_all; */ +extern const pb_extension_type_t gogoproto_verbose_equal_all; /* field type: bool verbose_equal_all; */ +extern const pb_extension_type_t gogoproto_face_all; /* field type: bool face_all; */ +extern const pb_extension_type_t gogoproto_gostring_all; /* field type: bool gostring_all; */ +extern const pb_extension_type_t gogoproto_populate_all; /* field type: bool populate_all; */ +extern const pb_extension_type_t gogoproto_stringer_all; /* field type: bool stringer_all; */ +extern const pb_extension_type_t gogoproto_onlyone_all; /* field type: bool onlyone_all; */ +extern const pb_extension_type_t gogoproto_equal_all; /* field type: bool equal_all; */ +extern const pb_extension_type_t gogoproto_description_all; /* field type: bool description_all; */ +extern const pb_extension_type_t gogoproto_testgen_all; /* field type: bool testgen_all; */ +extern const pb_extension_type_t gogoproto_benchgen_all; /* field type: bool benchgen_all; */ +extern const pb_extension_type_t gogoproto_marshaler_all; /* field type: bool marshaler_all; */ +extern const pb_extension_type_t gogoproto_unmarshaler_all; /* field type: bool unmarshaler_all; */ +extern const pb_extension_type_t gogoproto_stable_marshaler_all; /* field type: bool stable_marshaler_all; */ +extern const pb_extension_type_t gogoproto_sizer_all; /* field type: bool sizer_all; */ +extern const pb_extension_type_t gogoproto_goproto_enum_stringer_all; /* field type: bool goproto_enum_stringer_all; */ +extern const pb_extension_type_t gogoproto_enum_stringer_all; /* field type: bool enum_stringer_all; */ +extern const pb_extension_type_t gogoproto_unsafe_marshaler_all; /* field type: bool unsafe_marshaler_all; */ +extern const pb_extension_type_t gogoproto_unsafe_unmarshaler_all; /* field type: bool unsafe_unmarshaler_all; */ +extern const pb_extension_type_t gogoproto_goproto_extensions_map_all; /* field type: bool goproto_extensions_map_all; */ +extern const pb_extension_type_t gogoproto_goproto_unrecognized_all; /* field type: bool goproto_unrecognized_all; */ +extern const pb_extension_type_t gogoproto_gogoproto_import; /* field type: bool gogoproto_import; */ +extern const pb_extension_type_t gogoproto_protosizer_all; /* field type: bool protosizer_all; */ +extern const pb_extension_type_t gogoproto_compare_all; /* field type: bool compare_all; */ +extern const pb_extension_type_t gogoproto_typedecl_all; /* field type: bool typedecl_all; */ +extern const pb_extension_type_t gogoproto_enumdecl_all; /* field type: bool enumdecl_all; */ +extern const pb_extension_type_t gogoproto_goproto_registration; /* field type: bool goproto_registration; */ +extern const pb_extension_type_t gogoproto_messagename_all; /* field type: bool messagename_all; */ +extern const pb_extension_type_t gogoproto_goproto_sizecache_all; /* field type: bool goproto_sizecache_all; */ +extern const pb_extension_type_t gogoproto_goproto_unkeyed_all; /* field type: bool goproto_unkeyed_all; */ +extern const pb_extension_type_t gogoproto_goproto_getters; /* field type: bool goproto_getters; */ +extern const pb_extension_type_t gogoproto_goproto_stringer; /* field type: bool goproto_stringer; */ +extern const pb_extension_type_t gogoproto_verbose_equal; /* field type: bool verbose_equal; */ +extern const pb_extension_type_t gogoproto_face; /* field type: bool face; */ +extern const pb_extension_type_t gogoproto_gostring; /* field type: bool gostring; */ +extern const pb_extension_type_t gogoproto_populate; /* field type: bool populate; */ +extern const pb_extension_type_t gogoproto_stringer; /* field type: bool stringer; */ +extern const pb_extension_type_t gogoproto_onlyone; /* field type: bool onlyone; */ +extern const pb_extension_type_t gogoproto_equal; /* field type: bool equal; */ +extern const pb_extension_type_t gogoproto_description; /* field type: bool description; */ +extern const pb_extension_type_t gogoproto_testgen; /* field type: bool testgen; */ +extern const pb_extension_type_t gogoproto_benchgen; /* field type: bool benchgen; */ +extern const pb_extension_type_t gogoproto_marshaler; /* field type: bool marshaler; */ +extern const pb_extension_type_t gogoproto_unmarshaler; /* field type: bool unmarshaler; */ +extern const pb_extension_type_t gogoproto_stable_marshaler; /* field type: bool stable_marshaler; */ +extern const pb_extension_type_t gogoproto_sizer; /* field type: bool sizer; */ +extern const pb_extension_type_t gogoproto_unsafe_marshaler; /* field type: bool unsafe_marshaler; */ +extern const pb_extension_type_t gogoproto_unsafe_unmarshaler; /* field type: bool unsafe_unmarshaler; */ +extern const pb_extension_type_t gogoproto_goproto_extensions_map; /* field type: bool goproto_extensions_map; */ +extern const pb_extension_type_t gogoproto_goproto_unrecognized; /* field type: bool goproto_unrecognized; */ +extern const pb_extension_type_t gogoproto_protosizer; /* field type: bool protosizer; */ +extern const pb_extension_type_t gogoproto_compare; /* field type: bool compare; */ +extern const pb_extension_type_t gogoproto_typedecl; /* field type: bool typedecl; */ +extern const pb_extension_type_t gogoproto_messagename; /* field type: bool messagename; */ +extern const pb_extension_type_t gogoproto_goproto_sizecache; /* field type: bool goproto_sizecache; */ +extern const pb_extension_type_t gogoproto_goproto_unkeyed; /* field type: bool goproto_unkeyed; */ +extern const pb_extension_type_t gogoproto_nullable; /* field type: bool nullable; */ +extern const pb_extension_type_t gogoproto_embed; /* field type: bool embed; */ +extern const pb_extension_type_t gogoproto_customtype; /* field type: pb_callback_t customtype; */ +extern const pb_extension_type_t gogoproto_customname; /* field type: pb_callback_t customname; */ +extern const pb_extension_type_t gogoproto_jsontag; /* field type: pb_callback_t jsontag; */ +extern const pb_extension_type_t gogoproto_moretags; /* field type: pb_callback_t moretags; */ +extern const pb_extension_type_t gogoproto_casttype; /* field type: pb_callback_t casttype; */ +extern const pb_extension_type_t gogoproto_castkey; /* field type: pb_callback_t castkey; */ +extern const pb_extension_type_t gogoproto_castvalue; /* field type: pb_callback_t castvalue; */ +extern const pb_extension_type_t gogoproto_stdtime; /* field type: bool stdtime; */ +extern const pb_extension_type_t gogoproto_stdduration; /* field type: bool stdduration; */ +extern const pb_extension_type_t gogoproto_wktpointer; /* field type: bool wktpointer; */ +extern const pb_extension_type_t gogoproto_castrepeated; /* field type: pb_callback_t castrepeated; */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/api/annotations.pb.c b/app/src/protobuf/google/api/annotations.pb.c new file mode 100644 index 0000000..cbc8556 --- /dev/null +++ b/app/src/protobuf/google/api/annotations.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/api/annotations.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Definition for extension field google_api_http */ +typedef struct _google_api_http_extmsg { + google_api_HttpRule http; +} google_api_http_extmsg; +#define google_api_http_extmsg_FIELDLIST(X, a) X(a, STATIC, REQUIRED, MESSAGE, http, 1234) +#define google_api_http_extmsg_CALLBACK NULL +#define google_api_http_extmsg_DEFAULT NULL +#define google_api_http_extmsg_http_MSGTYPE google_api_HttpRule +pb_byte_t google_api_http_extmsg_default[] = {0x00}; +PB_BIND(google_api_http_extmsg, google_api_http_extmsg, 4) +const pb_extension_type_t google_api_http = {NULL, NULL, &google_api_http_extmsg_msg}; diff --git a/app/src/protobuf/google/api/annotations.pb.h b/app/src/protobuf/google/api/annotations.pb.h new file mode 100644 index 0000000..7c1f07f --- /dev/null +++ b/app/src/protobuf/google/api/annotations.pb.h @@ -0,0 +1,25 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_API_GOOGLE_API_ANNOTATIONS_PB_H_INCLUDED +#define PB_GOOGLE_API_GOOGLE_API_ANNOTATIONS_PB_H_INCLUDED +#include + +#include "google/api/http.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Extensions */ +extern const pb_extension_type_t google_api_http; /* field type: google_api_HttpRule http; */ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/api/http.pb.c b/app/src/protobuf/google/api/http.pb.c new file mode 100644 index 0000000..cb595a6 --- /dev/null +++ b/app/src/protobuf/google/api/http.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/api/http.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(google_api_Http, google_api_Http, AUTO) + +PB_BIND(google_api_HttpRule, google_api_HttpRule, AUTO) + +PB_BIND(google_api_CustomHttpPattern, google_api_CustomHttpPattern, AUTO) diff --git a/app/src/protobuf/google/api/http.pb.h b/app/src/protobuf/google/api/http.pb.h new file mode 100644 index 0000000..0714a74 --- /dev/null +++ b/app/src/protobuf/google/api/http.pb.h @@ -0,0 +1,441 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_API_GOOGLE_API_HTTP_PB_H_INCLUDED +#define PB_GOOGLE_API_GOOGLE_API_HTTP_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Defines the HTTP configuration for an API service. It contains a list of + [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method + to one or more HTTP REST API methods. */ +typedef struct _google_api_Http { + /* A list of HTTP configuration rules that apply to individual API methods. + + **NOTE:** All service configuration rules follow "last one wins" order. */ + pb_callback_t rules; + /* When set to true, URL path parameters will be fully URI-decoded except in + cases of single segment matches in reserved expansion, where "%2F" will be + left encoded. + + The default behavior is to not decode RFC 6570 reserved characters in multi + segment matches. */ + bool fully_decode_reserved_expansion; +} google_api_Http; + +/* A custom pattern is used for defining custom HTTP verb. */ +typedef struct _google_api_CustomHttpPattern { + /* The name of this custom HTTP verb. */ + pb_callback_t kind; + /* The path matched by this custom verb. */ + pb_callback_t path; +} google_api_CustomHttpPattern; + +/* # gRPC Transcoding + + gRPC Transcoding is a feature for mapping between a gRPC method and one or + more HTTP REST endpoints. It allows developers to build a single API service + that supports both gRPC APIs and REST APIs. Many systems, including [Google + APIs](https://github.com/googleapis/googleapis), + [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC + Gateway](https://github.com/grpc-ecosystem/grpc-gateway), + and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature + and use it for large scale production services. + + `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies + how different portions of the gRPC request message are mapped to the URL + path, URL query parameters, and HTTP request body. It also controls how the + gRPC response message is mapped to the HTTP response body. `HttpRule` is + typically specified as an `google.api.http` annotation on the gRPC method. + + Each mapping specifies a URL path template and an HTTP method. The path + template may refer to one or more fields in the gRPC request message, as long + as each field is a non-repeated field with a primitive (non-message) type. + The path template controls how fields of the request message are mapped to + the URL path. + + Example: + + service Messaging { + rpc GetMessage(GetMessageRequest) returns (Message) { + option (google.api.http) = { + get: "/v1/{name=messages/ *}" + }; + } + } + message GetMessageRequest { + string name = 1; // Mapped to URL path. + } + message Message { + string text = 1; // The resource content. + } + + This enables an HTTP REST to gRPC mapping as below: + + HTTP | gRPC + -----|----- + `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` + + Any fields in the request message which are not bound by the path template + automatically become HTTP query parameters if there is no HTTP request body. + For example: + + service Messaging { + rpc GetMessage(GetMessageRequest) returns (Message) { + option (google.api.http) = { + get:"/v1/messages/{message_id}" + }; + } + } + message GetMessageRequest { + message SubMessage { + string subfield = 1; + } + string message_id = 1; // Mapped to URL path. + int64 revision = 2; // Mapped to URL query parameter `revision`. + SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. + } + + This enables a HTTP JSON to RPC mapping as below: + + HTTP | gRPC + -----|----- + `GET /v1/messages/123456?revision=2&sub.subfield=foo` | + `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: + "foo"))` + + Note that fields which are mapped to URL query parameters must have a + primitive type or a repeated primitive type or a non-repeated message type. + In the case of a repeated type, the parameter can be repeated in the URL + as `...?param=A¶m=B`. In the case of a message type, each field of the + message is mapped to a separate parameter, such as + `...?foo.a=A&foo.b=B&foo.c=C`. + + For HTTP methods that allow a request body, the `body` field + specifies the mapping. Consider a REST update method on the + message resource collection: + + service Messaging { + rpc UpdateMessage(UpdateMessageRequest) returns (Message) { + option (google.api.http) = { + patch: "/v1/messages/{message_id}" + body: "message" + }; + } + } + message UpdateMessageRequest { + string message_id = 1; // mapped to the URL + Message message = 2; // mapped to the body + } + + The following HTTP JSON to RPC mapping is enabled, where the + representation of the JSON in the request body is determined by + protos JSON encoding: + + HTTP | gRPC + -----|----- + `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: + "123456" message { text: "Hi!" })` + + The special name `*` can be used in the body mapping to define that + every field not bound by the path template should be mapped to the + request body. This enables the following alternative definition of + the update method: + + service Messaging { + rpc UpdateMessage(Message) returns (Message) { + option (google.api.http) = { + patch: "/v1/messages/{message_id}" + body: "*" + }; + } + } + message Message { + string message_id = 1; + string text = 2; + } + + + The following HTTP JSON to RPC mapping is enabled: + + HTTP | gRPC + -----|----- + `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: + "123456" text: "Hi!")` + + Note that when using `*` in the body mapping, it is not possible to + have HTTP parameters, as all fields not bound by the path end in + the body. This makes this option more rarely used in practice when + defining REST APIs. The common usage of `*` is in custom methods + which don't use the URL at all for transferring data. + + It is possible to define multiple HTTP methods for one RPC by using + the `additional_bindings` option. Example: + + service Messaging { + rpc GetMessage(GetMessageRequest) returns (Message) { + option (google.api.http) = { + get: "/v1/messages/{message_id}" + additional_bindings { + get: "/v1/users/{user_id}/messages/{message_id}" + } + }; + } + } + message GetMessageRequest { + string message_id = 1; + string user_id = 2; + } + + This enables the following two alternative HTTP JSON to RPC mappings: + + HTTP | gRPC + -----|----- + `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` + `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: + "123456")` + + ## Rules for HTTP mapping + + 1. Leaf request fields (recursive expansion nested messages in the request + message) are classified into three categories: + - Fields referred by the path template. They are passed via the URL path. + - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP + request body. + - All other fields are passed via the URL query parameters, and the + parameter name is the field path in the request message. A repeated + field can be represented as multiple query parameters under the same + name. + 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields + are passed via URL path and HTTP request body. + 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all + fields are passed via URL path and URL query parameters. + + ### Path template syntax + + Template = "/" Segments [ Verb ] ; + Segments = Segment { "/" Segment } ; + Segment = "*" | "**" | LITERAL | Variable ; + Variable = "{" FieldPath [ "=" Segments ] "}" ; + FieldPath = IDENT { "." IDENT } ; + Verb = ":" LITERAL ; + + The syntax `*` matches a single URL path segment. The syntax `**` matches + zero or more URL path segments, which must be the last part of the URL path + except the `Verb`. + + The syntax `Variable` matches part of the URL path as specified by its + template. A variable template must not contain other variables. If a variable + matches a single path segment, its template may be omitted, e.g. `{var}` + is equivalent to `{var=*}`. + + The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` + contains any reserved character, such characters should be percent-encoded + before the matching. + + If a variable contains exactly one path segment, such as `"{var}"` or + `"{var=*}"`, when such a variable is expanded into a URL path on the client + side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The + server side does the reverse decoding. Such variables show up in the + [Discovery + Document](https://developers.google.com/discovery/v1/reference/apis) as + `{var}`. + + If a variable contains multiple path segments, such as `"{var=foo/ *}"` + or `"{var=**}"`, when such a variable is expanded into a URL path on the + client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. + The server side does the reverse decoding, except "%2F" and "%2f" are left + unchanged. Such variables show up in the + [Discovery + Document](https://developers.google.com/discovery/v1/reference/apis) as + `{+var}`. + + ## Using gRPC API Service Configuration + + gRPC API Service Configuration (service config) is a configuration language + for configuring a gRPC service to become a user-facing product. The + service config is simply the YAML representation of the `google.api.Service` + proto message. + + As an alternative to annotating your proto file, you can configure gRPC + transcoding in your service config YAML files. You do this by specifying a + `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same + effect as the proto annotation. This can be particularly useful if you + have a proto that is reused in multiple services. Note that any transcoding + specified in the service config will override any matching transcoding + configuration in the proto. + + Example: + + http: + rules: + # Selects a gRPC method and applies HttpRule to it. + - selector: example.v1.Messaging.GetMessage + get: /v1/messages/{message_id}/{sub.subfield} + + ## Special notes + + When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the + proto to JSON conversion must follow the [proto3 + specification](https://developers.google.com/protocol-buffers/docs/proto3#json). + + While the single segment variable follows the semantics of + [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String + Expansion, the multi segment variable **does not** follow RFC 6570 Section + 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion + does not expand special characters like `?` and `#`, which would lead + to invalid URLs. As the result, gRPC Transcoding uses a custom encoding + for multi segment variables. + + The path variables **must not** refer to any repeated or mapped field, + because client libraries are not capable of handling such variable expansion. + + The path variables **must not** capture the leading "/" character. The reason + is that the most common use case "{var}" does not capture the leading "/" + character. For consistency, all path variables must share the same behavior. + + Repeated message fields must not be mapped to URL query parameters, because + no client library can support such complicated mapping. + + If an API needs to use a JSON array for request or response body, it can map + the request or response body to a repeated field. However, some gRPC + Transcoding implementations may not support this feature. */ +typedef struct _google_api_HttpRule { + /* Selects a method to which this rule applies. + + Refer to [selector][google.api.DocumentationRule.selector] for syntax details. */ + pb_callback_t selector; + pb_size_t which_pattern; + union { + /* Maps to HTTP GET. Used for listing and getting information about + resources. */ + pb_callback_t get; + /* Maps to HTTP PUT. Used for replacing a resource. */ + pb_callback_t put; + /* Maps to HTTP POST. Used for creating a resource or performing an action. */ + pb_callback_t post; + /* Maps to HTTP DELETE. Used for deleting a resource. */ + pb_callback_t delete; + /* Maps to HTTP PATCH. Used for updating a resource. */ + pb_callback_t patch; + /* The custom pattern is used for specifying an HTTP method that is not + included in the `pattern` field, such as HEAD, or "*" to leave the + HTTP method unspecified for this rule. The wild-card rule is useful + for services that provide content to Web (HTML) clients. */ + google_api_CustomHttpPattern custom; + } pattern; + /* The name of the request field whose value is mapped to the HTTP request + body, or `*` for mapping all request fields not captured by the path + pattern to the HTTP body, or omitted for not having any HTTP request body. + + NOTE: the referred field must be present at the top-level of the request + message type. */ + pb_callback_t body; + /* Additional HTTP bindings for the selector. Nested bindings must + not contain an `additional_bindings` field themselves (that is, + the nesting may only be one level deep). */ + pb_callback_t additional_bindings; + /* Optional. The name of the response field whose value is mapped to the HTTP + response body. When omitted, the entire response message will be used + as the HTTP response body. + + NOTE: The referred field must be present at the top-level of the response + message type. */ + pb_callback_t response_body; +} google_api_HttpRule; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define google_api_Http_init_default \ + { {{NULL}, NULL}, 0 } +#define google_api_HttpRule_init_default \ + { \ + {{NULL}, NULL}, 0, {{{NULL}, NULL}}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_api_CustomHttpPattern_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_api_Http_init_zero \ + { {{NULL}, NULL}, 0 } +#define google_api_HttpRule_init_zero \ + { \ + {{NULL}, NULL}, 0, {{{NULL}, NULL}}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_api_CustomHttpPattern_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define google_api_Http_rules_tag 1 +#define google_api_Http_fully_decode_reserved_expansion_tag 2 +#define google_api_CustomHttpPattern_kind_tag 1 +#define google_api_CustomHttpPattern_path_tag 2 +#define google_api_HttpRule_selector_tag 1 +#define google_api_HttpRule_get_tag 2 +#define google_api_HttpRule_put_tag 3 +#define google_api_HttpRule_post_tag 4 +#define google_api_HttpRule_delete_tag 5 +#define google_api_HttpRule_patch_tag 6 +#define google_api_HttpRule_custom_tag 8 +#define google_api_HttpRule_body_tag 7 +#define google_api_HttpRule_additional_bindings_tag 11 +#define google_api_HttpRule_response_body_tag 12 + +/* Struct field encoding specification for nanopb */ +#define google_api_Http_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, rules, 1) \ + X(a, STATIC, SINGULAR, BOOL, fully_decode_reserved_expansion, 2) +#define google_api_Http_CALLBACK pb_default_field_callback +#define google_api_Http_DEFAULT NULL +#define google_api_Http_rules_MSGTYPE google_api_HttpRule + +#define google_api_HttpRule_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, selector, 1) \ + X(a, CALLBACK, ONEOF, STRING, (pattern, get, pattern.get), 2) \ + X(a, CALLBACK, ONEOF, STRING, (pattern, put, pattern.put), 3) \ + X(a, CALLBACK, ONEOF, STRING, (pattern, post, pattern.post), 4) \ + X(a, CALLBACK, ONEOF, STRING, (pattern, delete, pattern.delete), 5) \ + X(a, CALLBACK, ONEOF, STRING, (pattern, patch, pattern.patch), 6) \ + X(a, CALLBACK, SINGULAR, STRING, body, 7) \ + X(a, STATIC, ONEOF, MESSAGE, (pattern, custom, pattern.custom), 8) \ + X(a, CALLBACK, REPEATED, MESSAGE, additional_bindings, 11) \ + X(a, CALLBACK, SINGULAR, STRING, response_body, 12) +#define google_api_HttpRule_CALLBACK pb_default_field_callback +#define google_api_HttpRule_DEFAULT NULL +#define google_api_HttpRule_pattern_custom_MSGTYPE google_api_CustomHttpPattern +#define google_api_HttpRule_additional_bindings_MSGTYPE google_api_HttpRule + +#define google_api_CustomHttpPattern_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, kind, 1) \ + X(a, CALLBACK, SINGULAR, STRING, path, 2) +#define google_api_CustomHttpPattern_CALLBACK pb_default_field_callback +#define google_api_CustomHttpPattern_DEFAULT NULL + +extern const pb_msgdesc_t google_api_Http_msg; +extern const pb_msgdesc_t google_api_HttpRule_msg; +extern const pb_msgdesc_t google_api_CustomHttpPattern_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define google_api_Http_fields &google_api_Http_msg +#define google_api_HttpRule_fields &google_api_HttpRule_msg +#define google_api_CustomHttpPattern_fields &google_api_CustomHttpPattern_msg + +/* Maximum encoded size of messages (where known) */ +/* google_api_Http_size depends on runtime parameters */ +/* google_api_HttpRule_size depends on runtime parameters */ +/* google_api_CustomHttpPattern_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/protobuf/any.pb.c b/app/src/protobuf/google/protobuf/any.pb.c new file mode 100644 index 0000000..8f2a7c4 --- /dev/null +++ b/app/src/protobuf/google/protobuf/any.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/protobuf/any.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(google_protobuf_Any, google_protobuf_Any, AUTO) diff --git a/app/src/protobuf/google/protobuf/any.pb.h b/app/src/protobuf/google/protobuf/any.pb.h new file mode 100644 index 0000000..b04bf82 --- /dev/null +++ b/app/src/protobuf/google/protobuf/any.pb.h @@ -0,0 +1,169 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_ANY_PB_H_INCLUDED +#define PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_ANY_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + // or ... + if (any.isSameTypeAs(Foo.getDefaultInstance())) { + foo = any.unpack(Foo.getDefaultInstance()); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := anypb.New(foo) + if err != nil { + ... + } + ... + foo := &pb.Foo{} + if err := any.UnmarshalTo(foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": , + "lastName": + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } */ +typedef struct _google_protobuf_Any { + /* A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. This string must contain at least + one "/" character. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. As of May 2023, there are no widely used type server + implementations and no plans to implement one. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. */ + pb_callback_t type_url; + /* Must be a valid serialized protocol buffer of the above specified type. */ + pb_callback_t value; +} google_protobuf_Any; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define google_protobuf_Any_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_Any_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define google_protobuf_Any_type_url_tag 1 +#define google_protobuf_Any_value_tag 2 + +/* Struct field encoding specification for nanopb */ +#define google_protobuf_Any_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, type_url, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) +#define google_protobuf_Any_CALLBACK pb_default_field_callback +#define google_protobuf_Any_DEFAULT NULL + +extern const pb_msgdesc_t google_protobuf_Any_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define google_protobuf_Any_fields &google_protobuf_Any_msg + +/* Maximum encoded size of messages (where known) */ +/* google_protobuf_Any_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/protobuf/descriptor.pb.c b/app/src/protobuf/google/protobuf/descriptor.pb.c new file mode 100644 index 0000000..55efb3c --- /dev/null +++ b/app/src/protobuf/google/protobuf/descriptor.pb.c @@ -0,0 +1,82 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/protobuf/descriptor.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(google_protobuf_FileDescriptorSet, google_protobuf_FileDescriptorSet, AUTO) + +PB_BIND(google_protobuf_FileDescriptorProto, google_protobuf_FileDescriptorProto, 2) + +PB_BIND(google_protobuf_DescriptorProto, google_protobuf_DescriptorProto, 2) + +PB_BIND(google_protobuf_DescriptorProto_ExtensionRange, google_protobuf_DescriptorProto_ExtensionRange, AUTO) + +PB_BIND(google_protobuf_DescriptorProto_ReservedRange, google_protobuf_DescriptorProto_ReservedRange, AUTO) + +PB_BIND(google_protobuf_ExtensionRangeOptions, google_protobuf_ExtensionRangeOptions, 2) + +PB_BIND(google_protobuf_ExtensionRangeOptions_Declaration, google_protobuf_ExtensionRangeOptions_Declaration, AUTO) + +PB_BIND(google_protobuf_FieldDescriptorProto, google_protobuf_FieldDescriptorProto, 2) + +PB_BIND(google_protobuf_OneofDescriptorProto, google_protobuf_OneofDescriptorProto, AUTO) + +PB_BIND(google_protobuf_EnumDescriptorProto, google_protobuf_EnumDescriptorProto, AUTO) + +PB_BIND(google_protobuf_EnumDescriptorProto_EnumReservedRange, google_protobuf_EnumDescriptorProto_EnumReservedRange, AUTO) + +PB_BIND(google_protobuf_EnumValueDescriptorProto, google_protobuf_EnumValueDescriptorProto, AUTO) + +PB_BIND(google_protobuf_ServiceDescriptorProto, google_protobuf_ServiceDescriptorProto, AUTO) + +PB_BIND(google_protobuf_MethodDescriptorProto, google_protobuf_MethodDescriptorProto, AUTO) + +PB_BIND(google_protobuf_FileOptions, google_protobuf_FileOptions, 2) + +PB_BIND(google_protobuf_MessageOptions, google_protobuf_MessageOptions, 2) + +PB_BIND(google_protobuf_FieldOptions, google_protobuf_FieldOptions, 2) + +PB_BIND(google_protobuf_FieldOptions_EditionDefault, google_protobuf_FieldOptions_EditionDefault, AUTO) + +PB_BIND(google_protobuf_FieldOptions_FeatureSupport, google_protobuf_FieldOptions_FeatureSupport, AUTO) + +PB_BIND(google_protobuf_OneofOptions, google_protobuf_OneofOptions, 2) + +PB_BIND(google_protobuf_EnumOptions, google_protobuf_EnumOptions, 2) + +PB_BIND(google_protobuf_EnumValueOptions, google_protobuf_EnumValueOptions, 2) + +PB_BIND(google_protobuf_ServiceOptions, google_protobuf_ServiceOptions, 2) + +PB_BIND(google_protobuf_MethodOptions, google_protobuf_MethodOptions, 2) + +PB_BIND(google_protobuf_UninterpretedOption, google_protobuf_UninterpretedOption, AUTO) + +PB_BIND(google_protobuf_UninterpretedOption_NamePart, google_protobuf_UninterpretedOption_NamePart, AUTO) + +PB_BIND(google_protobuf_FeatureSet, google_protobuf_FeatureSet, 2) + +PB_BIND(google_protobuf_FeatureSetDefaults, google_protobuf_FeatureSetDefaults, AUTO) + +PB_BIND(google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault, + google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault, AUTO) + +PB_BIND(google_protobuf_SourceCodeInfo, google_protobuf_SourceCodeInfo, AUTO) + +PB_BIND(google_protobuf_SourceCodeInfo_Location, google_protobuf_SourceCodeInfo_Location, AUTO) + +PB_BIND(google_protobuf_GeneratedCodeInfo, google_protobuf_GeneratedCodeInfo, AUTO) + +PB_BIND(google_protobuf_GeneratedCodeInfo_Annotation, google_protobuf_GeneratedCodeInfo_Annotation, AUTO) + +#ifndef PB_CONVERT_DOUBLE_FLOAT +/* On some platforms (such as AVR), double is really float. + * To be able to encode/decode double on these platforms, you need. + * to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. + */ +PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) +#endif diff --git a/app/src/protobuf/google/protobuf/descriptor.pb.h b/app/src/protobuf/google/protobuf/descriptor.pb.h new file mode 100644 index 0000000..2c01eb3 --- /dev/null +++ b/app/src/protobuf/google/protobuf/descriptor.pb.h @@ -0,0 +1,2109 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DESCRIPTOR_PB_H_INCLUDED +#define PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DESCRIPTOR_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* The full set of known editions. */ +typedef enum _google_protobuf_Edition { + /* A placeholder for an unknown edition value. */ + google_protobuf_Edition_EDITION_UNKNOWN = 0, + /* A placeholder edition for specifying default behaviors *before* a feature + was first introduced. This is effectively an "infinite past". */ + google_protobuf_Edition_EDITION_LEGACY = 900, + /* Legacy syntax "editions". These pre-date editions, but behave much like + distinct editions. These can't be used to specify the edition of proto + files, but feature definitions must supply proto2/proto3 defaults for + backwards compatibility. */ + google_protobuf_Edition_EDITION_PROTO2 = 998, + google_protobuf_Edition_EDITION_PROTO3 = 999, + /* Editions that have been released. The specific values are arbitrary and + should not be depended on, but they will always be time-ordered for easy + comparison. */ + google_protobuf_Edition_EDITION_2023 = 1000, + google_protobuf_Edition_EDITION_2024 = 1001, + /* Placeholder editions for testing feature resolution. These should not be + used or relied on outside of tests. */ + google_protobuf_Edition_EDITION_1_TEST_ONLY = 1, + google_protobuf_Edition_EDITION_2_TEST_ONLY = 2, + google_protobuf_Edition_EDITION_99997_TEST_ONLY = 99997, + google_protobuf_Edition_EDITION_99998_TEST_ONLY = 99998, + google_protobuf_Edition_EDITION_99999_TEST_ONLY = 99999, + /* Placeholder for specifying unbounded edition support. This should only + ever be used by plugins that can expect to never require any changes to + support a new edition. */ + google_protobuf_Edition_EDITION_MAX = 2147483647 +} google_protobuf_Edition; + +/* The verification state of the extension range. */ +typedef enum _google_protobuf_ExtensionRangeOptions_VerificationState { + /* All the extensions of the range must be declared. */ + google_protobuf_ExtensionRangeOptions_VerificationState_DECLARATION = 0, + google_protobuf_ExtensionRangeOptions_VerificationState_UNVERIFIED = 1 +} google_protobuf_ExtensionRangeOptions_VerificationState; + +typedef enum _google_protobuf_FieldDescriptorProto_Type { + /* 0 is reserved for errors. + Order is weird for historical reasons. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_DOUBLE = 1, + google_protobuf_FieldDescriptorProto_Type_TYPE_FLOAT = 2, + /* Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_INT64 = 3, + google_protobuf_FieldDescriptorProto_Type_TYPE_UINT64 = 4, + /* Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_INT32 = 5, + google_protobuf_FieldDescriptorProto_Type_TYPE_FIXED64 = 6, + google_protobuf_FieldDescriptorProto_Type_TYPE_FIXED32 = 7, + google_protobuf_FieldDescriptorProto_Type_TYPE_BOOL = 8, + google_protobuf_FieldDescriptorProto_Type_TYPE_STRING = 9, + /* Tag-delimited aggregate. + Group type is deprecated and not supported after google.protobuf. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. In Editions, the group wire format + can be enabled via the `message_encoding` feature. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_GROUP = 10, + google_protobuf_FieldDescriptorProto_Type_TYPE_MESSAGE = 11, /* Length-delimited aggregate. */ + /* New in version 2. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_BYTES = 12, + google_protobuf_FieldDescriptorProto_Type_TYPE_UINT32 = 13, + google_protobuf_FieldDescriptorProto_Type_TYPE_ENUM = 14, + google_protobuf_FieldDescriptorProto_Type_TYPE_SFIXED32 = 15, + google_protobuf_FieldDescriptorProto_Type_TYPE_SFIXED64 = 16, + google_protobuf_FieldDescriptorProto_Type_TYPE_SINT32 = 17, /* Uses ZigZag encoding. */ + google_protobuf_FieldDescriptorProto_Type_TYPE_SINT64 = 18 /* Uses ZigZag encoding. */ +} google_protobuf_FieldDescriptorProto_Type; + +typedef enum _google_protobuf_FieldDescriptorProto_Label { + /* 0 is reserved for errors */ + google_protobuf_FieldDescriptorProto_Label_LABEL_OPTIONAL = 1, + google_protobuf_FieldDescriptorProto_Label_LABEL_REPEATED = 3, + /* The required label is only allowed in google.protobuf. In proto3 and Editions + it's explicitly prohibited. In Editions, the `field_presence` feature + can be used to get this behavior. */ + google_protobuf_FieldDescriptorProto_Label_LABEL_REQUIRED = 2 +} google_protobuf_FieldDescriptorProto_Label; + +/* Generated classes can be optimized for speed or code size. */ +typedef enum _google_protobuf_FileOptions_OptimizeMode { + google_protobuf_FileOptions_OptimizeMode_SPEED = 1, /* Generate complete code for parsing, serialization, */ + /* etc. */ + google_protobuf_FileOptions_OptimizeMode_CODE_SIZE = 2, /* Use ReflectionOps to implement these methods. */ + google_protobuf_FileOptions_OptimizeMode_LITE_RUNTIME = 3 /* Generate code using MessageLite and the lite runtime. */ +} google_protobuf_FileOptions_OptimizeMode; + +typedef enum _google_protobuf_FieldOptions_CType { + /* Default mode. */ + google_protobuf_FieldOptions_CType_STRING = 0, + /* The option [ctype=CORD] may be applied to a non-repeated field of type + "bytes". It indicates that in C++, the data should be stored in a Cord + instead of a string. For very large strings, this may reduce memory + fragmentation. It may also allow better performance when parsing from a + Cord, or when parsing with aliasing enabled, as the parsed Cord may then + alias the original buffer. */ + google_protobuf_FieldOptions_CType_CORD = 1, + google_protobuf_FieldOptions_CType_STRING_PIECE = 2 +} google_protobuf_FieldOptions_CType; + +typedef enum _google_protobuf_FieldOptions_JSType { + /* Use the default type. */ + google_protobuf_FieldOptions_JSType_JS_NORMAL = 0, + /* Use JavaScript strings. */ + google_protobuf_FieldOptions_JSType_JS_STRING = 1, + /* Use JavaScript numbers. */ + google_protobuf_FieldOptions_JSType_JS_NUMBER = 2 +} google_protobuf_FieldOptions_JSType; + +/* If set to RETENTION_SOURCE, the option will be omitted from the binary. */ +typedef enum _google_protobuf_FieldOptions_OptionRetention { + google_protobuf_FieldOptions_OptionRetention_RETENTION_UNKNOWN = 0, + google_protobuf_FieldOptions_OptionRetention_RETENTION_RUNTIME = 1, + google_protobuf_FieldOptions_OptionRetention_RETENTION_SOURCE = 2 +} google_protobuf_FieldOptions_OptionRetention; + +/* This indicates the types of entities that the field may apply to when used + as an option. If it is unset, then the field may be freely used as an + option on any kind of entity. */ +typedef enum _google_protobuf_FieldOptions_OptionTargetType { + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_UNKNOWN = 0, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_FILE = 1, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_EXTENSION_RANGE = 2, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_MESSAGE = 3, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_FIELD = 4, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_ONEOF = 5, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_ENUM = 6, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_ENUM_ENTRY = 7, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_SERVICE = 8, + google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_METHOD = 9 +} google_protobuf_FieldOptions_OptionTargetType; + +/* Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. */ +typedef enum _google_protobuf_MethodOptions_IdempotencyLevel { + google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENCY_UNKNOWN = 0, + google_protobuf_MethodOptions_IdempotencyLevel_NO_SIDE_EFFECTS = 1, /* implies idempotent */ + google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENT = 2 /* idempotent, but may have side effects */ +} google_protobuf_MethodOptions_IdempotencyLevel; + +typedef enum _google_protobuf_FeatureSet_FieldPresence { + google_protobuf_FeatureSet_FieldPresence_FIELD_PRESENCE_UNKNOWN = 0, + google_protobuf_FeatureSet_FieldPresence_EXPLICIT = 1, + google_protobuf_FeatureSet_FieldPresence_IMPLICIT = 2, + google_protobuf_FeatureSet_FieldPresence_LEGACY_REQUIRED = 3 +} google_protobuf_FeatureSet_FieldPresence; + +typedef enum _google_protobuf_FeatureSet_EnumType { + google_protobuf_FeatureSet_EnumType_ENUM_TYPE_UNKNOWN = 0, + google_protobuf_FeatureSet_EnumType_OPEN = 1, + google_protobuf_FeatureSet_EnumType_CLOSED = 2 +} google_protobuf_FeatureSet_EnumType; + +typedef enum _google_protobuf_FeatureSet_RepeatedFieldEncoding { + google_protobuf_FeatureSet_RepeatedFieldEncoding_REPEATED_FIELD_ENCODING_UNKNOWN = 0, + google_protobuf_FeatureSet_RepeatedFieldEncoding_PACKED = 1, + google_protobuf_FeatureSet_RepeatedFieldEncoding_EXPANDED = 2 +} google_protobuf_FeatureSet_RepeatedFieldEncoding; + +typedef enum _google_protobuf_FeatureSet_Utf8Validation { + google_protobuf_FeatureSet_Utf8Validation_UTF8_VALIDATION_UNKNOWN = 0, + google_protobuf_FeatureSet_Utf8Validation_VERIFY = 2, + google_protobuf_FeatureSet_Utf8Validation_NONE = 3 +} google_protobuf_FeatureSet_Utf8Validation; + +typedef enum _google_protobuf_FeatureSet_MessageEncoding { + google_protobuf_FeatureSet_MessageEncoding_MESSAGE_ENCODING_UNKNOWN = 0, + google_protobuf_FeatureSet_MessageEncoding_LENGTH_PREFIXED = 1, + google_protobuf_FeatureSet_MessageEncoding_DELIMITED = 2 +} google_protobuf_FeatureSet_MessageEncoding; + +typedef enum _google_protobuf_FeatureSet_JsonFormat { + google_protobuf_FeatureSet_JsonFormat_JSON_FORMAT_UNKNOWN = 0, + google_protobuf_FeatureSet_JsonFormat_ALLOW = 1, + google_protobuf_FeatureSet_JsonFormat_LEGACY_BEST_EFFORT = 2 +} google_protobuf_FeatureSet_JsonFormat; + +/* Represents the identified object's effect on the element in the original + .proto file. */ +typedef enum _google_protobuf_GeneratedCodeInfo_Annotation_Semantic { + /* There is no effect or the effect is indescribable. */ + google_protobuf_GeneratedCodeInfo_Annotation_Semantic_NONE = 0, + /* The element is set or otherwise mutated. */ + google_protobuf_GeneratedCodeInfo_Annotation_Semantic_SET = 1, + /* An alias to the element is returned. */ + google_protobuf_GeneratedCodeInfo_Annotation_Semantic_ALIAS = 2 +} google_protobuf_GeneratedCodeInfo_Annotation_Semantic; + +/* Struct definitions */ +/* The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. */ +typedef struct _google_protobuf_FileDescriptorSet { + pb_callback_t file; +} google_protobuf_FileDescriptorSet; + +/* Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. */ +typedef struct _google_protobuf_DescriptorProto_ReservedRange { + bool has_start; + int32_t start; /* Inclusive. */ + bool has_end; + int32_t end; /* Exclusive. */ +} google_protobuf_DescriptorProto_ReservedRange; + +typedef struct _google_protobuf_ExtensionRangeOptions_Declaration { + /* The extension number declared within the extension range. */ + bool has_number; + int32_t number; + /* The fully-qualified name of the extension field. There must be a leading + dot in front of the full name. */ + pb_callback_t full_name; + /* The fully-qualified type name of the extension field. Unlike + Metadata.type, Declaration.type must have a leading dot for messages + and enums. */ + pb_callback_t type; + /* If true, indicates that the number is reserved in the extension range, + and any extension field with the number will fail to compile. Set this + when a declared extension field is deleted. */ + bool has_reserved; + bool reserved; + /* If true, indicates that the extension must be defined as repeated. + Otherwise the extension must be defined as optional. */ + bool has_repeated; + bool repeated; +} google_protobuf_ExtensionRangeOptions_Declaration; + +/* Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. */ +typedef struct _google_protobuf_EnumDescriptorProto_EnumReservedRange { + bool has_start; + int32_t start; /* Inclusive. */ + bool has_end; + int32_t end; /* Inclusive. */ +} google_protobuf_EnumDescriptorProto_EnumReservedRange; + +typedef struct _google_protobuf_FieldOptions_EditionDefault { + pb_callback_t value; /* Textproto value. */ + bool has_edition; + google_protobuf_Edition edition; +} google_protobuf_FieldOptions_EditionDefault; + +/* Information about the support window of a feature. */ +typedef struct _google_protobuf_FieldOptions_FeatureSupport { + /* The edition that this feature was first available in. In editions + earlier than this one, the default assigned to EDITION_LEGACY will be + used, and proto files will not be able to override it. */ + bool has_edition_introduced; + google_protobuf_Edition edition_introduced; + /* The edition this feature becomes deprecated in. Using this after this + edition may trigger warnings. */ + bool has_edition_deprecated; + google_protobuf_Edition edition_deprecated; + /* The deprecation warning text if this feature is used after the edition it + was marked deprecated in. */ + pb_callback_t deprecation_warning; + /* The edition this feature is no longer available in. In editions after + this one, the last default assigned will be used, and proto files will + not be able to override it. */ + bool has_edition_removed; + google_protobuf_Edition edition_removed; +} google_protobuf_FieldOptions_FeatureSupport; + +/* A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. */ +typedef struct _google_protobuf_UninterpretedOption { + pb_callback_t name; + /* The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. */ + pb_callback_t identifier_value; + bool has_positive_int_value; + uint64_t positive_int_value; + bool has_negative_int_value; + int64_t negative_int_value; + bool has_double_value; + double double_value; + pb_callback_t string_value; + pb_callback_t aggregate_value; +} google_protobuf_UninterpretedOption; + +/* The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents + "foo.(bar.baz).moo". */ +typedef struct _google_protobuf_UninterpretedOption_NamePart { + pb_callback_t name_part; + bool is_extension; +} google_protobuf_UninterpretedOption_NamePart; + +/* TODO Enums in C++ gencode (and potentially other languages) are + not well scoped. This means that each of the feature enums below can clash + with each other. The short names we've chosen maximize call-site + readability, but leave us very open to this scenario. A future feature will + be designed and implemented to handle this, hopefully before we ever hit a + conflict here. */ +typedef struct _google_protobuf_FeatureSet { + bool has_field_presence; + google_protobuf_FeatureSet_FieldPresence field_presence; + bool has_enum_type; + google_protobuf_FeatureSet_EnumType enum_type; + bool has_repeated_field_encoding; + google_protobuf_FeatureSet_RepeatedFieldEncoding repeated_field_encoding; + bool has_utf8_validation; + google_protobuf_FeatureSet_Utf8Validation utf8_validation; + bool has_message_encoding; + google_protobuf_FeatureSet_MessageEncoding message_encoding; + bool has_json_format; + google_protobuf_FeatureSet_JsonFormat json_format; + pb_extension_t *extensions; +} google_protobuf_FeatureSet; + +typedef struct _google_protobuf_ExtensionRangeOptions { + /* For external users: DO NOT USE. We are in the process of open sourcing + extension declaration and executing internal cleanups before it can be + used externally. */ + pb_callback_t declaration; + /* The verification state of the range. + TODO: flip the default to DECLARATION once all empty ranges + are marked as UNVERIFIED. */ + bool has_verification; + google_protobuf_ExtensionRangeOptions_VerificationState verification; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_ExtensionRangeOptions; + +typedef struct _google_protobuf_DescriptorProto_ExtensionRange { + bool has_start; + int32_t start; /* Inclusive. */ + bool has_end; + int32_t end; /* Exclusive. */ + bool has_options; + google_protobuf_ExtensionRangeOptions options; +} google_protobuf_DescriptorProto_ExtensionRange; + +typedef struct _google_protobuf_FileOptions { + /* Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. */ + pb_callback_t java_package; + /* Controls the name of the wrapper Java class generated for the .proto file. + That class will always contain the .proto file's getDescriptor() method as + well as any top-level extensions defined in the .proto file. + If java_multiple_files is disabled, then all the other classes from the + .proto file will be nested inside the single wrapper outer class. */ + pb_callback_t java_outer_classname; + bool has_optimize_for; + google_protobuf_FileOptions_OptimizeMode optimize_for; + /* If enabled, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the wrapper class + named by java_outer_classname. However, the wrapper class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. */ + bool has_java_multiple_files; + bool java_multiple_files; + /* Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. */ + pb_callback_t go_package; + /* Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. */ + bool has_cc_generic_services; + bool cc_generic_services; + bool has_java_generic_services; + bool java_generic_services; + bool has_py_generic_services; + bool py_generic_services; + /* This option does nothing. */ + bool has_java_generate_equals_and_hash; + bool java_generate_equals_and_hash; + /* Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. */ + bool has_deprecated; + bool deprecated; + /* A proto2 file can set this to true to opt in to UTF-8 checking for Java, + which will throw an exception if invalid UTF-8 is parsed from the wire or + assigned to a string field. + + TODO: clarify exactly what kinds of field types this option + applies to, and update these docs accordingly. + + Proto3 files already perform these checks. Setting the option explicitly to + false has no effect: it cannot be used to opt proto3 files out of UTF-8 + checks. */ + bool has_java_string_check_utf8; + bool java_string_check_utf8; + /* Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. */ + bool has_cc_enable_arenas; + bool cc_enable_arenas; + /* Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. */ + pb_callback_t objc_class_prefix; + /* Namespace for generated classes; defaults to the package. */ + pb_callback_t csharp_namespace; + /* By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. */ + pb_callback_t swift_prefix; + /* Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. */ + pb_callback_t php_class_prefix; + /* Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. */ + pb_callback_t php_namespace; + /* Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be + used for determining the namespace. */ + pb_callback_t php_metadata_namespace; + /* Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. */ + pb_callback_t ruby_package; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_FileOptions; + +typedef struct _google_protobuf_MessageOptions { + /* Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. */ + bool has_message_set_wire_format; + bool message_set_wire_format; + /* Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". */ + bool has_no_standard_descriptor_accessor; + bool no_standard_descriptor_accessor; + /* Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. */ + bool has_deprecated; + bool deprecated; + /* Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementations still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. */ + bool has_map_entry; + bool map_entry; + /* Enable the legacy handling of JSON field name conflicts. This lowercases + and strips underscored from the fields before comparison in proto3 only. + The new behavior takes `json_name` into account and applies to proto2 as + well. + + This should only be used as a temporary measure against broken builds due + to the change in behavior for JSON field name conflicts. + + TODO This is legacy behavior we plan to remove once downstream + teams have had time to migrate. */ + bool has_deprecated_legacy_json_field_conflicts; + bool deprecated_legacy_json_field_conflicts; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_MessageOptions; + +/* Describes a message type. */ +typedef struct _google_protobuf_DescriptorProto { + pb_callback_t name; + pb_callback_t field; + pb_callback_t nested_type; + pb_callback_t enum_type; + pb_callback_t extension_range; + pb_callback_t extension; + bool has_options; + google_protobuf_MessageOptions options; + pb_callback_t oneof_decl; + pb_callback_t reserved_range; + /* Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. */ + pb_callback_t reserved_name; +} google_protobuf_DescriptorProto; + +typedef struct _google_protobuf_FieldOptions { + /* NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead. + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is only implemented to support use of + [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + type "bytes" in the open source release. + TODO: make ctype actually deprecated. */ + bool has_ctype; + google_protobuf_FieldOptions_CType ctype; + /* The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. This option is prohibited in + Editions, but the `repeated_field_encoding` feature can be used to control + the behavior. */ + bool has_packed; + bool packed; + /* Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. */ + bool has_deprecated; + bool deprecated; + /* Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that lazy message fields are still eagerly verified to check + ill-formed wireformat or missing required fields. Calling IsInitialized() + on the outer message would fail if the inner message has missing required + fields. Failed verification would result in parsing failure (except when + uninitialized messages are acceptable). */ + bool has_lazy; + bool lazy; + /* The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. */ + bool has_jstype; + google_protobuf_FieldOptions_JSType jstype; + /* For Google-internal migration only. Do not use. */ + bool has_weak; + bool weak; + /* unverified_lazy does no correctness checks on the byte stream. This should + only be used where lazy with verification is prohibitive for performance + reasons. */ + bool has_unverified_lazy; + bool unverified_lazy; + /* Indicate that the field value should not be printed out when using debug + formats, e.g. when the field contains sensitive credentials. */ + bool has_debug_redact; + bool debug_redact; + bool has_retention; + google_protobuf_FieldOptions_OptionRetention retention; + pb_callback_t targets; + pb_callback_t edition_defaults; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + bool has_feature_support; + google_protobuf_FieldOptions_FeatureSupport feature_support; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_FieldOptions; + +/* Describes a field within a message. */ +typedef struct _google_protobuf_FieldDescriptorProto { + pb_callback_t name; + /* For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. */ + pb_callback_t extendee; + bool has_number; + int32_t number; + bool has_label; + google_protobuf_FieldDescriptorProto_Label label; + /* If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. */ + bool has_type; + google_protobuf_FieldDescriptorProto_Type type; + /* For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). */ + pb_callback_t type_name; + /* For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. */ + pb_callback_t default_value; + bool has_options; + google_protobuf_FieldOptions options; + /* If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. */ + bool has_oneof_index; + int32_t oneof_index; + /* JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. */ + pb_callback_t json_name; + /* If true, this is a proto3 "optional". When a proto3 field is optional, it + tracks presence regardless of field type. + + When proto3_optional is true, this field must belong to a oneof to signal + to old proto3 clients that presence is tracked for this field. This oneof + is known as a "synthetic" oneof, and this field must be its sole member + (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs + exist in the descriptor only, and do not generate any API. Synthetic oneofs + must be ordered after all "real" oneofs. + + For message fields, proto3_optional doesn't create any semantic change, + since non-repeated message fields always track presence. However it still + indicates the semantic detail of whether the user wrote "optional" or not. + This can be useful for round-tripping the .proto file. For consistency we + give message fields a synthetic oneof also, even though it is not required + to track presence. This is especially important because the parser can't + tell if a field is a message or an enum, so it must always create a + synthetic oneof. + + Proto2 optional fields do not set this flag, because they already indicate + optional with `LABEL_OPTIONAL`. */ + bool has_proto3_optional; + bool proto3_optional; +} google_protobuf_FieldDescriptorProto; + +typedef struct _google_protobuf_OneofOptions { + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_OneofOptions; + +/* Describes a oneof. */ +typedef struct _google_protobuf_OneofDescriptorProto { + pb_callback_t name; + bool has_options; + google_protobuf_OneofOptions options; +} google_protobuf_OneofDescriptorProto; + +typedef struct _google_protobuf_EnumOptions { + /* Set this option to true to allow mapping different tag names to the same + value. */ + bool has_allow_alias; + bool allow_alias; + /* Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. */ + bool has_deprecated; + bool deprecated; + /* Enable the legacy handling of JSON field name conflicts. This lowercases + and strips underscored from the fields before comparison in proto3 only. + The new behavior takes `json_name` into account and applies to proto2 as + well. + TODO Remove this legacy behavior once downstream teams have + had time to migrate. */ + bool has_deprecated_legacy_json_field_conflicts; + bool deprecated_legacy_json_field_conflicts; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_EnumOptions; + +/* Describes an enum type. */ +typedef struct _google_protobuf_EnumDescriptorProto { + pb_callback_t name; + pb_callback_t value; + bool has_options; + google_protobuf_EnumOptions options; + /* Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. */ + pb_callback_t reserved_range; + /* Reserved enum value names, which may not be reused. A given name may only + be reserved once. */ + pb_callback_t reserved_name; +} google_protobuf_EnumDescriptorProto; + +typedef struct _google_protobuf_EnumValueOptions { + /* Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. */ + bool has_deprecated; + bool deprecated; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* Indicate that fields annotated with this enum value should not be printed + out when using debug formats, e.g. when the field contains sensitive + credentials. */ + bool has_debug_redact; + bool debug_redact; + /* Information about the support window of a feature value. */ + bool has_feature_support; + google_protobuf_FieldOptions_FeatureSupport feature_support; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_EnumValueOptions; + +/* Describes a value within an enum. */ +typedef struct _google_protobuf_EnumValueDescriptorProto { + pb_callback_t name; + bool has_number; + int32_t number; + bool has_options; + google_protobuf_EnumValueOptions options; +} google_protobuf_EnumValueDescriptorProto; + +typedef struct _google_protobuf_ServiceOptions { + /* Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. */ + bool has_deprecated; + bool deprecated; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_ServiceOptions; + +/* Describes a service. */ +typedef struct _google_protobuf_ServiceDescriptorProto { + pb_callback_t name; + pb_callback_t method; + bool has_options; + google_protobuf_ServiceOptions options; +} google_protobuf_ServiceDescriptorProto; + +typedef struct _google_protobuf_MethodOptions { + /* Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. */ + bool has_deprecated; + bool deprecated; + bool has_idempotency_level; + google_protobuf_MethodOptions_IdempotencyLevel idempotency_level; + /* Any features defined in the specific edition. */ + bool has_features; + google_protobuf_FeatureSet features; + /* The parser stores options it doesn't recognize here. See above. */ + pb_callback_t uninterpreted_option; + pb_extension_t *extensions; +} google_protobuf_MethodOptions; + +/* Describes a method of a service. */ +typedef struct _google_protobuf_MethodDescriptorProto { + pb_callback_t name; + /* Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. */ + pb_callback_t input_type; + pb_callback_t output_type; + bool has_options; + google_protobuf_MethodOptions options; + /* Identifies if client streams multiple client messages */ + bool has_client_streaming; + bool client_streaming; + /* Identifies if server streams multiple server messages */ + bool has_server_streaming; + bool server_streaming; +} google_protobuf_MethodDescriptorProto; + +/* A compiled specification for the defaults of a set of features. These + messages are generated from FeatureSet extensions and can be used to seed + feature resolution. The resolution with this object becomes a simple search + for the closest matching edition, followed by proto merges. */ +typedef struct _google_protobuf_FeatureSetDefaults { + pb_callback_t defaults; + /* The minimum supported edition (inclusive) when this was constructed. + Editions before this will not have defaults. */ + bool has_minimum_edition; + google_protobuf_Edition minimum_edition; + /* The maximum known edition (inclusive) when this was constructed. Editions + after this will not have reliable defaults. */ + bool has_maximum_edition; + google_protobuf_Edition maximum_edition; +} google_protobuf_FeatureSetDefaults; + +/* A map from every known edition with a unique set of defaults to its + defaults. Not all editions may be contained here. For a given edition, + the defaults at the closest matching edition ordered at or before it should + be used. This field must be in strict ascending order by edition. */ +typedef struct _google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault { + bool has_edition; + google_protobuf_Edition edition; + /* Defaults of features that can be overridden in this edition. */ + bool has_overridable_features; + google_protobuf_FeatureSet overridable_features; + /* Defaults of features that can't be overridden in this edition. */ + bool has_fixed_features; + google_protobuf_FeatureSet fixed_features; +} google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault; + +/* Encapsulates information about the original source file from which a + FileDescriptorProto was generated. */ +typedef struct _google_protobuf_SourceCodeInfo { + /* A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendant. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. */ + pb_callback_t location; +} google_protobuf_SourceCodeInfo; + +/* Describes a complete .proto file. */ +typedef struct _google_protobuf_FileDescriptorProto { + pb_callback_t name; /* file name, relative to root of source tree */ + pb_callback_t package; /* e.g. "foo", "foo.bar", etc. */ + /* Names of files imported by this file. */ + pb_callback_t dependency; + /* All top-level definitions in this file. */ + pb_callback_t message_type; + pb_callback_t enum_type; + pb_callback_t service; + pb_callback_t extension; + bool has_options; + google_protobuf_FileOptions options; + /* This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. */ + bool has_source_code_info; + google_protobuf_SourceCodeInfo source_code_info; + /* Indexes of the public imported files in the dependency list above. */ + pb_callback_t public_dependency; + /* Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. */ + pb_callback_t weak_dependency; + /* The syntax of the proto file. + The supported values are "proto2", "proto3", and "editions". + + If `edition` is present, this value must be "editions". */ + pb_callback_t syntax; + /* The edition of the proto file. */ + bool has_edition; + google_protobuf_Edition edition; +} google_protobuf_FileDescriptorProto; + +typedef struct _google_protobuf_SourceCodeInfo_Location { + /* Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition appears. + For example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). */ + pb_callback_t path; + /* Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. */ + pb_callback_t span; + /* If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to moo. + // + // Another line attached to moo. + optional double moo = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to moo or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + / * Block comment attached + * to corge. Leading asterisks + * will be removed. * / + / * Block comment attached to + * grault. * / + optional int32 grault = 6; + + // ignored detached comments. */ + pb_callback_t leading_comments; + pb_callback_t trailing_comments; + pb_callback_t leading_detached_comments; +} google_protobuf_SourceCodeInfo_Location; + +/* Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. */ +typedef struct _google_protobuf_GeneratedCodeInfo { + /* An Annotation connects some span of text in generated code to an element + of its generating .proto file. */ + pb_callback_t annotation; +} google_protobuf_GeneratedCodeInfo; + +typedef struct _google_protobuf_GeneratedCodeInfo_Annotation { + /* Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. */ + pb_callback_t path; + /* Identifies the filesystem path to the original source .proto. */ + pb_callback_t source_file; + /* Identifies the starting offset in bytes in the generated code + that relates to the identified object. */ + bool has_begin; + int32_t begin; + /* Identifies the ending offset in bytes in the generated code that + relates to the identified object. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). */ + bool has_end; + int32_t end; + bool has_semantic; + google_protobuf_GeneratedCodeInfo_Annotation_Semantic semantic; +} google_protobuf_GeneratedCodeInfo_Annotation; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _google_protobuf_Edition_MIN google_protobuf_Edition_EDITION_UNKNOWN +#define _google_protobuf_Edition_MAX google_protobuf_Edition_EDITION_MAX +#define _google_protobuf_Edition_ARRAYSIZE ((google_protobuf_Edition)(google_protobuf_Edition_EDITION_MAX + 1)) + +#define _google_protobuf_ExtensionRangeOptions_VerificationState_MIN \ + google_protobuf_ExtensionRangeOptions_VerificationState_DECLARATION +#define _google_protobuf_ExtensionRangeOptions_VerificationState_MAX \ + google_protobuf_ExtensionRangeOptions_VerificationState_UNVERIFIED +#define _google_protobuf_ExtensionRangeOptions_VerificationState_ARRAYSIZE \ + ((google_protobuf_ExtensionRangeOptions_VerificationState)(google_protobuf_ExtensionRangeOptions_VerificationState_UNVERIFIED + \ + 1)) + +#define _google_protobuf_FieldDescriptorProto_Type_MIN google_protobuf_FieldDescriptorProto_Type_TYPE_DOUBLE +#define _google_protobuf_FieldDescriptorProto_Type_MAX google_protobuf_FieldDescriptorProto_Type_TYPE_SINT64 +#define _google_protobuf_FieldDescriptorProto_Type_ARRAYSIZE \ + ((google_protobuf_FieldDescriptorProto_Type)(google_protobuf_FieldDescriptorProto_Type_TYPE_SINT64 + 1)) + +#define _google_protobuf_FieldDescriptorProto_Label_MIN google_protobuf_FieldDescriptorProto_Label_LABEL_OPTIONAL +#define _google_protobuf_FieldDescriptorProto_Label_MAX google_protobuf_FieldDescriptorProto_Label_LABEL_REPEATED +#define _google_protobuf_FieldDescriptorProto_Label_ARRAYSIZE \ + ((google_protobuf_FieldDescriptorProto_Label)(google_protobuf_FieldDescriptorProto_Label_LABEL_REPEATED + 1)) + +#define _google_protobuf_FileOptions_OptimizeMode_MIN google_protobuf_FileOptions_OptimizeMode_SPEED +#define _google_protobuf_FileOptions_OptimizeMode_MAX google_protobuf_FileOptions_OptimizeMode_LITE_RUNTIME +#define _google_protobuf_FileOptions_OptimizeMode_ARRAYSIZE \ + ((google_protobuf_FileOptions_OptimizeMode)(google_protobuf_FileOptions_OptimizeMode_LITE_RUNTIME + 1)) + +#define _google_protobuf_FieldOptions_CType_MIN google_protobuf_FieldOptions_CType_STRING +#define _google_protobuf_FieldOptions_CType_MAX google_protobuf_FieldOptions_CType_STRING_PIECE +#define _google_protobuf_FieldOptions_CType_ARRAYSIZE \ + ((google_protobuf_FieldOptions_CType)(google_protobuf_FieldOptions_CType_STRING_PIECE + 1)) + +#define _google_protobuf_FieldOptions_JSType_MIN google_protobuf_FieldOptions_JSType_JS_NORMAL +#define _google_protobuf_FieldOptions_JSType_MAX google_protobuf_FieldOptions_JSType_JS_NUMBER +#define _google_protobuf_FieldOptions_JSType_ARRAYSIZE \ + ((google_protobuf_FieldOptions_JSType)(google_protobuf_FieldOptions_JSType_JS_NUMBER + 1)) + +#define _google_protobuf_FieldOptions_OptionRetention_MIN google_protobuf_FieldOptions_OptionRetention_RETENTION_UNKNOWN +#define _google_protobuf_FieldOptions_OptionRetention_MAX google_protobuf_FieldOptions_OptionRetention_RETENTION_SOURCE +#define _google_protobuf_FieldOptions_OptionRetention_ARRAYSIZE \ + ((google_protobuf_FieldOptions_OptionRetention)(google_protobuf_FieldOptions_OptionRetention_RETENTION_SOURCE + 1)) + +#define _google_protobuf_FieldOptions_OptionTargetType_MIN google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_UNKNOWN +#define _google_protobuf_FieldOptions_OptionTargetType_MAX google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_METHOD +#define _google_protobuf_FieldOptions_OptionTargetType_ARRAYSIZE \ + ((google_protobuf_FieldOptions_OptionTargetType)(google_protobuf_FieldOptions_OptionTargetType_TARGET_TYPE_METHOD + 1)) + +#define _google_protobuf_MethodOptions_IdempotencyLevel_MIN \ + google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENCY_UNKNOWN +#define _google_protobuf_MethodOptions_IdempotencyLevel_MAX google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENT +#define _google_protobuf_MethodOptions_IdempotencyLevel_ARRAYSIZE \ + ((google_protobuf_MethodOptions_IdempotencyLevel)(google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENT + 1)) + +#define _google_protobuf_FeatureSet_FieldPresence_MIN google_protobuf_FeatureSet_FieldPresence_FIELD_PRESENCE_UNKNOWN +#define _google_protobuf_FeatureSet_FieldPresence_MAX google_protobuf_FeatureSet_FieldPresence_LEGACY_REQUIRED +#define _google_protobuf_FeatureSet_FieldPresence_ARRAYSIZE \ + ((google_protobuf_FeatureSet_FieldPresence)(google_protobuf_FeatureSet_FieldPresence_LEGACY_REQUIRED + 1)) + +#define _google_protobuf_FeatureSet_EnumType_MIN google_protobuf_FeatureSet_EnumType_ENUM_TYPE_UNKNOWN +#define _google_protobuf_FeatureSet_EnumType_MAX google_protobuf_FeatureSet_EnumType_CLOSED +#define _google_protobuf_FeatureSet_EnumType_ARRAYSIZE \ + ((google_protobuf_FeatureSet_EnumType)(google_protobuf_FeatureSet_EnumType_CLOSED + 1)) + +#define _google_protobuf_FeatureSet_RepeatedFieldEncoding_MIN \ + google_protobuf_FeatureSet_RepeatedFieldEncoding_REPEATED_FIELD_ENCODING_UNKNOWN +#define _google_protobuf_FeatureSet_RepeatedFieldEncoding_MAX google_protobuf_FeatureSet_RepeatedFieldEncoding_EXPANDED +#define _google_protobuf_FeatureSet_RepeatedFieldEncoding_ARRAYSIZE \ + ((google_protobuf_FeatureSet_RepeatedFieldEncoding)(google_protobuf_FeatureSet_RepeatedFieldEncoding_EXPANDED + 1)) + +#define _google_protobuf_FeatureSet_Utf8Validation_MIN google_protobuf_FeatureSet_Utf8Validation_UTF8_VALIDATION_UNKNOWN +#define _google_protobuf_FeatureSet_Utf8Validation_MAX google_protobuf_FeatureSet_Utf8Validation_NONE +#define _google_protobuf_FeatureSet_Utf8Validation_ARRAYSIZE \ + ((google_protobuf_FeatureSet_Utf8Validation)(google_protobuf_FeatureSet_Utf8Validation_NONE + 1)) + +#define _google_protobuf_FeatureSet_MessageEncoding_MIN google_protobuf_FeatureSet_MessageEncoding_MESSAGE_ENCODING_UNKNOWN +#define _google_protobuf_FeatureSet_MessageEncoding_MAX google_protobuf_FeatureSet_MessageEncoding_DELIMITED +#define _google_protobuf_FeatureSet_MessageEncoding_ARRAYSIZE \ + ((google_protobuf_FeatureSet_MessageEncoding)(google_protobuf_FeatureSet_MessageEncoding_DELIMITED + 1)) + +#define _google_protobuf_FeatureSet_JsonFormat_MIN google_protobuf_FeatureSet_JsonFormat_JSON_FORMAT_UNKNOWN +#define _google_protobuf_FeatureSet_JsonFormat_MAX google_protobuf_FeatureSet_JsonFormat_LEGACY_BEST_EFFORT +#define _google_protobuf_FeatureSet_JsonFormat_ARRAYSIZE \ + ((google_protobuf_FeatureSet_JsonFormat)(google_protobuf_FeatureSet_JsonFormat_LEGACY_BEST_EFFORT + 1)) + +#define _google_protobuf_GeneratedCodeInfo_Annotation_Semantic_MIN google_protobuf_GeneratedCodeInfo_Annotation_Semantic_NONE +#define _google_protobuf_GeneratedCodeInfo_Annotation_Semantic_MAX \ + google_protobuf_GeneratedCodeInfo_Annotation_Semantic_ALIAS +#define _google_protobuf_GeneratedCodeInfo_Annotation_Semantic_ARRAYSIZE \ + ((google_protobuf_GeneratedCodeInfo_Annotation_Semantic)(google_protobuf_GeneratedCodeInfo_Annotation_Semantic_ALIAS + \ + 1)) + +#define google_protobuf_FileDescriptorProto_edition_ENUMTYPE google_protobuf_Edition + +#define google_protobuf_ExtensionRangeOptions_verification_ENUMTYPE google_protobuf_ExtensionRangeOptions_VerificationState + +#define google_protobuf_FieldDescriptorProto_label_ENUMTYPE google_protobuf_FieldDescriptorProto_Label +#define google_protobuf_FieldDescriptorProto_type_ENUMTYPE google_protobuf_FieldDescriptorProto_Type + +#define google_protobuf_FileOptions_optimize_for_ENUMTYPE google_protobuf_FileOptions_OptimizeMode + +#define google_protobuf_FieldOptions_ctype_ENUMTYPE google_protobuf_FieldOptions_CType +#define google_protobuf_FieldOptions_jstype_ENUMTYPE google_protobuf_FieldOptions_JSType +#define google_protobuf_FieldOptions_retention_ENUMTYPE google_protobuf_FieldOptions_OptionRetention +#define google_protobuf_FieldOptions_targets_ENUMTYPE google_protobuf_FieldOptions_OptionTargetType + +#define google_protobuf_FieldOptions_EditionDefault_edition_ENUMTYPE google_protobuf_Edition + +#define google_protobuf_FieldOptions_FeatureSupport_edition_introduced_ENUMTYPE google_protobuf_Edition +#define google_protobuf_FieldOptions_FeatureSupport_edition_deprecated_ENUMTYPE google_protobuf_Edition +#define google_protobuf_FieldOptions_FeatureSupport_edition_removed_ENUMTYPE google_protobuf_Edition + +#define google_protobuf_MethodOptions_idempotency_level_ENUMTYPE google_protobuf_MethodOptions_IdempotencyLevel + +#define google_protobuf_FeatureSet_field_presence_ENUMTYPE google_protobuf_FeatureSet_FieldPresence +#define google_protobuf_FeatureSet_enum_type_ENUMTYPE google_protobuf_FeatureSet_EnumType +#define google_protobuf_FeatureSet_repeated_field_encoding_ENUMTYPE google_protobuf_FeatureSet_RepeatedFieldEncoding +#define google_protobuf_FeatureSet_utf8_validation_ENUMTYPE google_protobuf_FeatureSet_Utf8Validation +#define google_protobuf_FeatureSet_message_encoding_ENUMTYPE google_protobuf_FeatureSet_MessageEncoding +#define google_protobuf_FeatureSet_json_format_ENUMTYPE google_protobuf_FeatureSet_JsonFormat + +#define google_protobuf_FeatureSetDefaults_minimum_edition_ENUMTYPE google_protobuf_Edition +#define google_protobuf_FeatureSetDefaults_maximum_edition_ENUMTYPE google_protobuf_Edition + +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_edition_ENUMTYPE google_protobuf_Edition + +#define google_protobuf_GeneratedCodeInfo_Annotation_semantic_ENUMTYPE google_protobuf_GeneratedCodeInfo_Annotation_Semantic + +/* Initializer values for message structs */ +#define google_protobuf_FileDescriptorSet_init_default \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_FileDescriptorProto_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, google_protobuf_FileOptions_init_default, false, google_protobuf_SourceCodeInfo_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, _google_protobuf_Edition_MIN \ + } +#define google_protobuf_DescriptorProto_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_MessageOptions_init_default, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define google_protobuf_DescriptorProto_ExtensionRange_init_default \ + { false, 0, false, 0, false, google_protobuf_ExtensionRangeOptions_init_default } +#define google_protobuf_DescriptorProto_ReservedRange_init_default \ + { false, 0, false, 0 } +#define google_protobuf_ExtensionRangeOptions_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_ExtensionRangeOptions_VerificationState_UNVERIFIED, false, \ + google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_ExtensionRangeOptions_Declaration_init_default \ + { false, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0 } +#define google_protobuf_FieldDescriptorProto_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, _google_protobuf_FieldDescriptorProto_Label_MIN, false, \ + _google_protobuf_FieldDescriptorProto_Type_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_FieldOptions_init_default, false, 0, {{NULL}, NULL}, false, 0 \ + } +#define google_protobuf_OneofDescriptorProto_init_default \ + { {{NULL}, NULL}, false, google_protobuf_OneofOptions_init_default } +#define google_protobuf_EnumDescriptorProto_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_EnumOptions_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_init_default \ + { false, 0, false, 0 } +#define google_protobuf_EnumValueDescriptorProto_init_default \ + { {{NULL}, NULL}, false, 0, false, google_protobuf_EnumValueOptions_init_default } +#define google_protobuf_ServiceDescriptorProto_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_ServiceOptions_init_default } +#define google_protobuf_MethodDescriptorProto_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_MethodOptions_init_default, false, false, \ + false, false \ + } +#define google_protobuf_FileOptions_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_FileOptions_OptimizeMode_SPEED, false, false, \ + {{NULL}, NULL}, false, false, false, false, false, false, false, 0, false, false, false, false, false, true, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_MessageOptions_init_default \ + { \ + false, false, false, false, false, false, false, 0, false, 0, false, google_protobuf_FeatureSet_init_default, \ + {{NULL}, NULL}, NULL \ + } +#define google_protobuf_FieldOptions_init_default \ + { \ + false, google_protobuf_FieldOptions_CType_STRING, false, 0, false, false, false, false, false, \ + google_protobuf_FieldOptions_JSType_JS_NORMAL, false, false, false, false, false, false, false, \ + _google_protobuf_FieldOptions_OptionRetention_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_FeatureSet_init_default, false, google_protobuf_FieldOptions_FeatureSupport_init_default, \ + {{NULL}, NULL}, NULL \ + } +#define google_protobuf_FieldOptions_EditionDefault_init_default \ + { {{NULL}, NULL}, false, _google_protobuf_Edition_MIN } +#define google_protobuf_FieldOptions_FeatureSupport_init_default \ + { \ + false, _google_protobuf_Edition_MIN, false, _google_protobuf_Edition_MIN, {{NULL}, NULL}, false, \ + _google_protobuf_Edition_MIN \ + } +#define google_protobuf_OneofOptions_init_default \ + { false, google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL } +#define google_protobuf_EnumOptions_init_default \ + { false, 0, false, false, false, 0, false, google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL } +#define google_protobuf_EnumValueOptions_init_default \ + { \ + false, false, false, google_protobuf_FeatureSet_init_default, false, false, false, \ + google_protobuf_FieldOptions_FeatureSupport_init_default, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_ServiceOptions_init_default \ + { false, false, false, google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL } +#define google_protobuf_MethodOptions_init_default \ + { \ + false, false, false, google_protobuf_MethodOptions_IdempotencyLevel_IDEMPOTENCY_UNKNOWN, false, \ + google_protobuf_FeatureSet_init_default, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_UninterpretedOption_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0, false, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_UninterpretedOption_NamePart_init_default \ + { {{NULL}, NULL}, 0 } +#define google_protobuf_FeatureSet_init_default \ + { \ + false, _google_protobuf_FeatureSet_FieldPresence_MIN, false, _google_protobuf_FeatureSet_EnumType_MIN, false, \ + _google_protobuf_FeatureSet_RepeatedFieldEncoding_MIN, false, _google_protobuf_FeatureSet_Utf8Validation_MIN, \ + false, _google_protobuf_FeatureSet_MessageEncoding_MIN, false, _google_protobuf_FeatureSet_JsonFormat_MIN, NULL \ + } +#define google_protobuf_FeatureSetDefaults_init_default \ + { {{NULL}, NULL}, false, _google_protobuf_Edition_MIN, false, _google_protobuf_Edition_MIN } +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_init_default \ + { \ + false, _google_protobuf_Edition_MIN, false, google_protobuf_FeatureSet_init_default, false, \ + google_protobuf_FeatureSet_init_default \ + } +#define google_protobuf_SourceCodeInfo_init_default \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_SourceCodeInfo_Location_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_GeneratedCodeInfo_init_default \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_GeneratedCodeInfo_Annotation_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0, false, _google_protobuf_GeneratedCodeInfo_Annotation_Semantic_MIN } +#define google_protobuf_FileDescriptorSet_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_FileDescriptorProto_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, google_protobuf_FileOptions_init_zero, false, google_protobuf_SourceCodeInfo_init_zero, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, false, _google_protobuf_Edition_MIN \ + } +#define google_protobuf_DescriptorProto_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_MessageOptions_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define google_protobuf_DescriptorProto_ExtensionRange_init_zero \ + { false, 0, false, 0, false, google_protobuf_ExtensionRangeOptions_init_zero } +#define google_protobuf_DescriptorProto_ReservedRange_init_zero \ + { false, 0, false, 0 } +#define google_protobuf_ExtensionRangeOptions_init_zero \ + { \ + {{NULL}, NULL}, false, _google_protobuf_ExtensionRangeOptions_VerificationState_MIN, false, \ + google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_ExtensionRangeOptions_Declaration_init_zero \ + { false, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0 } +#define google_protobuf_FieldDescriptorProto_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, _google_protobuf_FieldDescriptorProto_Label_MIN, false, \ + _google_protobuf_FieldDescriptorProto_Type_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_FieldOptions_init_zero, false, 0, {{NULL}, NULL}, false, 0 \ + } +#define google_protobuf_OneofDescriptorProto_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_OneofOptions_init_zero } +#define google_protobuf_EnumDescriptorProto_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_EnumOptions_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_init_zero \ + { false, 0, false, 0 } +#define google_protobuf_EnumValueDescriptorProto_init_zero \ + { {{NULL}, NULL}, false, 0, false, google_protobuf_EnumValueOptions_init_zero } +#define google_protobuf_ServiceDescriptorProto_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_ServiceOptions_init_zero } +#define google_protobuf_MethodDescriptorProto_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_MethodOptions_init_zero, false, 0, false, 0 } +#define google_protobuf_FileOptions_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, _google_protobuf_FileOptions_OptimizeMode_MIN, false, 0, {{NULL}, NULL}, \ + false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_MessageOptions_init_zero \ + { false, 0, false, 0, false, 0, false, 0, false, 0, false, google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL } +#define google_protobuf_FieldOptions_init_zero \ + { \ + false, _google_protobuf_FieldOptions_CType_MIN, false, 0, false, 0, false, 0, false, \ + _google_protobuf_FieldOptions_JSType_MIN, false, 0, false, 0, false, 0, false, \ + _google_protobuf_FieldOptions_OptionRetention_MIN, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + google_protobuf_FeatureSet_init_zero, false, google_protobuf_FieldOptions_FeatureSupport_init_zero, \ + {{NULL}, NULL}, NULL \ + } +#define google_protobuf_FieldOptions_EditionDefault_init_zero \ + { {{NULL}, NULL}, false, _google_protobuf_Edition_MIN } +#define google_protobuf_FieldOptions_FeatureSupport_init_zero \ + { \ + false, _google_protobuf_Edition_MIN, false, _google_protobuf_Edition_MIN, {{NULL}, NULL}, false, \ + _google_protobuf_Edition_MIN \ + } +#define google_protobuf_OneofOptions_init_zero \ + { false, google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL } +#define google_protobuf_EnumOptions_init_zero \ + { false, 0, false, 0, false, 0, false, google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL } +#define google_protobuf_EnumValueOptions_init_zero \ + { \ + false, 0, false, google_protobuf_FeatureSet_init_zero, false, 0, false, \ + google_protobuf_FieldOptions_FeatureSupport_init_zero, {{NULL}, NULL}, NULL \ + } +#define google_protobuf_ServiceOptions_init_zero \ + { false, 0, false, google_protobuf_FeatureSet_init_zero, {{NULL}, NULL}, NULL } +#define google_protobuf_MethodOptions_init_zero \ + { \ + false, 0, false, _google_protobuf_MethodOptions_IdempotencyLevel_MIN, false, google_protobuf_FeatureSet_init_zero, \ + {{NULL}, NULL}, NULL \ + } +#define google_protobuf_UninterpretedOption_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0, false, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_UninterpretedOption_NamePart_init_zero \ + { {{NULL}, NULL}, 0 } +#define google_protobuf_FeatureSet_init_zero \ + { \ + false, _google_protobuf_FeatureSet_FieldPresence_MIN, false, _google_protobuf_FeatureSet_EnumType_MIN, false, \ + _google_protobuf_FeatureSet_RepeatedFieldEncoding_MIN, false, _google_protobuf_FeatureSet_Utf8Validation_MIN, \ + false, _google_protobuf_FeatureSet_MessageEncoding_MIN, false, _google_protobuf_FeatureSet_JsonFormat_MIN, NULL \ + } +#define google_protobuf_FeatureSetDefaults_init_zero \ + { {{NULL}, NULL}, false, _google_protobuf_Edition_MIN, false, _google_protobuf_Edition_MIN } +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_init_zero \ + { \ + false, _google_protobuf_Edition_MIN, false, google_protobuf_FeatureSet_init_zero, false, \ + google_protobuf_FeatureSet_init_zero \ + } +#define google_protobuf_SourceCodeInfo_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_SourceCodeInfo_Location_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define google_protobuf_GeneratedCodeInfo_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define google_protobuf_GeneratedCodeInfo_Annotation_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, 0, false, 0, false, _google_protobuf_GeneratedCodeInfo_Annotation_Semantic_MIN } + +/* Field tags (for use in manual encoding/decoding) */ +#define google_protobuf_FileDescriptorSet_file_tag 1 +#define google_protobuf_DescriptorProto_ReservedRange_start_tag 1 +#define google_protobuf_DescriptorProto_ReservedRange_end_tag 2 +#define google_protobuf_ExtensionRangeOptions_Declaration_number_tag 1 +#define google_protobuf_ExtensionRangeOptions_Declaration_full_name_tag 2 +#define google_protobuf_ExtensionRangeOptions_Declaration_type_tag 3 +#define google_protobuf_ExtensionRangeOptions_Declaration_reserved_tag 5 +#define google_protobuf_ExtensionRangeOptions_Declaration_repeated_tag 6 +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_start_tag 1 +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_end_tag 2 +#define google_protobuf_FieldOptions_EditionDefault_value_tag 2 +#define google_protobuf_FieldOptions_EditionDefault_edition_tag 3 +#define google_protobuf_FieldOptions_FeatureSupport_edition_introduced_tag 1 +#define google_protobuf_FieldOptions_FeatureSupport_edition_deprecated_tag 2 +#define google_protobuf_FieldOptions_FeatureSupport_deprecation_warning_tag 3 +#define google_protobuf_FieldOptions_FeatureSupport_edition_removed_tag 4 +#define google_protobuf_UninterpretedOption_name_tag 2 +#define google_protobuf_UninterpretedOption_identifier_value_tag 3 +#define google_protobuf_UninterpretedOption_positive_int_value_tag 4 +#define google_protobuf_UninterpretedOption_negative_int_value_tag 5 +#define google_protobuf_UninterpretedOption_double_value_tag 6 +#define google_protobuf_UninterpretedOption_string_value_tag 7 +#define google_protobuf_UninterpretedOption_aggregate_value_tag 8 +#define google_protobuf_UninterpretedOption_NamePart_name_part_tag 1 +#define google_protobuf_UninterpretedOption_NamePart_is_extension_tag 2 +#define google_protobuf_FeatureSet_field_presence_tag 1 +#define google_protobuf_FeatureSet_enum_type_tag 2 +#define google_protobuf_FeatureSet_repeated_field_encoding_tag 3 +#define google_protobuf_FeatureSet_utf8_validation_tag 4 +#define google_protobuf_FeatureSet_message_encoding_tag 5 +#define google_protobuf_FeatureSet_json_format_tag 6 +#define google_protobuf_ExtensionRangeOptions_declaration_tag 2 +#define google_protobuf_ExtensionRangeOptions_verification_tag 3 +#define google_protobuf_ExtensionRangeOptions_features_tag 50 +#define google_protobuf_ExtensionRangeOptions_uninterpreted_option_tag 999 +#define google_protobuf_DescriptorProto_ExtensionRange_start_tag 1 +#define google_protobuf_DescriptorProto_ExtensionRange_end_tag 2 +#define google_protobuf_DescriptorProto_ExtensionRange_options_tag 3 +#define google_protobuf_FileOptions_java_package_tag 1 +#define google_protobuf_FileOptions_java_outer_classname_tag 8 +#define google_protobuf_FileOptions_optimize_for_tag 9 +#define google_protobuf_FileOptions_java_multiple_files_tag 10 +#define google_protobuf_FileOptions_go_package_tag 11 +#define google_protobuf_FileOptions_cc_generic_services_tag 16 +#define google_protobuf_FileOptions_java_generic_services_tag 17 +#define google_protobuf_FileOptions_py_generic_services_tag 18 +#define google_protobuf_FileOptions_java_generate_equals_and_hash_tag 20 +#define google_protobuf_FileOptions_deprecated_tag 23 +#define google_protobuf_FileOptions_java_string_check_utf8_tag 27 +#define google_protobuf_FileOptions_cc_enable_arenas_tag 31 +#define google_protobuf_FileOptions_objc_class_prefix_tag 36 +#define google_protobuf_FileOptions_csharp_namespace_tag 37 +#define google_protobuf_FileOptions_swift_prefix_tag 39 +#define google_protobuf_FileOptions_php_class_prefix_tag 40 +#define google_protobuf_FileOptions_php_namespace_tag 41 +#define google_protobuf_FileOptions_php_metadata_namespace_tag 44 +#define google_protobuf_FileOptions_ruby_package_tag 45 +#define google_protobuf_FileOptions_features_tag 50 +#define google_protobuf_FileOptions_uninterpreted_option_tag 999 +#define google_protobuf_MessageOptions_message_set_wire_format_tag 1 +#define google_protobuf_MessageOptions_no_standard_descriptor_accessor_tag 2 +#define google_protobuf_MessageOptions_deprecated_tag 3 +#define google_protobuf_MessageOptions_map_entry_tag 7 +#define google_protobuf_MessageOptions_deprecated_legacy_json_field_conflicts_tag 11 +#define google_protobuf_MessageOptions_features_tag 12 +#define google_protobuf_MessageOptions_uninterpreted_option_tag 999 +#define google_protobuf_DescriptorProto_name_tag 1 +#define google_protobuf_DescriptorProto_field_tag 2 +#define google_protobuf_DescriptorProto_nested_type_tag 3 +#define google_protobuf_DescriptorProto_enum_type_tag 4 +#define google_protobuf_DescriptorProto_extension_range_tag 5 +#define google_protobuf_DescriptorProto_extension_tag 6 +#define google_protobuf_DescriptorProto_options_tag 7 +#define google_protobuf_DescriptorProto_oneof_decl_tag 8 +#define google_protobuf_DescriptorProto_reserved_range_tag 9 +#define google_protobuf_DescriptorProto_reserved_name_tag 10 +#define google_protobuf_FieldOptions_ctype_tag 1 +#define google_protobuf_FieldOptions_packed_tag 2 +#define google_protobuf_FieldOptions_deprecated_tag 3 +#define google_protobuf_FieldOptions_lazy_tag 5 +#define google_protobuf_FieldOptions_jstype_tag 6 +#define google_protobuf_FieldOptions_weak_tag 10 +#define google_protobuf_FieldOptions_unverified_lazy_tag 15 +#define google_protobuf_FieldOptions_debug_redact_tag 16 +#define google_protobuf_FieldOptions_retention_tag 17 +#define google_protobuf_FieldOptions_targets_tag 19 +#define google_protobuf_FieldOptions_edition_defaults_tag 20 +#define google_protobuf_FieldOptions_features_tag 21 +#define google_protobuf_FieldOptions_feature_support_tag 22 +#define google_protobuf_FieldOptions_uninterpreted_option_tag 999 +#define google_protobuf_FieldDescriptorProto_name_tag 1 +#define google_protobuf_FieldDescriptorProto_extendee_tag 2 +#define google_protobuf_FieldDescriptorProto_number_tag 3 +#define google_protobuf_FieldDescriptorProto_label_tag 4 +#define google_protobuf_FieldDescriptorProto_type_tag 5 +#define google_protobuf_FieldDescriptorProto_type_name_tag 6 +#define google_protobuf_FieldDescriptorProto_default_value_tag 7 +#define google_protobuf_FieldDescriptorProto_options_tag 8 +#define google_protobuf_FieldDescriptorProto_oneof_index_tag 9 +#define google_protobuf_FieldDescriptorProto_json_name_tag 10 +#define google_protobuf_FieldDescriptorProto_proto3_optional_tag 17 +#define google_protobuf_OneofOptions_features_tag 1 +#define google_protobuf_OneofOptions_uninterpreted_option_tag 999 +#define google_protobuf_OneofDescriptorProto_name_tag 1 +#define google_protobuf_OneofDescriptorProto_options_tag 2 +#define google_protobuf_EnumOptions_allow_alias_tag 2 +#define google_protobuf_EnumOptions_deprecated_tag 3 +#define google_protobuf_EnumOptions_deprecated_legacy_json_field_conflicts_tag 6 +#define google_protobuf_EnumOptions_features_tag 7 +#define google_protobuf_EnumOptions_uninterpreted_option_tag 999 +#define google_protobuf_EnumDescriptorProto_name_tag 1 +#define google_protobuf_EnumDescriptorProto_value_tag 2 +#define google_protobuf_EnumDescriptorProto_options_tag 3 +#define google_protobuf_EnumDescriptorProto_reserved_range_tag 4 +#define google_protobuf_EnumDescriptorProto_reserved_name_tag 5 +#define google_protobuf_EnumValueOptions_deprecated_tag 1 +#define google_protobuf_EnumValueOptions_features_tag 2 +#define google_protobuf_EnumValueOptions_debug_redact_tag 3 +#define google_protobuf_EnumValueOptions_feature_support_tag 4 +#define google_protobuf_EnumValueOptions_uninterpreted_option_tag 999 +#define google_protobuf_EnumValueDescriptorProto_name_tag 1 +#define google_protobuf_EnumValueDescriptorProto_number_tag 2 +#define google_protobuf_EnumValueDescriptorProto_options_tag 3 +#define google_protobuf_ServiceOptions_deprecated_tag 33 +#define google_protobuf_ServiceOptions_features_tag 34 +#define google_protobuf_ServiceOptions_uninterpreted_option_tag 999 +#define google_protobuf_ServiceDescriptorProto_name_tag 1 +#define google_protobuf_ServiceDescriptorProto_method_tag 2 +#define google_protobuf_ServiceDescriptorProto_options_tag 3 +#define google_protobuf_MethodOptions_deprecated_tag 33 +#define google_protobuf_MethodOptions_idempotency_level_tag 34 +#define google_protobuf_MethodOptions_features_tag 35 +#define google_protobuf_MethodOptions_uninterpreted_option_tag 999 +#define google_protobuf_MethodDescriptorProto_name_tag 1 +#define google_protobuf_MethodDescriptorProto_input_type_tag 2 +#define google_protobuf_MethodDescriptorProto_output_type_tag 3 +#define google_protobuf_MethodDescriptorProto_options_tag 4 +#define google_protobuf_MethodDescriptorProto_client_streaming_tag 5 +#define google_protobuf_MethodDescriptorProto_server_streaming_tag 6 +#define google_protobuf_FeatureSetDefaults_defaults_tag 1 +#define google_protobuf_FeatureSetDefaults_minimum_edition_tag 4 +#define google_protobuf_FeatureSetDefaults_maximum_edition_tag 5 +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_edition_tag 3 +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_overridable_features_tag 4 +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_fixed_features_tag 5 +#define google_protobuf_SourceCodeInfo_location_tag 1 +#define google_protobuf_FileDescriptorProto_name_tag 1 +#define google_protobuf_FileDescriptorProto_package_tag 2 +#define google_protobuf_FileDescriptorProto_dependency_tag 3 +#define google_protobuf_FileDescriptorProto_message_type_tag 4 +#define google_protobuf_FileDescriptorProto_enum_type_tag 5 +#define google_protobuf_FileDescriptorProto_service_tag 6 +#define google_protobuf_FileDescriptorProto_extension_tag 7 +#define google_protobuf_FileDescriptorProto_options_tag 8 +#define google_protobuf_FileDescriptorProto_source_code_info_tag 9 +#define google_protobuf_FileDescriptorProto_public_dependency_tag 10 +#define google_protobuf_FileDescriptorProto_weak_dependency_tag 11 +#define google_protobuf_FileDescriptorProto_syntax_tag 12 +#define google_protobuf_FileDescriptorProto_edition_tag 14 +#define google_protobuf_SourceCodeInfo_Location_path_tag 1 +#define google_protobuf_SourceCodeInfo_Location_span_tag 2 +#define google_protobuf_SourceCodeInfo_Location_leading_comments_tag 3 +#define google_protobuf_SourceCodeInfo_Location_trailing_comments_tag 4 +#define google_protobuf_SourceCodeInfo_Location_leading_detached_comments_tag 6 +#define google_protobuf_GeneratedCodeInfo_annotation_tag 1 +#define google_protobuf_GeneratedCodeInfo_Annotation_path_tag 1 +#define google_protobuf_GeneratedCodeInfo_Annotation_source_file_tag 2 +#define google_protobuf_GeneratedCodeInfo_Annotation_begin_tag 3 +#define google_protobuf_GeneratedCodeInfo_Annotation_end_tag 4 +#define google_protobuf_GeneratedCodeInfo_Annotation_semantic_tag 5 + +/* Struct field encoding specification for nanopb */ +#define google_protobuf_FileDescriptorSet_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, file, 1) +#define google_protobuf_FileDescriptorSet_CALLBACK pb_default_field_callback +#define google_protobuf_FileDescriptorSet_DEFAULT NULL +#define google_protobuf_FileDescriptorSet_file_MSGTYPE google_protobuf_FileDescriptorProto + +#define google_protobuf_FileDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, package, 2) \ + X(a, CALLBACK, REPEATED, STRING, dependency, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, message_type, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, enum_type, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, service, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, extension, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, source_code_info, 9) \ + X(a, CALLBACK, REPEATED, INT32, public_dependency, 10) \ + X(a, CALLBACK, REPEATED, INT32, weak_dependency, 11) \ + X(a, CALLBACK, OPTIONAL, STRING, syntax, 12) \ + X(a, STATIC, OPTIONAL, UENUM, edition, 14) +#define google_protobuf_FileDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_FileDescriptorProto_DEFAULT NULL +#define google_protobuf_FileDescriptorProto_message_type_MSGTYPE google_protobuf_DescriptorProto +#define google_protobuf_FileDescriptorProto_enum_type_MSGTYPE google_protobuf_EnumDescriptorProto +#define google_protobuf_FileDescriptorProto_service_MSGTYPE google_protobuf_ServiceDescriptorProto +#define google_protobuf_FileDescriptorProto_extension_MSGTYPE google_protobuf_FieldDescriptorProto +#define google_protobuf_FileDescriptorProto_options_MSGTYPE google_protobuf_FileOptions +#define google_protobuf_FileDescriptorProto_source_code_info_MSGTYPE google_protobuf_SourceCodeInfo + +#define google_protobuf_DescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, field, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, nested_type, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, enum_type, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, extension_range, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, extension, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, oneof_decl, 8) \ + X(a, CALLBACK, REPEATED, MESSAGE, reserved_range, 9) \ + X(a, CALLBACK, REPEATED, STRING, reserved_name, 10) +#define google_protobuf_DescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_DescriptorProto_DEFAULT NULL +#define google_protobuf_DescriptorProto_field_MSGTYPE google_protobuf_FieldDescriptorProto +#define google_protobuf_DescriptorProto_nested_type_MSGTYPE google_protobuf_DescriptorProto +#define google_protobuf_DescriptorProto_enum_type_MSGTYPE google_protobuf_EnumDescriptorProto +#define google_protobuf_DescriptorProto_extension_range_MSGTYPE google_protobuf_DescriptorProto_ExtensionRange +#define google_protobuf_DescriptorProto_extension_MSGTYPE google_protobuf_FieldDescriptorProto +#define google_protobuf_DescriptorProto_options_MSGTYPE google_protobuf_MessageOptions +#define google_protobuf_DescriptorProto_oneof_decl_MSGTYPE google_protobuf_OneofDescriptorProto +#define google_protobuf_DescriptorProto_reserved_range_MSGTYPE google_protobuf_DescriptorProto_ReservedRange + +#define google_protobuf_DescriptorProto_ExtensionRange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, INT32, start, 1) \ + X(a, STATIC, OPTIONAL, INT32, end, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 3) +#define google_protobuf_DescriptorProto_ExtensionRange_CALLBACK NULL +#define google_protobuf_DescriptorProto_ExtensionRange_DEFAULT NULL +#define google_protobuf_DescriptorProto_ExtensionRange_options_MSGTYPE google_protobuf_ExtensionRangeOptions + +#define google_protobuf_DescriptorProto_ReservedRange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, INT32, start, 1) \ + X(a, STATIC, OPTIONAL, INT32, end, 2) +#define google_protobuf_DescriptorProto_ReservedRange_CALLBACK NULL +#define google_protobuf_DescriptorProto_ReservedRange_DEFAULT NULL + +#define google_protobuf_ExtensionRangeOptions_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, declaration, 2) \ + X(a, STATIC, OPTIONAL, UENUM, verification, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 50) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_ExtensionRangeOptions_CALLBACK pb_default_field_callback +#define google_protobuf_ExtensionRangeOptions_DEFAULT (const pb_byte_t *)"\x18\x01\x00" +#define google_protobuf_ExtensionRangeOptions_declaration_MSGTYPE google_protobuf_ExtensionRangeOptions_Declaration +#define google_protobuf_ExtensionRangeOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_ExtensionRangeOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_ExtensionRangeOptions_Declaration_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, INT32, number, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, full_name, 2) \ + X(a, CALLBACK, OPTIONAL, STRING, type, 3) \ + X(a, STATIC, OPTIONAL, BOOL, reserved, 5) \ + X(a, STATIC, OPTIONAL, BOOL, repeated, 6) +#define google_protobuf_ExtensionRangeOptions_Declaration_CALLBACK pb_default_field_callback +#define google_protobuf_ExtensionRangeOptions_Declaration_DEFAULT NULL + +#define google_protobuf_FieldDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, extendee, 2) \ + X(a, STATIC, OPTIONAL, INT32, number, 3) \ + X(a, STATIC, OPTIONAL, UENUM, label, 4) \ + X(a, STATIC, OPTIONAL, UENUM, type, 5) \ + X(a, CALLBACK, OPTIONAL, STRING, type_name, 6) \ + X(a, CALLBACK, OPTIONAL, STRING, default_value, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 8) \ + X(a, STATIC, OPTIONAL, INT32, oneof_index, 9) \ + X(a, CALLBACK, OPTIONAL, STRING, json_name, 10) \ + X(a, STATIC, OPTIONAL, BOOL, proto3_optional, 17) +#define google_protobuf_FieldDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_FieldDescriptorProto_DEFAULT (const pb_byte_t *)"\x20\x01\x28\x01\x00" +#define google_protobuf_FieldDescriptorProto_options_MSGTYPE google_protobuf_FieldOptions + +#define google_protobuf_OneofDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 2) +#define google_protobuf_OneofDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_OneofDescriptorProto_DEFAULT NULL +#define google_protobuf_OneofDescriptorProto_options_MSGTYPE google_protobuf_OneofOptions + +#define google_protobuf_EnumDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, value, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, reserved_range, 4) \ + X(a, CALLBACK, REPEATED, STRING, reserved_name, 5) +#define google_protobuf_EnumDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_EnumDescriptorProto_DEFAULT NULL +#define google_protobuf_EnumDescriptorProto_value_MSGTYPE google_protobuf_EnumValueDescriptorProto +#define google_protobuf_EnumDescriptorProto_options_MSGTYPE google_protobuf_EnumOptions +#define google_protobuf_EnumDescriptorProto_reserved_range_MSGTYPE google_protobuf_EnumDescriptorProto_EnumReservedRange + +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, INT32, start, 1) \ + X(a, STATIC, OPTIONAL, INT32, end, 2) +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_CALLBACK NULL +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_DEFAULT NULL + +#define google_protobuf_EnumValueDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, STATIC, OPTIONAL, INT32, number, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 3) +#define google_protobuf_EnumValueDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_EnumValueDescriptorProto_DEFAULT NULL +#define google_protobuf_EnumValueDescriptorProto_options_MSGTYPE google_protobuf_EnumValueOptions + +#define google_protobuf_ServiceDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, method, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 3) +#define google_protobuf_ServiceDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_ServiceDescriptorProto_DEFAULT NULL +#define google_protobuf_ServiceDescriptorProto_method_MSGTYPE google_protobuf_MethodDescriptorProto +#define google_protobuf_ServiceDescriptorProto_options_MSGTYPE google_protobuf_ServiceOptions + +#define google_protobuf_MethodDescriptorProto_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, name, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, input_type, 2) \ + X(a, CALLBACK, OPTIONAL, STRING, output_type, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, options, 4) \ + X(a, STATIC, OPTIONAL, BOOL, client_streaming, 5) \ + X(a, STATIC, OPTIONAL, BOOL, server_streaming, 6) +#define google_protobuf_MethodDescriptorProto_CALLBACK pb_default_field_callback +#define google_protobuf_MethodDescriptorProto_DEFAULT (const pb_byte_t *)"\x28\x00\x30\x00\x00" +#define google_protobuf_MethodDescriptorProto_options_MSGTYPE google_protobuf_MethodOptions + +#define google_protobuf_FileOptions_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, java_package, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, java_outer_classname, 8) \ + X(a, STATIC, OPTIONAL, UENUM, optimize_for, 9) \ + X(a, STATIC, OPTIONAL, BOOL, java_multiple_files, 10) \ + X(a, CALLBACK, OPTIONAL, STRING, go_package, 11) \ + X(a, STATIC, OPTIONAL, BOOL, cc_generic_services, 16) \ + X(a, STATIC, OPTIONAL, BOOL, java_generic_services, 17) \ + X(a, STATIC, OPTIONAL, BOOL, py_generic_services, 18) \ + X(a, STATIC, OPTIONAL, BOOL, java_generate_equals_and_hash, 20) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 23) \ + X(a, STATIC, OPTIONAL, BOOL, java_string_check_utf8, 27) \ + X(a, STATIC, OPTIONAL, BOOL, cc_enable_arenas, 31) \ + X(a, CALLBACK, OPTIONAL, STRING, objc_class_prefix, 36) \ + X(a, CALLBACK, OPTIONAL, STRING, csharp_namespace, 37) \ + X(a, CALLBACK, OPTIONAL, STRING, swift_prefix, 39) \ + X(a, CALLBACK, OPTIONAL, STRING, php_class_prefix, 40) \ + X(a, CALLBACK, OPTIONAL, STRING, php_namespace, 41) \ + X(a, CALLBACK, OPTIONAL, STRING, php_metadata_namespace, 44) \ + X(a, CALLBACK, OPTIONAL, STRING, ruby_package, 45) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 50) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_FileOptions_CALLBACK pb_default_field_callback +#define google_protobuf_FileOptions_DEFAULT \ + (const pb_byte_t *)"\x48\x01\x50\x00\x80\x01\x00\x88\x01\x00\x90\x01\x00\xb8\x01\x00\xd8\x01\x00\xf8\x01\x01\x00" +#define google_protobuf_FileOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_FileOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_MessageOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, BOOL, message_set_wire_format, 1) \ + X(a, STATIC, OPTIONAL, BOOL, no_standard_descriptor_accessor, 2) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 3) \ + X(a, STATIC, OPTIONAL, BOOL, map_entry, 7) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated_legacy_json_field_conflicts, 11) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 12) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_MessageOptions_CALLBACK pb_default_field_callback +#define google_protobuf_MessageOptions_DEFAULT (const pb_byte_t *)"\x08\x00\x10\x00\x18\x00\x00" +#define google_protobuf_MessageOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_MessageOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_FieldOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, UENUM, ctype, 1) \ + X(a, STATIC, OPTIONAL, BOOL, packed, 2) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 3) \ + X(a, STATIC, OPTIONAL, BOOL, lazy, 5) \ + X(a, STATIC, OPTIONAL, UENUM, jstype, 6) \ + X(a, STATIC, OPTIONAL, BOOL, weak, 10) \ + X(a, STATIC, OPTIONAL, BOOL, unverified_lazy, 15) \ + X(a, STATIC, OPTIONAL, BOOL, debug_redact, 16) \ + X(a, STATIC, OPTIONAL, UENUM, retention, 17) \ + X(a, CALLBACK, REPEATED, UENUM, targets, 19) \ + X(a, CALLBACK, REPEATED, MESSAGE, edition_defaults, 20) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 21) \ + X(a, STATIC, OPTIONAL, MESSAGE, feature_support, 22) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_FieldOptions_CALLBACK pb_default_field_callback +#define google_protobuf_FieldOptions_DEFAULT (const pb_byte_t *)"\x18\x00\x28\x00\x50\x00\x78\x00\x80\x01\x00\x00" +#define google_protobuf_FieldOptions_edition_defaults_MSGTYPE google_protobuf_FieldOptions_EditionDefault +#define google_protobuf_FieldOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_FieldOptions_feature_support_MSGTYPE google_protobuf_FieldOptions_FeatureSupport +#define google_protobuf_FieldOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_FieldOptions_EditionDefault_FIELDLIST(X, a) \ + X(a, CALLBACK, OPTIONAL, STRING, value, 2) \ + X(a, STATIC, OPTIONAL, UENUM, edition, 3) +#define google_protobuf_FieldOptions_EditionDefault_CALLBACK pb_default_field_callback +#define google_protobuf_FieldOptions_EditionDefault_DEFAULT NULL + +#define google_protobuf_FieldOptions_FeatureSupport_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, UENUM, edition_introduced, 1) \ + X(a, STATIC, OPTIONAL, UENUM, edition_deprecated, 2) \ + X(a, CALLBACK, OPTIONAL, STRING, deprecation_warning, 3) \ + X(a, STATIC, OPTIONAL, UENUM, edition_removed, 4) +#define google_protobuf_FieldOptions_FeatureSupport_CALLBACK pb_default_field_callback +#define google_protobuf_FieldOptions_FeatureSupport_DEFAULT NULL + +#define google_protobuf_OneofOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_OneofOptions_CALLBACK pb_default_field_callback +#define google_protobuf_OneofOptions_DEFAULT NULL +#define google_protobuf_OneofOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_OneofOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_EnumOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, BOOL, allow_alias, 2) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 3) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated_legacy_json_field_conflicts, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_EnumOptions_CALLBACK pb_default_field_callback +#define google_protobuf_EnumOptions_DEFAULT (const pb_byte_t *)"\x18\x00\x00" +#define google_protobuf_EnumOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_EnumOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_EnumValueOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 2) \ + X(a, STATIC, OPTIONAL, BOOL, debug_redact, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, feature_support, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_EnumValueOptions_CALLBACK pb_default_field_callback +#define google_protobuf_EnumValueOptions_DEFAULT (const pb_byte_t *)"\x08\x00\x18\x00\x00" +#define google_protobuf_EnumValueOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_EnumValueOptions_feature_support_MSGTYPE google_protobuf_FieldOptions_FeatureSupport +#define google_protobuf_EnumValueOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_ServiceOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 33) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 34) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_ServiceOptions_CALLBACK pb_default_field_callback +#define google_protobuf_ServiceOptions_DEFAULT (const pb_byte_t *)"\x88\x02\x00\x00" +#define google_protobuf_ServiceOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_ServiceOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_MethodOptions_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, BOOL, deprecated, 33) \ + X(a, STATIC, OPTIONAL, UENUM, idempotency_level, 34) \ + X(a, STATIC, OPTIONAL, MESSAGE, features, 35) \ + X(a, CALLBACK, REPEATED, MESSAGE, uninterpreted_option, 999) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_MethodOptions_CALLBACK pb_default_field_callback +#define google_protobuf_MethodOptions_DEFAULT (const pb_byte_t *)"\x88\x02\x00\x00" +#define google_protobuf_MethodOptions_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_MethodOptions_uninterpreted_option_MSGTYPE google_protobuf_UninterpretedOption + +#define google_protobuf_UninterpretedOption_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, name, 2) \ + X(a, CALLBACK, OPTIONAL, STRING, identifier_value, 3) \ + X(a, STATIC, OPTIONAL, UINT64, positive_int_value, 4) \ + X(a, STATIC, OPTIONAL, INT64, negative_int_value, 5) \ + X(a, STATIC, OPTIONAL, DOUBLE, double_value, 6) \ + X(a, CALLBACK, OPTIONAL, BYTES, string_value, 7) \ + X(a, CALLBACK, OPTIONAL, STRING, aggregate_value, 8) +#define google_protobuf_UninterpretedOption_CALLBACK pb_default_field_callback +#define google_protobuf_UninterpretedOption_DEFAULT NULL +#define google_protobuf_UninterpretedOption_name_MSGTYPE google_protobuf_UninterpretedOption_NamePart + +#define google_protobuf_UninterpretedOption_NamePart_FIELDLIST(X, a) \ + X(a, CALLBACK, REQUIRED, STRING, name_part, 1) \ + X(a, STATIC, REQUIRED, BOOL, is_extension, 2) +#define google_protobuf_UninterpretedOption_NamePart_CALLBACK pb_default_field_callback +#define google_protobuf_UninterpretedOption_NamePart_DEFAULT NULL + +#define google_protobuf_FeatureSet_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, UENUM, field_presence, 1) \ + X(a, STATIC, OPTIONAL, UENUM, enum_type, 2) \ + X(a, STATIC, OPTIONAL, UENUM, repeated_field_encoding, 3) \ + X(a, STATIC, OPTIONAL, UENUM, utf8_validation, 4) \ + X(a, STATIC, OPTIONAL, UENUM, message_encoding, 5) \ + X(a, STATIC, OPTIONAL, UENUM, json_format, 6) \ + X(a, CALLBACK, OPTIONAL, EXTENSION, extensions, 1000) +#define google_protobuf_FeatureSet_CALLBACK pb_default_field_callback +#define google_protobuf_FeatureSet_DEFAULT NULL + +#define google_protobuf_FeatureSetDefaults_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, defaults, 1) \ + X(a, STATIC, OPTIONAL, UENUM, minimum_edition, 4) \ + X(a, STATIC, OPTIONAL, UENUM, maximum_edition, 5) +#define google_protobuf_FeatureSetDefaults_CALLBACK pb_default_field_callback +#define google_protobuf_FeatureSetDefaults_DEFAULT NULL +#define google_protobuf_FeatureSetDefaults_defaults_MSGTYPE google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault + +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, UENUM, edition, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, overridable_features, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, fixed_features, 5) +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_CALLBACK NULL +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_DEFAULT NULL +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_overridable_features_MSGTYPE google_protobuf_FeatureSet +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_fixed_features_MSGTYPE google_protobuf_FeatureSet + +#define google_protobuf_SourceCodeInfo_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, location, 1) +#define google_protobuf_SourceCodeInfo_CALLBACK pb_default_field_callback +#define google_protobuf_SourceCodeInfo_DEFAULT NULL +#define google_protobuf_SourceCodeInfo_location_MSGTYPE google_protobuf_SourceCodeInfo_Location + +#define google_protobuf_SourceCodeInfo_Location_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, INT32, path, 1) \ + X(a, CALLBACK, REPEATED, INT32, span, 2) \ + X(a, CALLBACK, OPTIONAL, STRING, leading_comments, 3) \ + X(a, CALLBACK, OPTIONAL, STRING, trailing_comments, 4) \ + X(a, CALLBACK, REPEATED, STRING, leading_detached_comments, 6) +#define google_protobuf_SourceCodeInfo_Location_CALLBACK pb_default_field_callback +#define google_protobuf_SourceCodeInfo_Location_DEFAULT NULL + +#define google_protobuf_GeneratedCodeInfo_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, annotation, 1) +#define google_protobuf_GeneratedCodeInfo_CALLBACK pb_default_field_callback +#define google_protobuf_GeneratedCodeInfo_DEFAULT NULL +#define google_protobuf_GeneratedCodeInfo_annotation_MSGTYPE google_protobuf_GeneratedCodeInfo_Annotation + +#define google_protobuf_GeneratedCodeInfo_Annotation_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, INT32, path, 1) \ + X(a, CALLBACK, OPTIONAL, STRING, source_file, 2) \ + X(a, STATIC, OPTIONAL, INT32, begin, 3) \ + X(a, STATIC, OPTIONAL, INT32, end, 4) \ + X(a, STATIC, OPTIONAL, UENUM, semantic, 5) +#define google_protobuf_GeneratedCodeInfo_Annotation_CALLBACK pb_default_field_callback +#define google_protobuf_GeneratedCodeInfo_Annotation_DEFAULT NULL + +extern const pb_msgdesc_t google_protobuf_FileDescriptorSet_msg; +extern const pb_msgdesc_t google_protobuf_FileDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_DescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_DescriptorProto_ExtensionRange_msg; +extern const pb_msgdesc_t google_protobuf_DescriptorProto_ReservedRange_msg; +extern const pb_msgdesc_t google_protobuf_ExtensionRangeOptions_msg; +extern const pb_msgdesc_t google_protobuf_ExtensionRangeOptions_Declaration_msg; +extern const pb_msgdesc_t google_protobuf_FieldDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_OneofDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_EnumDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_EnumDescriptorProto_EnumReservedRange_msg; +extern const pb_msgdesc_t google_protobuf_EnumValueDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_ServiceDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_MethodDescriptorProto_msg; +extern const pb_msgdesc_t google_protobuf_FileOptions_msg; +extern const pb_msgdesc_t google_protobuf_MessageOptions_msg; +extern const pb_msgdesc_t google_protobuf_FieldOptions_msg; +extern const pb_msgdesc_t google_protobuf_FieldOptions_EditionDefault_msg; +extern const pb_msgdesc_t google_protobuf_FieldOptions_FeatureSupport_msg; +extern const pb_msgdesc_t google_protobuf_OneofOptions_msg; +extern const pb_msgdesc_t google_protobuf_EnumOptions_msg; +extern const pb_msgdesc_t google_protobuf_EnumValueOptions_msg; +extern const pb_msgdesc_t google_protobuf_ServiceOptions_msg; +extern const pb_msgdesc_t google_protobuf_MethodOptions_msg; +extern const pb_msgdesc_t google_protobuf_UninterpretedOption_msg; +extern const pb_msgdesc_t google_protobuf_UninterpretedOption_NamePart_msg; +extern const pb_msgdesc_t google_protobuf_FeatureSet_msg; +extern const pb_msgdesc_t google_protobuf_FeatureSetDefaults_msg; +extern const pb_msgdesc_t google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_msg; +extern const pb_msgdesc_t google_protobuf_SourceCodeInfo_msg; +extern const pb_msgdesc_t google_protobuf_SourceCodeInfo_Location_msg; +extern const pb_msgdesc_t google_protobuf_GeneratedCodeInfo_msg; +extern const pb_msgdesc_t google_protobuf_GeneratedCodeInfo_Annotation_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define google_protobuf_FileDescriptorSet_fields &google_protobuf_FileDescriptorSet_msg +#define google_protobuf_FileDescriptorProto_fields &google_protobuf_FileDescriptorProto_msg +#define google_protobuf_DescriptorProto_fields &google_protobuf_DescriptorProto_msg +#define google_protobuf_DescriptorProto_ExtensionRange_fields &google_protobuf_DescriptorProto_ExtensionRange_msg +#define google_protobuf_DescriptorProto_ReservedRange_fields &google_protobuf_DescriptorProto_ReservedRange_msg +#define google_protobuf_ExtensionRangeOptions_fields &google_protobuf_ExtensionRangeOptions_msg +#define google_protobuf_ExtensionRangeOptions_Declaration_fields &google_protobuf_ExtensionRangeOptions_Declaration_msg +#define google_protobuf_FieldDescriptorProto_fields &google_protobuf_FieldDescriptorProto_msg +#define google_protobuf_OneofDescriptorProto_fields &google_protobuf_OneofDescriptorProto_msg +#define google_protobuf_EnumDescriptorProto_fields &google_protobuf_EnumDescriptorProto_msg +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_fields \ + &google_protobuf_EnumDescriptorProto_EnumReservedRange_msg +#define google_protobuf_EnumValueDescriptorProto_fields &google_protobuf_EnumValueDescriptorProto_msg +#define google_protobuf_ServiceDescriptorProto_fields &google_protobuf_ServiceDescriptorProto_msg +#define google_protobuf_MethodDescriptorProto_fields &google_protobuf_MethodDescriptorProto_msg +#define google_protobuf_FileOptions_fields &google_protobuf_FileOptions_msg +#define google_protobuf_MessageOptions_fields &google_protobuf_MessageOptions_msg +#define google_protobuf_FieldOptions_fields &google_protobuf_FieldOptions_msg +#define google_protobuf_FieldOptions_EditionDefault_fields &google_protobuf_FieldOptions_EditionDefault_msg +#define google_protobuf_FieldOptions_FeatureSupport_fields &google_protobuf_FieldOptions_FeatureSupport_msg +#define google_protobuf_OneofOptions_fields &google_protobuf_OneofOptions_msg +#define google_protobuf_EnumOptions_fields &google_protobuf_EnumOptions_msg +#define google_protobuf_EnumValueOptions_fields &google_protobuf_EnumValueOptions_msg +#define google_protobuf_ServiceOptions_fields &google_protobuf_ServiceOptions_msg +#define google_protobuf_MethodOptions_fields &google_protobuf_MethodOptions_msg +#define google_protobuf_UninterpretedOption_fields &google_protobuf_UninterpretedOption_msg +#define google_protobuf_UninterpretedOption_NamePart_fields &google_protobuf_UninterpretedOption_NamePart_msg +#define google_protobuf_FeatureSet_fields &google_protobuf_FeatureSet_msg +#define google_protobuf_FeatureSetDefaults_fields &google_protobuf_FeatureSetDefaults_msg +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_fields \ + &google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_msg +#define google_protobuf_SourceCodeInfo_fields &google_protobuf_SourceCodeInfo_msg +#define google_protobuf_SourceCodeInfo_Location_fields &google_protobuf_SourceCodeInfo_Location_msg +#define google_protobuf_GeneratedCodeInfo_fields &google_protobuf_GeneratedCodeInfo_msg +#define google_protobuf_GeneratedCodeInfo_Annotation_fields &google_protobuf_GeneratedCodeInfo_Annotation_msg + +/* Maximum encoded size of messages (where known) */ +/* google_protobuf_FileDescriptorSet_size depends on runtime parameters */ +/* google_protobuf_FileDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_DescriptorProto_size depends on runtime parameters */ +/* google_protobuf_DescriptorProto_ExtensionRange_size depends on runtime parameters */ +/* google_protobuf_ExtensionRangeOptions_size depends on runtime parameters */ +/* google_protobuf_ExtensionRangeOptions_Declaration_size depends on runtime parameters */ +/* google_protobuf_FieldDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_OneofDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_EnumDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_EnumValueDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_ServiceDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_MethodDescriptorProto_size depends on runtime parameters */ +/* google_protobuf_FileOptions_size depends on runtime parameters */ +/* google_protobuf_MessageOptions_size depends on runtime parameters */ +/* google_protobuf_FieldOptions_size depends on runtime parameters */ +/* google_protobuf_FieldOptions_EditionDefault_size depends on runtime parameters */ +/* google_protobuf_FieldOptions_FeatureSupport_size depends on runtime parameters */ +/* google_protobuf_OneofOptions_size depends on runtime parameters */ +/* google_protobuf_EnumOptions_size depends on runtime parameters */ +/* google_protobuf_EnumValueOptions_size depends on runtime parameters */ +/* google_protobuf_ServiceOptions_size depends on runtime parameters */ +/* google_protobuf_MethodOptions_size depends on runtime parameters */ +/* google_protobuf_UninterpretedOption_size depends on runtime parameters */ +/* google_protobuf_UninterpretedOption_NamePart_size depends on runtime parameters */ +/* google_protobuf_FeatureSetDefaults_size depends on runtime parameters */ +/* google_protobuf_SourceCodeInfo_size depends on runtime parameters */ +/* google_protobuf_SourceCodeInfo_Location_size depends on runtime parameters */ +/* google_protobuf_GeneratedCodeInfo_size depends on runtime parameters */ +/* google_protobuf_GeneratedCodeInfo_Annotation_size depends on runtime parameters */ +#define GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DESCRIPTOR_PB_H_MAX_SIZE \ + google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_size +#define google_protobuf_DescriptorProto_ReservedRange_size 22 +#define google_protobuf_EnumDescriptorProto_EnumReservedRange_size 22 +#define google_protobuf_FeatureSetDefaults_FeatureSetEditionDefault_size 34 +#define google_protobuf_FeatureSet_size 12 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/protobuf/duration.pb.c b/app/src/protobuf/google/protobuf/duration.pb.c new file mode 100644 index 0000000..437401a --- /dev/null +++ b/app/src/protobuf/google/protobuf/duration.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/protobuf/duration.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(google_protobuf_Duration, google_protobuf_Duration, AUTO) diff --git a/app/src/protobuf/google/protobuf/duration.pb.h b/app/src/protobuf/google/protobuf/duration.pb.h new file mode 100644 index 0000000..b15cbde --- /dev/null +++ b/app/src/protobuf/google/protobuf/duration.pb.h @@ -0,0 +1,119 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DURATION_PB_H_INCLUDED +#define PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DURATION_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (duration.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". */ +typedef struct _google_protobuf_Duration { + /* Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years */ + int64_t seconds; + /* Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. */ + int32_t nanos; +} google_protobuf_Duration; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define google_protobuf_Duration_init_default \ + { 0, 0 } +#define google_protobuf_Duration_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define google_protobuf_Duration_seconds_tag 1 +#define google_protobuf_Duration_nanos_tag 2 + +/* Struct field encoding specification for nanopb */ +#define google_protobuf_Duration_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, seconds, 1) \ + X(a, STATIC, SINGULAR, INT32, nanos, 2) +#define google_protobuf_Duration_CALLBACK NULL +#define google_protobuf_Duration_DEFAULT NULL + +extern const pb_msgdesc_t google_protobuf_Duration_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define google_protobuf_Duration_fields &google_protobuf_Duration_msg + +/* Maximum encoded size of messages (where known) */ +#define GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_DURATION_PB_H_MAX_SIZE google_protobuf_Duration_size +#define google_protobuf_Duration_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/google/protobuf/timestamp.pb.c b/app/src/protobuf/google/protobuf/timestamp.pb.c new file mode 100644 index 0000000..4f7da4d --- /dev/null +++ b/app/src/protobuf/google/protobuf/timestamp.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "google/protobuf/timestamp.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(google_protobuf_Timestamp, google_protobuf_Timestamp, AUTO) diff --git a/app/src/protobuf/google/protobuf/timestamp.pb.h b/app/src/protobuf/google/protobuf/timestamp.pb.h new file mode 100644 index 0000000..7fc02a9 --- /dev/null +++ b/app/src/protobuf/google/protobuf/timestamp.pb.h @@ -0,0 +1,148 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_TIMESTAMP_PB_H_INCLUDED +#define PB_GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_TIMESTAMP_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from Java `Instant.now()`. + + Instant now = Instant.now(); + + Timestamp timestamp = + Timestamp.newBuilder().setSeconds(now.getEpochSecond()) + .setNanos(now.getNano()).build(); + + Example 6: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() + ) to obtain a formatter capable of generating timestamps in this format. */ +typedef struct _google_protobuf_Timestamp { + /* Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. */ + int64_t seconds; + /* Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. */ + int32_t nanos; +} google_protobuf_Timestamp; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define google_protobuf_Timestamp_init_default \ + { 0, 0 } +#define google_protobuf_Timestamp_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define google_protobuf_Timestamp_seconds_tag 1 +#define google_protobuf_Timestamp_nanos_tag 2 + +/* Struct field encoding specification for nanopb */ +#define google_protobuf_Timestamp_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, seconds, 1) \ + X(a, STATIC, SINGULAR, INT32, nanos, 2) +#define google_protobuf_Timestamp_CALLBACK NULL +#define google_protobuf_Timestamp_DEFAULT NULL + +extern const pb_msgdesc_t google_protobuf_Timestamp_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define google_protobuf_Timestamp_fields &google_protobuf_Timestamp_msg + +/* Maximum encoded size of messages (where known) */ +#define GOOGLE_PROTOBUF_GOOGLE_PROTOBUF_TIMESTAMP_PB_H_MAX_SIZE google_protobuf_Timestamp_size +#define google_protobuf_Timestamp_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/ack.pb.c b/app/src/protobuf/ibc/applications/fee/v1/ack.pb.c new file mode 100644 index 0000000..6b7ed4a --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/ack.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/ack.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_IncentivizedAcknowledgement, ibc_applications_fee_v1_IncentivizedAcknowledgement, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/ack.pb.h b/app/src/protobuf/ibc/applications/fee/v1/ack.pb.h new file mode 100644 index 0000000..6d6e736 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/ack.pb.h @@ -0,0 +1,58 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_ACK_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_ACK_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware */ +typedef struct _ibc_applications_fee_v1_IncentivizedAcknowledgement { + /* the underlying app acknowledgement bytes */ + pb_callback_t app_acknowledgement; + /* the relayer address which submits the recv packet message */ + pb_callback_t forward_relayer_address; + /* success flag of the base application callback */ + bool underlying_app_success; +} ibc_applications_fee_v1_IncentivizedAcknowledgement; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_app_acknowledgement_tag 1 +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_forward_relayer_address_tag 2 +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_underlying_app_success_tag 3 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, app_acknowledgement, 1) \ + X(a, CALLBACK, SINGULAR, STRING, forward_relayer_address, 2) \ + X(a, STATIC, SINGULAR, BOOL, underlying_app_success, 3) +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_fee_v1_IncentivizedAcknowledgement_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_IncentivizedAcknowledgement_fields &ibc_applications_fee_v1_IncentivizedAcknowledgement_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_IncentivizedAcknowledgement_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/fee.pb.c b/app/src/protobuf/ibc/applications/fee/v1/fee.pb.c new file mode 100644 index 0000000..6be89bd --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/fee.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/fee.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_Fee, ibc_applications_fee_v1_Fee, AUTO) + +PB_BIND(ibc_applications_fee_v1_PacketFee, ibc_applications_fee_v1_PacketFee, AUTO) + +PB_BIND(ibc_applications_fee_v1_PacketFees, ibc_applications_fee_v1_PacketFees, AUTO) + +PB_BIND(ibc_applications_fee_v1_IdentifiedPacketFees, ibc_applications_fee_v1_IdentifiedPacketFees, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/fee.pb.h b/app/src/protobuf/ibc/applications/fee/v1/fee.pb.h new file mode 100644 index 0000000..5649ba1 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/fee.pb.h @@ -0,0 +1,157 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_FEE_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_FEE_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Fee defines the ICS29 receive, acknowledgement and timeout fees */ +typedef struct _ibc_applications_fee_v1_Fee { + /* the packet receive fee */ + pb_callback_t recv_fee; + /* the packet acknowledgement fee */ + pb_callback_t ack_fee; + /* the packet timeout fee */ + pb_callback_t timeout_fee; +} ibc_applications_fee_v1_Fee; + +/* PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers */ +typedef struct _ibc_applications_fee_v1_PacketFee { + /* fee encapsulates the recv, ack and timeout fees associated with an IBC packet */ + bool has_fee; + ibc_applications_fee_v1_Fee fee; + /* the refund address for unspent fees */ + pb_callback_t refund_address; + /* optional list of relayers permitted to receive fees */ + pb_callback_t relayers; +} ibc_applications_fee_v1_PacketFee; + +/* PacketFees contains a list of type PacketFee */ +typedef struct _ibc_applications_fee_v1_PacketFees { + /* list of packet fees */ + pb_callback_t packet_fees; +} ibc_applications_fee_v1_PacketFees; + +/* IdentifiedPacketFees contains a list of type PacketFee and associated PacketId */ +typedef struct _ibc_applications_fee_v1_IdentifiedPacketFees { + /* unique packet identifier comprised of the channel ID, port ID and sequence */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; + /* list of packet fees */ + pb_callback_t packet_fees; +} ibc_applications_fee_v1_IdentifiedPacketFees; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_Fee_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_PacketFee_init_default \ + { \ + false, ibc_applications_fee_v1_Fee_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_PacketFees_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_IdentifiedPacketFees_init_default \ + { \ + false, ibc_core_channel_v1_PacketId_init_default, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_Fee_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_PacketFee_init_zero \ + { \ + false, ibc_applications_fee_v1_Fee_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_PacketFees_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_IdentifiedPacketFees_init_zero \ + { \ + false, ibc_core_channel_v1_PacketId_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_Fee_recv_fee_tag 1 +#define ibc_applications_fee_v1_Fee_ack_fee_tag 2 +#define ibc_applications_fee_v1_Fee_timeout_fee_tag 3 +#define ibc_applications_fee_v1_PacketFee_fee_tag 1 +#define ibc_applications_fee_v1_PacketFee_refund_address_tag 2 +#define ibc_applications_fee_v1_PacketFee_relayers_tag 3 +#define ibc_applications_fee_v1_PacketFees_packet_fees_tag 1 +#define ibc_applications_fee_v1_IdentifiedPacketFees_packet_id_tag 1 +#define ibc_applications_fee_v1_IdentifiedPacketFees_packet_fees_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_Fee_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, recv_fee, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, ack_fee, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, timeout_fee, 3) +#define ibc_applications_fee_v1_Fee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_Fee_DEFAULT NULL +#define ibc_applications_fee_v1_Fee_recv_fee_MSGTYPE cosmos_base_v1beta1_Coin +#define ibc_applications_fee_v1_Fee_ack_fee_MSGTYPE cosmos_base_v1beta1_Coin +#define ibc_applications_fee_v1_Fee_timeout_fee_MSGTYPE cosmos_base_v1beta1_Coin + +#define ibc_applications_fee_v1_PacketFee_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 1) \ + X(a, CALLBACK, SINGULAR, STRING, refund_address, 2) \ + X(a, CALLBACK, REPEATED, STRING, relayers, 3) +#define ibc_applications_fee_v1_PacketFee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_PacketFee_DEFAULT NULL +#define ibc_applications_fee_v1_PacketFee_fee_MSGTYPE ibc_applications_fee_v1_Fee + +#define ibc_applications_fee_v1_PacketFees_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, packet_fees, 1) +#define ibc_applications_fee_v1_PacketFees_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_PacketFees_DEFAULT NULL +#define ibc_applications_fee_v1_PacketFees_packet_fees_MSGTYPE ibc_applications_fee_v1_PacketFee + +#define ibc_applications_fee_v1_IdentifiedPacketFees_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, packet_fees, 2) +#define ibc_applications_fee_v1_IdentifiedPacketFees_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_IdentifiedPacketFees_DEFAULT NULL +#define ibc_applications_fee_v1_IdentifiedPacketFees_packet_id_MSGTYPE ibc_core_channel_v1_PacketId +#define ibc_applications_fee_v1_IdentifiedPacketFees_packet_fees_MSGTYPE ibc_applications_fee_v1_PacketFee + +extern const pb_msgdesc_t ibc_applications_fee_v1_Fee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_PacketFee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_PacketFees_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_IdentifiedPacketFees_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_Fee_fields &ibc_applications_fee_v1_Fee_msg +#define ibc_applications_fee_v1_PacketFee_fields &ibc_applications_fee_v1_PacketFee_msg +#define ibc_applications_fee_v1_PacketFees_fields &ibc_applications_fee_v1_PacketFees_msg +#define ibc_applications_fee_v1_IdentifiedPacketFees_fields &ibc_applications_fee_v1_IdentifiedPacketFees_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_Fee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_PacketFee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_PacketFees_size depends on runtime parameters */ +/* ibc_applications_fee_v1_IdentifiedPacketFees_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.c b/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.c new file mode 100644 index 0000000..6b49c32 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_GenesisState, ibc_applications_fee_v1_GenesisState, AUTO) + +PB_BIND(ibc_applications_fee_v1_FeeEnabledChannel, ibc_applications_fee_v1_FeeEnabledChannel, AUTO) + +PB_BIND(ibc_applications_fee_v1_RegisteredPayee, ibc_applications_fee_v1_RegisteredPayee, AUTO) + +PB_BIND(ibc_applications_fee_v1_RegisteredCounterpartyPayee, ibc_applications_fee_v1_RegisteredCounterpartyPayee, AUTO) + +PB_BIND(ibc_applications_fee_v1_ForwardRelayerAddress, ibc_applications_fee_v1_ForwardRelayerAddress, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.h b/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.h new file mode 100644 index 0000000..536e98a --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/genesis.pb.h @@ -0,0 +1,195 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/fee/v1/fee.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ICS29 fee middleware genesis state */ +typedef struct _ibc_applications_fee_v1_GenesisState { + /* list of identified packet fees */ + pb_callback_t identified_fees; + /* list of fee enabled channels */ + pb_callback_t fee_enabled_channels; + /* list of registered payees */ + pb_callback_t registered_payees; + /* list of registered counterparty payees */ + pb_callback_t registered_counterparty_payees; + /* list of forward relayer addresses */ + pb_callback_t forward_relayers; +} ibc_applications_fee_v1_GenesisState; + +/* FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel */ +typedef struct _ibc_applications_fee_v1_FeeEnabledChannel { + /* unique port identifier */ + pb_callback_t port_id; + /* unique channel identifier */ + pb_callback_t channel_id; +} ibc_applications_fee_v1_FeeEnabledChannel; + +/* RegisteredPayee contains the relayer address and payee address for a specific channel */ +typedef struct _ibc_applications_fee_v1_RegisteredPayee { + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address */ + pb_callback_t relayer; + /* the payee address */ + pb_callback_t payee; +} ibc_applications_fee_v1_RegisteredPayee; + +/* RegisteredCounterpartyPayee contains the relayer address and counterparty payee address for a specific channel (used + for recv fee distribution) */ +typedef struct _ibc_applications_fee_v1_RegisteredCounterpartyPayee { + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address */ + pb_callback_t relayer; + /* the counterparty payee address */ + pb_callback_t counterparty_payee; +} ibc_applications_fee_v1_RegisteredCounterpartyPayee; + +/* ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements */ +typedef struct _ibc_applications_fee_v1_ForwardRelayerAddress { + /* the forward relayer address */ + pb_callback_t address; + /* unique packet identifer comprised of the channel ID, port ID and sequence */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; +} ibc_applications_fee_v1_ForwardRelayerAddress; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_GenesisState_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_FeeEnabledChannel_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_RegisteredPayee_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_ForwardRelayerAddress_init_default \ + { {{NULL}, NULL}, false, ibc_core_channel_v1_PacketId_init_default } +#define ibc_applications_fee_v1_GenesisState_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_FeeEnabledChannel_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_RegisteredPayee_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_ForwardRelayerAddress_init_zero \ + { {{NULL}, NULL}, false, ibc_core_channel_v1_PacketId_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_GenesisState_identified_fees_tag 1 +#define ibc_applications_fee_v1_GenesisState_fee_enabled_channels_tag 2 +#define ibc_applications_fee_v1_GenesisState_registered_payees_tag 3 +#define ibc_applications_fee_v1_GenesisState_registered_counterparty_payees_tag 4 +#define ibc_applications_fee_v1_GenesisState_forward_relayers_tag 5 +#define ibc_applications_fee_v1_FeeEnabledChannel_port_id_tag 1 +#define ibc_applications_fee_v1_FeeEnabledChannel_channel_id_tag 2 +#define ibc_applications_fee_v1_RegisteredPayee_channel_id_tag 1 +#define ibc_applications_fee_v1_RegisteredPayee_relayer_tag 2 +#define ibc_applications_fee_v1_RegisteredPayee_payee_tag 3 +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_channel_id_tag 1 +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_relayer_tag 2 +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_counterparty_payee_tag 3 +#define ibc_applications_fee_v1_ForwardRelayerAddress_address_tag 1 +#define ibc_applications_fee_v1_ForwardRelayerAddress_packet_id_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, identified_fees, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, fee_enabled_channels, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, registered_payees, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, registered_counterparty_payees, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, forward_relayers, 5) +#define ibc_applications_fee_v1_GenesisState_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_GenesisState_DEFAULT NULL +#define ibc_applications_fee_v1_GenesisState_identified_fees_MSGTYPE ibc_applications_fee_v1_IdentifiedPacketFees +#define ibc_applications_fee_v1_GenesisState_fee_enabled_channels_MSGTYPE ibc_applications_fee_v1_FeeEnabledChannel +#define ibc_applications_fee_v1_GenesisState_registered_payees_MSGTYPE ibc_applications_fee_v1_RegisteredPayee +#define ibc_applications_fee_v1_GenesisState_registered_counterparty_payees_MSGTYPE \ + ibc_applications_fee_v1_RegisteredCounterpartyPayee +#define ibc_applications_fee_v1_GenesisState_forward_relayers_MSGTYPE ibc_applications_fee_v1_ForwardRelayerAddress + +#define ibc_applications_fee_v1_FeeEnabledChannel_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_applications_fee_v1_FeeEnabledChannel_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_FeeEnabledChannel_DEFAULT NULL + +#define ibc_applications_fee_v1_RegisteredPayee_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 2) \ + X(a, CALLBACK, SINGULAR, STRING, payee, 3) +#define ibc_applications_fee_v1_RegisteredPayee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_RegisteredPayee_DEFAULT NULL + +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 2) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_payee, 3) +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_DEFAULT NULL + +#define ibc_applications_fee_v1_ForwardRelayerAddress_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 2) +#define ibc_applications_fee_v1_ForwardRelayerAddress_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_ForwardRelayerAddress_DEFAULT NULL +#define ibc_applications_fee_v1_ForwardRelayerAddress_packet_id_MSGTYPE ibc_core_channel_v1_PacketId + +extern const pb_msgdesc_t ibc_applications_fee_v1_GenesisState_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_FeeEnabledChannel_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_RegisteredPayee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_RegisteredCounterpartyPayee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_ForwardRelayerAddress_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_GenesisState_fields &ibc_applications_fee_v1_GenesisState_msg +#define ibc_applications_fee_v1_FeeEnabledChannel_fields &ibc_applications_fee_v1_FeeEnabledChannel_msg +#define ibc_applications_fee_v1_RegisteredPayee_fields &ibc_applications_fee_v1_RegisteredPayee_msg +#define ibc_applications_fee_v1_RegisteredCounterpartyPayee_fields &ibc_applications_fee_v1_RegisteredCounterpartyPayee_msg +#define ibc_applications_fee_v1_ForwardRelayerAddress_fields &ibc_applications_fee_v1_ForwardRelayerAddress_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_GenesisState_size depends on runtime parameters */ +/* ibc_applications_fee_v1_FeeEnabledChannel_size depends on runtime parameters */ +/* ibc_applications_fee_v1_RegisteredPayee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_RegisteredCounterpartyPayee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_ForwardRelayerAddress_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.c b/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.c new file mode 100644 index 0000000..065e0b2 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/metadata.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_Metadata, ibc_applications_fee_v1_Metadata, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.h b/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.h new file mode 100644 index 0000000..0c54c7d --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/metadata.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_METADATA_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_METADATA_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Metadata defines the ICS29 channel specific metadata encoded into the channel version bytestring + See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning */ +typedef struct _ibc_applications_fee_v1_Metadata { + /* fee_version defines the ICS29 fee version */ + pb_callback_t fee_version; + /* app_version defines the underlying application version, which may or may not be a JSON encoded bytestring */ + pb_callback_t app_version; +} ibc_applications_fee_v1_Metadata; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_Metadata_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_Metadata_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_Metadata_fee_version_tag 1 +#define ibc_applications_fee_v1_Metadata_app_version_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_Metadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, fee_version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, app_version, 2) +#define ibc_applications_fee_v1_Metadata_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_Metadata_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_fee_v1_Metadata_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_Metadata_fields &ibc_applications_fee_v1_Metadata_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_Metadata_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/query.pb.c b/app/src/protobuf/ibc/applications/fee/v1/query.pb.c new file mode 100644 index 0000000..2f09535 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/query.pb.c @@ -0,0 +1,53 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketsRequest, ibc_applications_fee_v1_QueryIncentivizedPacketsRequest, + AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketsResponse, ibc_applications_fee_v1_QueryIncentivizedPacketsResponse, + AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketRequest, ibc_applications_fee_v1_QueryIncentivizedPacketRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketResponse, ibc_applications_fee_v1_QueryIncentivizedPacketResponse, + AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest, + ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse, + ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalRecvFeesRequest, ibc_applications_fee_v1_QueryTotalRecvFeesRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalRecvFeesResponse, ibc_applications_fee_v1_QueryTotalRecvFeesResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalAckFeesRequest, ibc_applications_fee_v1_QueryTotalAckFeesRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalAckFeesResponse, ibc_applications_fee_v1_QueryTotalAckFeesResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest, ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse, ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryPayeeRequest, ibc_applications_fee_v1_QueryPayeeRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryPayeeResponse, ibc_applications_fee_v1_QueryPayeeResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryCounterpartyPayeeRequest, ibc_applications_fee_v1_QueryCounterpartyPayeeRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryCounterpartyPayeeResponse, ibc_applications_fee_v1_QueryCounterpartyPayeeResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest, ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse, ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse, + AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryFeeEnabledChannelRequest, ibc_applications_fee_v1_QueryFeeEnabledChannelRequest, AUTO) + +PB_BIND(ibc_applications_fee_v1_QueryFeeEnabledChannelResponse, ibc_applications_fee_v1_QueryFeeEnabledChannelResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/query.pb.h b/app/src/protobuf/ibc/applications/fee/v1/query.pb.h new file mode 100644 index 0000000..094b3fb --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/query.pb.h @@ -0,0 +1,546 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "ibc/applications/fee/v1/fee.pb.h" +#include "ibc/applications/fee/v1/genesis.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketsRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + /* block height at which to query */ + uint64_t query_height; +} ibc_applications_fee_v1_QueryIncentivizedPacketsRequest; + +/* QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketsResponse { + /* list of identified fees for incentivized packets */ + pb_callback_t incentivized_packets; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_applications_fee_v1_QueryIncentivizedPacketsResponse; + +/* QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketRequest { + /* unique packet identifier comprised of channel ID, port ID and sequence */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; + /* block height at which to query */ + uint64_t query_height; +} ibc_applications_fee_v1_QueryIncentivizedPacketRequest; + +/* QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketResponse { + /* the identified fees for the incentivized packet */ + bool has_incentivized_packet; + ibc_applications_fee_v1_IdentifiedPacketFees incentivized_packet; +} ibc_applications_fee_v1_QueryIncentivizedPacketResponse; + +/* QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets + for a specific channel */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + pb_callback_t port_id; + pb_callback_t channel_id; + /* Height to query at */ + uint64_t query_height; +} ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest; + +/* QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC */ +typedef struct _ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse { + /* Map of all incentivized_packets */ + pb_callback_t incentivized_packets; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse; + +/* QueryTotalRecvFeesRequest defines the request type for the TotalRecvFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalRecvFeesRequest { + /* the packet identifier for the associated fees */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; +} ibc_applications_fee_v1_QueryTotalRecvFeesRequest; + +/* QueryTotalRecvFeesResponse defines the response type for the TotalRecvFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalRecvFeesResponse { + /* the total packet receive fees */ + pb_callback_t recv_fees; +} ibc_applications_fee_v1_QueryTotalRecvFeesResponse; + +/* QueryTotalAckFeesRequest defines the request type for the TotalAckFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalAckFeesRequest { + /* the packet identifier for the associated fees */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; +} ibc_applications_fee_v1_QueryTotalAckFeesRequest; + +/* QueryTotalAckFeesResponse defines the response type for the TotalAckFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalAckFeesResponse { + /* the total packet acknowledgement fees */ + pb_callback_t ack_fees; +} ibc_applications_fee_v1_QueryTotalAckFeesResponse; + +/* QueryTotalTimeoutFeesRequest defines the request type for the TotalTimeoutFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest { + /* the packet identifier for the associated fees */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; +} ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest; + +/* QueryTotalTimeoutFeesResponse defines the response type for the TotalTimeoutFees rpc */ +typedef struct _ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse { + /* the total packet timeout fees */ + pb_callback_t timeout_fees; +} ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse; + +/* QueryPayeeRequest defines the request type for the Payee rpc */ +typedef struct _ibc_applications_fee_v1_QueryPayeeRequest { + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address to which the distribution address is registered */ + pb_callback_t relayer; +} ibc_applications_fee_v1_QueryPayeeRequest; + +/* QueryPayeeResponse defines the response type for the Payee rpc */ +typedef struct _ibc_applications_fee_v1_QueryPayeeResponse { + /* the payee address to which packet fees are paid out */ + pb_callback_t payee_address; +} ibc_applications_fee_v1_QueryPayeeResponse; + +/* QueryCounterpartyPayeeRequest defines the request type for the CounterpartyPayee rpc */ +typedef struct _ibc_applications_fee_v1_QueryCounterpartyPayeeRequest { + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address to which the counterparty is registered */ + pb_callback_t relayer; +} ibc_applications_fee_v1_QueryCounterpartyPayeeRequest; + +/* QueryCounterpartyPayeeResponse defines the response type for the CounterpartyPayee rpc */ +typedef struct _ibc_applications_fee_v1_QueryCounterpartyPayeeResponse { + /* the counterparty payee address used to compensate forward relaying */ + pb_callback_t counterparty_payee; +} ibc_applications_fee_v1_QueryCounterpartyPayeeResponse; + +/* QueryFeeEnabledChannelsRequest defines the request type for the FeeEnabledChannels rpc */ +typedef struct _ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + /* block height at which to query */ + uint64_t query_height; +} ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest; + +/* QueryFeeEnabledChannelsResponse defines the response type for the FeeEnabledChannels rpc */ +typedef struct _ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse { + /* list of fee enabled channels */ + pb_callback_t fee_enabled_channels; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse; + +/* QueryFeeEnabledChannelRequest defines the request type for the FeeEnabledChannel rpc */ +typedef struct _ibc_applications_fee_v1_QueryFeeEnabledChannelRequest { + /* unique port identifier */ + pb_callback_t port_id; + /* unique channel identifier */ + pb_callback_t channel_id; +} ibc_applications_fee_v1_QueryFeeEnabledChannelRequest; + +/* QueryFeeEnabledChannelResponse defines the response type for the FeeEnabledChannel rpc */ +typedef struct _ibc_applications_fee_v1_QueryFeeEnabledChannelResponse { + /* boolean flag representing the fee enabled channel status */ + bool fee_enabled; +} ibc_applications_fee_v1_QueryFeeEnabledChannelResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_init_default \ + { false, ibc_core_channel_v1_PacketId_init_default, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_init_default \ + { false, ibc_applications_fee_v1_IdentifiedPacketFees_init_default } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_init_default \ + { false, ibc_core_channel_v1_PacketId_init_default } +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_init_default \ + { false, ibc_core_channel_v1_PacketId_init_default } +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_init_default \ + { false, ibc_core_channel_v1_PacketId_init_default } +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryPayeeRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryPayeeResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default, 0 } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_init_default \ + { 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_init_zero \ + { false, ibc_core_channel_v1_PacketId_init_zero, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_init_zero \ + { false, ibc_applications_fee_v1_IdentifiedPacketFees_init_zero } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_init_zero \ + { false, ibc_core_channel_v1_PacketId_init_zero } +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_init_zero \ + { false, ibc_core_channel_v1_PacketId_init_zero } +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_init_zero \ + { false, ibc_core_channel_v1_PacketId_init_zero } +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryPayeeRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryPayeeResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero, 0 } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_pagination_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_query_height_tag 2 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_incentivized_packets_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_pagination_tag 2 +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_packet_id_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_query_height_tag 2 +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_incentivized_packet_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_pagination_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_port_id_tag 2 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_channel_id_tag 3 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_query_height_tag 4 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_incentivized_packets_tag 1 +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_pagination_tag 2 +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_packet_id_tag 1 +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_recv_fees_tag 1 +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_packet_id_tag 1 +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_ack_fees_tag 1 +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_packet_id_tag 1 +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_timeout_fees_tag 1 +#define ibc_applications_fee_v1_QueryPayeeRequest_channel_id_tag 1 +#define ibc_applications_fee_v1_QueryPayeeRequest_relayer_tag 2 +#define ibc_applications_fee_v1_QueryPayeeResponse_payee_address_tag 1 +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_channel_id_tag 1 +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_relayer_tag 2 +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_counterparty_payee_tag 1 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_pagination_tag 1 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_query_height_tag 2 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_fee_enabled_channels_tag 1 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_pagination_tag 2 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_port_id_tag 1 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_channel_id_tag 2 +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_fee_enabled_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) \ + X(a, STATIC, SINGULAR, UINT64, query_height, 2) +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, incentivized_packets, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_incentivized_packets_MSGTYPE \ + ibc_applications_fee_v1_IdentifiedPacketFees +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, query_height, 2) +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_packet_id_MSGTYPE ibc_core_channel_v1_PacketId + +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, incentivized_packet, 1) +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_CALLBACK NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_incentivized_packet_MSGTYPE \ + ibc_applications_fee_v1_IdentifiedPacketFees + +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 3) \ + X(a, STATIC, SINGULAR, UINT64, query_height, 4) +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageRequest + +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, incentivized_packets, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_incentivized_packets_MSGTYPE \ + ibc_applications_fee_v1_IdentifiedPacketFees +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_pagination_MSGTYPE \ + cosmos_base_query_v1beta1_PageResponse + +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_packet_id_MSGTYPE ibc_core_channel_v1_PacketId + +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, recv_fees, 1) +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_recv_fees_MSGTYPE cosmos_base_v1beta1_Coin + +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_packet_id_MSGTYPE ibc_core_channel_v1_PacketId + +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, ack_fees, 1) +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_ack_fees_MSGTYPE cosmos_base_v1beta1_Coin + +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_packet_id_MSGTYPE ibc_core_channel_v1_PacketId + +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, timeout_fees, 1) +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_timeout_fees_MSGTYPE cosmos_base_v1beta1_Coin + +#define ibc_applications_fee_v1_QueryPayeeRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 2) +#define ibc_applications_fee_v1_QueryPayeeRequest_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryPayeeRequest_DEFAULT NULL + +#define ibc_applications_fee_v1_QueryPayeeResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, payee_address, 1) +#define ibc_applications_fee_v1_QueryPayeeResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryPayeeResponse_DEFAULT NULL + +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 2) +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_DEFAULT NULL + +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_payee, 1) +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_DEFAULT NULL + +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) \ + X(a, STATIC, SINGULAR, UINT64, query_height, 2) +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_CALLBACK NULL +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_DEFAULT NULL +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, fee_enabled_channels, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_DEFAULT NULL +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_fee_enabled_channels_MSGTYPE \ + ibc_applications_fee_v1_FeeEnabledChannel +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_DEFAULT NULL + +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, fee_enabled, 1) +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_CALLBACK NULL +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalRecvFeesRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalRecvFeesResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalAckFeesRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalAckFeesResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryPayeeRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryPayeeResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_msg +#define ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_msg +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketRequest_msg +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketResponse_msg +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_msg +#define ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_fields \ + &ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_msg +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_fields &ibc_applications_fee_v1_QueryTotalRecvFeesRequest_msg +#define ibc_applications_fee_v1_QueryTotalRecvFeesResponse_fields &ibc_applications_fee_v1_QueryTotalRecvFeesResponse_msg +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_fields &ibc_applications_fee_v1_QueryTotalAckFeesRequest_msg +#define ibc_applications_fee_v1_QueryTotalAckFeesResponse_fields &ibc_applications_fee_v1_QueryTotalAckFeesResponse_msg +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_fields &ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_msg +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_fields \ + &ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_msg +#define ibc_applications_fee_v1_QueryPayeeRequest_fields &ibc_applications_fee_v1_QueryPayeeRequest_msg +#define ibc_applications_fee_v1_QueryPayeeResponse_fields &ibc_applications_fee_v1_QueryPayeeResponse_msg +#define ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_fields \ + &ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_msg +#define ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_fields \ + &ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_msg +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_fields \ + &ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_msg +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_fields \ + &ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_msg +#define ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_fields \ + &ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_msg +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_fields \ + &ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_QueryIncentivizedPacketsResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelRequest_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryIncentivizedPacketsForChannelResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryTotalRecvFeesResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryTotalAckFeesResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryTotalTimeoutFeesResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryPayeeRequest_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryPayeeResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryCounterpartyPayeeRequest_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryCounterpartyPayeeResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryFeeEnabledChannelsResponse_size depends on runtime parameters */ +/* ibc_applications_fee_v1_QueryFeeEnabledChannelRequest_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_QUERY_PB_H_MAX_SIZE \ + ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_size +#define ibc_applications_fee_v1_QueryFeeEnabledChannelsRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#define ibc_applications_fee_v1_QueryIncentivizedPacketsRequest_size (17 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#if defined(ibc_core_channel_v1_PacketId_size) +#define ibc_applications_fee_v1_QueryIncentivizedPacketRequest_size (17 + ibc_core_channel_v1_PacketId_size) +#define ibc_applications_fee_v1_QueryTotalAckFeesRequest_size (6 + ibc_core_channel_v1_PacketId_size) +#define ibc_applications_fee_v1_QueryTotalRecvFeesRequest_size (6 + ibc_core_channel_v1_PacketId_size) +#define ibc_applications_fee_v1_QueryTotalTimeoutFeesRequest_size (6 + ibc_core_channel_v1_PacketId_size) +#endif +#if defined(ibc_applications_fee_v1_IdentifiedPacketFees_size) +#define ibc_applications_fee_v1_QueryIncentivizedPacketResponse_size (6 + ibc_applications_fee_v1_IdentifiedPacketFees_size) +#endif +#define ibc_applications_fee_v1_QueryFeeEnabledChannelResponse_size 2 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/fee/v1/tx.pb.c b/app/src/protobuf/ibc/applications/fee/v1/tx.pb.c new file mode 100644 index 0000000..2998d1e --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/tx.pb.c @@ -0,0 +1,24 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/fee/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_fee_v1_MsgRegisterPayee, ibc_applications_fee_v1_MsgRegisterPayee, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgRegisterPayeeResponse, ibc_applications_fee_v1_MsgRegisterPayeeResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgRegisterCounterpartyPayee, ibc_applications_fee_v1_MsgRegisterCounterpartyPayee, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse, + ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgPayPacketFee, ibc_applications_fee_v1_MsgPayPacketFee, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgPayPacketFeeResponse, ibc_applications_fee_v1_MsgPayPacketFeeResponse, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgPayPacketFeeAsync, ibc_applications_fee_v1_MsgPayPacketFeeAsync, AUTO) + +PB_BIND(ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse, ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/fee/v1/tx.pb.h b/app/src/protobuf/ibc/applications/fee/v1/tx.pb.h new file mode 100644 index 0000000..d17b4e7 --- /dev/null +++ b/app/src/protobuf/ibc/applications/fee/v1/tx.pb.h @@ -0,0 +1,251 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_TX_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/fee/v1/fee.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgRegisterPayee defines the request type for the RegisterPayee rpc */ +typedef struct _ibc_applications_fee_v1_MsgRegisterPayee { + /* unique port identifier */ + pb_callback_t port_id; + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address */ + pb_callback_t relayer; + /* the payee address */ + pb_callback_t payee; +} ibc_applications_fee_v1_MsgRegisterPayee; + +/* MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc */ +typedef struct _ibc_applications_fee_v1_MsgRegisterPayeeResponse { + char dummy_field; +} ibc_applications_fee_v1_MsgRegisterPayeeResponse; + +/* MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc */ +typedef struct _ibc_applications_fee_v1_MsgRegisterCounterpartyPayee { + /* unique port identifier */ + pb_callback_t port_id; + /* unique channel identifier */ + pb_callback_t channel_id; + /* the relayer address */ + pb_callback_t relayer; + /* the counterparty payee address */ + pb_callback_t counterparty_payee; +} ibc_applications_fee_v1_MsgRegisterCounterpartyPayee; + +/* MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc */ +typedef struct _ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse { + char dummy_field; +} ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse; + +/* MsgPayPacketFee defines the request type for the PayPacketFee rpc + This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be + paid for */ +typedef struct _ibc_applications_fee_v1_MsgPayPacketFee { + /* fee encapsulates the recv, ack and timeout fees associated with an IBC packet */ + bool has_fee; + ibc_applications_fee_v1_Fee fee; + /* the source port unique identifier */ + pb_callback_t source_port_id; + /* the source channel unique identifer */ + pb_callback_t source_channel_id; + /* account address to refund fee if necessary */ + pb_callback_t signer; + /* optional list of relayers permitted to the receive packet fees */ + pb_callback_t relayers; +} ibc_applications_fee_v1_MsgPayPacketFee; + +/* MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc */ +typedef struct _ibc_applications_fee_v1_MsgPayPacketFeeResponse { + char dummy_field; +} ibc_applications_fee_v1_MsgPayPacketFeeResponse; + +/* MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc + This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send) */ +typedef struct _ibc_applications_fee_v1_MsgPayPacketFeeAsync { + /* unique packet identifier comprised of the channel ID, port ID and sequence */ + bool has_packet_id; + ibc_core_channel_v1_PacketId packet_id; + /* the packet fee associated with a particular IBC packet */ + bool has_packet_fee; + ibc_applications_fee_v1_PacketFee packet_fee; +} ibc_applications_fee_v1_MsgPayPacketFeeAsync; + +/* MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc */ +typedef struct _ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse { + char dummy_field; +} ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_fee_v1_MsgRegisterPayee_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_init_default \ + { 0 } +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_init_default \ + { 0 } +#define ibc_applications_fee_v1_MsgPayPacketFee_init_default \ + { \ + false, ibc_applications_fee_v1_Fee_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_init_default \ + { 0 } +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_init_default \ + { false, ibc_core_channel_v1_PacketId_init_default, false, ibc_applications_fee_v1_PacketFee_init_default } +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_init_default \ + { 0 } +#define ibc_applications_fee_v1_MsgRegisterPayee_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_init_zero \ + { 0 } +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_init_zero \ + { 0 } +#define ibc_applications_fee_v1_MsgPayPacketFee_init_zero \ + { \ + false, ibc_applications_fee_v1_Fee_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_init_zero \ + { 0 } +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_init_zero \ + { false, ibc_core_channel_v1_PacketId_init_zero, false, ibc_applications_fee_v1_PacketFee_init_zero } +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_fee_v1_MsgRegisterPayee_port_id_tag 1 +#define ibc_applications_fee_v1_MsgRegisterPayee_channel_id_tag 2 +#define ibc_applications_fee_v1_MsgRegisterPayee_relayer_tag 3 +#define ibc_applications_fee_v1_MsgRegisterPayee_payee_tag 4 +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_port_id_tag 1 +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_channel_id_tag 2 +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_relayer_tag 3 +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_counterparty_payee_tag 4 +#define ibc_applications_fee_v1_MsgPayPacketFee_fee_tag 1 +#define ibc_applications_fee_v1_MsgPayPacketFee_source_port_id_tag 2 +#define ibc_applications_fee_v1_MsgPayPacketFee_source_channel_id_tag 3 +#define ibc_applications_fee_v1_MsgPayPacketFee_signer_tag 4 +#define ibc_applications_fee_v1_MsgPayPacketFee_relayers_tag 5 +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_packet_id_tag 1 +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_packet_fee_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_fee_v1_MsgRegisterPayee_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 3) \ + X(a, CALLBACK, SINGULAR, STRING, payee, 4) +#define ibc_applications_fee_v1_MsgRegisterPayee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_MsgRegisterPayee_DEFAULT NULL + +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_FIELDLIST(X, a) + +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_CALLBACK NULL +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_DEFAULT NULL + +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, relayer, 3) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_payee, 4) +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_DEFAULT NULL + +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_FIELDLIST(X, a) + +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_CALLBACK NULL +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_DEFAULT NULL + +#define ibc_applications_fee_v1_MsgPayPacketFee_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 1) \ + X(a, CALLBACK, SINGULAR, STRING, source_port_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, source_channel_id, 3) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 4) \ + X(a, CALLBACK, REPEATED, STRING, relayers, 5) +#define ibc_applications_fee_v1_MsgPayPacketFee_CALLBACK pb_default_field_callback +#define ibc_applications_fee_v1_MsgPayPacketFee_DEFAULT NULL +#define ibc_applications_fee_v1_MsgPayPacketFee_fee_MSGTYPE ibc_applications_fee_v1_Fee + +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_FIELDLIST(X, a) + +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_CALLBACK NULL +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_DEFAULT NULL + +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_fee, 2) +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_CALLBACK NULL +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_DEFAULT NULL +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_packet_id_MSGTYPE ibc_core_channel_v1_PacketId +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_packet_fee_MSGTYPE ibc_applications_fee_v1_PacketFee + +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_FIELDLIST(X, a) + +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_CALLBACK NULL +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgRegisterPayee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgRegisterPayeeResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgPayPacketFee_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgPayPacketFeeResponse_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgPayPacketFeeAsync_msg; +extern const pb_msgdesc_t ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_fee_v1_MsgRegisterPayee_fields &ibc_applications_fee_v1_MsgRegisterPayee_msg +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_fields &ibc_applications_fee_v1_MsgRegisterPayeeResponse_msg +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_fields &ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_msg +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_fields \ + &ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_msg +#define ibc_applications_fee_v1_MsgPayPacketFee_fields &ibc_applications_fee_v1_MsgPayPacketFee_msg +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_fields &ibc_applications_fee_v1_MsgPayPacketFeeResponse_msg +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_fields &ibc_applications_fee_v1_MsgPayPacketFeeAsync_msg +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_fields &ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_fee_v1_MsgRegisterPayee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_MsgRegisterCounterpartyPayee_size depends on runtime parameters */ +/* ibc_applications_fee_v1_MsgPayPacketFee_size depends on runtime parameters */ +#define ibc_applications_fee_v1_MsgPayPacketFeeAsyncResponse_size 0 +#define ibc_applications_fee_v1_MsgPayPacketFeeResponse_size 0 +#define ibc_applications_fee_v1_MsgRegisterCounterpartyPayeeResponse_size 0 +#define ibc_applications_fee_v1_MsgRegisterPayeeResponse_size 0 +#if defined(ibc_core_channel_v1_PacketId_size) && defined(ibc_applications_fee_v1_PacketFee_size) +#define IBC_APPLICATIONS_FEE_V1_IBC_APPLICATIONS_FEE_V1_TX_PB_H_MAX_SIZE ibc_applications_fee_v1_MsgPayPacketFeeAsync_size +#define ibc_applications_fee_v1_MsgPayPacketFeeAsync_size \ + (12 + ibc_core_channel_v1_PacketId_size + ibc_applications_fee_v1_PacketFee_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.c new file mode 100644 index 0000000..afb5980 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.c @@ -0,0 +1,10 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/controller/v1/controller.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_Params, ibc_applications_interchain_accounts_controller_v1_Params, + AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.h new file mode 100644 index 0000000..3a437c4 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/controller.pb.h @@ -0,0 +1,54 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_CONTROLLER_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_CONTROLLER_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Params defines the set of on-chain interchain accounts parameters. + The following parameters may be used to disable the controller submodule. */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_Params { + /* controller_enabled enables or disables the controller submodule. */ + bool controller_enabled; +} ibc_applications_interchain_accounts_controller_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_controller_v1_Params_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_Params_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_controller_v1_Params_controller_enabled_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_controller_v1_Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, controller_enabled, 1) +#define ibc_applications_interchain_accounts_controller_v1_Params_CALLBACK NULL +#define ibc_applications_interchain_accounts_controller_v1_Params_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_controller_v1_Params_fields \ + &ibc_applications_interchain_accounts_controller_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +#define IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_CONTROLLER_PB_H_MAX_SIZE \ + ibc_applications_interchain_accounts_controller_v1_Params_size +#define ibc_applications_interchain_accounts_controller_v1_Params_size 2 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.c new file mode 100644 index 0000000..475fc8b --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/controller/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest, + ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse, + ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest, + ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse, + ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.h new file mode 100644 index 0000000..cba65fa --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/query.pb.h @@ -0,0 +1,126 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_QUERY_PB_H_INCLUDED +#include + +#include "google/api/annotations.pb.h" +#include "ibc/applications/interchain_accounts/controller/v1/controller.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method. */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest { + pb_callback_t owner; + pb_callback_t connection_id; +} ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest; + +/* QueryInterchainAccountResponse the response type for the Query/InterchainAccount RPC method. */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse { + pb_callback_t address; +} ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse; + +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest { + char dummy_field; +} ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + ibc_applications_interchain_accounts_controller_v1_Params params; +} ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_init_default \ + { false, ibc_applications_interchain_accounts_controller_v1_Params_init_default } +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_init_zero \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_init_zero \ + { false, ibc_applications_interchain_accounts_controller_v1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_owner_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_connection_id_tag 2 +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_address_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 2) +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_FIELDLIST(X, a) + +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_CALLBACK NULL +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_CALLBACK NULL +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_DEFAULT NULL +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_params_MSGTYPE \ + ibc_applications_interchain_accounts_controller_v1_Params + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_fields \ + &ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_msg +#define ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_fields \ + &ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_msg +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_fields \ + &ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_msg +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_fields \ + &ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountRequest_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_controller_v1_QueryInterchainAccountResponse_size depends on runtime parameters */ +#define IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_QUERY_PB_H_MAX_SIZE \ + ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_size +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsRequest_size 0 +#define ibc_applications_interchain_accounts_controller_v1_QueryParamsResponse_size 4 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.c new file mode 100644 index 0000000..7ed2195 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.c @@ -0,0 +1,25 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/controller/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount, + ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse, + ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgSendTx, + ibc_applications_interchain_accounts_controller_v1_MsgSendTx, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse, + ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams, + ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse, + ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.h new file mode 100644 index 0000000..d391a96 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/controller/v1/tx.pb.h @@ -0,0 +1,200 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_TX_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/interchain_accounts/controller/v1/controller.pb.h" +#include "ibc/applications/interchain_accounts/v1/packet.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount { + pb_callback_t owner; + pb_callback_t connection_id; + pb_callback_t version; +} ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount; + +/* MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse { + pb_callback_t channel_id; + pb_callback_t port_id; +} ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse; + +/* MsgSendTx defines the payload for Msg/SendTx */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgSendTx { + pb_callback_t owner; + pb_callback_t connection_id; + bool has_packet_data; + ibc_applications_interchain_accounts_v1_InterchainAccountPacketData packet_data; + /* Relative timeout timestamp provided will be added to the current block time during transaction execution. + The timeout timestamp must be non-zero. */ + uint64_t relative_timeout; +} ibc_applications_interchain_accounts_controller_v1_MsgSendTx; + +/* MsgSendTxResponse defines the response for MsgSendTx */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse { + uint64_t sequence; +} ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse; + +/* MsgUpdateParams defines the payload for Msg/UpdateParams */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams { + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; + /* params defines the 27-interchain-accounts/controller parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + ibc_applications_interchain_accounts_controller_v1_Params params; +} ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response for Msg/UpdateParams */ +typedef struct _ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse { + char dummy_field; +} ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_init_default, 0 \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, ibc_applications_interchain_accounts_controller_v1_Params_init_default } +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_init_zero, 0 \ + } +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_init_zero \ + { 0 } +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, ibc_applications_interchain_accounts_controller_v1_Params_init_zero } +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_owner_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_connection_id_tag 2 +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_version_tag 3 +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_channel_id_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_port_id_tag 2 +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_owner_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_connection_id_tag 2 +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_packet_data_tag 3 +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_relative_timeout_tag 4 +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_sequence_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_signer_tag 1 +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, version, 3) +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 2) +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_CALLBACK \ + pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, owner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet_data, 3) \ + X(a, STATIC, SINGULAR, UINT64, relative_timeout, 4) +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_DEFAULT NULL +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_packet_data_MSGTYPE \ + ibc_applications_interchain_accounts_v1_InterchainAccountPacketData + +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_CALLBACK NULL +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_DEFAULT NULL + +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_DEFAULT NULL +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_params_MSGTYPE \ + ibc_applications_interchain_accounts_controller_v1_Params + +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgSendTx_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_msg +#define ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_msg +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTx_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgSendTx_msg +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_msg +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_msg +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_fields \ + &ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccount_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_controller_v1_MsgRegisterInterchainAccountResponse_size depends on runtime parameters + */ +/* ibc_applications_interchain_accounts_controller_v1_MsgSendTx_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_controller_v1_MsgUpdateParams_size depends on runtime parameters */ +#define IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_CONTROLLER_V1_TX_PB_H_MAX_SIZE \ + ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_size +#define ibc_applications_interchain_accounts_controller_v1_MsgSendTxResponse_size 11 +#define ibc_applications_interchain_accounts_controller_v1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.c new file mode 100644 index 0000000..e178546 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.c @@ -0,0 +1,22 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/genesis/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_genesis_v1_GenesisState, + ibc_applications_interchain_accounts_genesis_v1_GenesisState, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState, + ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_genesis_v1_HostGenesisState, + ibc_applications_interchain_accounts_genesis_v1_HostGenesisState, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_genesis_v1_ActiveChannel, + ibc_applications_interchain_accounts_genesis_v1_ActiveChannel, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount, + ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.h new file mode 100644 index 0000000..2e557f1 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/genesis/v1/genesis.pb.h @@ -0,0 +1,206 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_GENESIS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_GENESIS_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_GENESIS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_GENESIS_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/interchain_accounts/controller/v1/controller.pb.h" +#include "ibc/applications/interchain_accounts/host/v1/host.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ControllerGenesisState defines the interchain accounts controller genesis state */ +typedef struct _ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState { + pb_callback_t active_channels; + pb_callback_t interchain_accounts; + pb_callback_t ports; + bool has_params; + ibc_applications_interchain_accounts_controller_v1_Params params; +} ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState; + +/* HostGenesisState defines the interchain accounts host genesis state */ +typedef struct _ibc_applications_interchain_accounts_genesis_v1_HostGenesisState { + pb_callback_t active_channels; + pb_callback_t interchain_accounts; + pb_callback_t port; + bool has_params; + ibc_applications_interchain_accounts_host_v1_Params params; +} ibc_applications_interchain_accounts_genesis_v1_HostGenesisState; + +/* GenesisState defines the interchain accounts genesis state */ +typedef struct _ibc_applications_interchain_accounts_genesis_v1_GenesisState { + bool has_controller_genesis_state; + ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState controller_genesis_state; + bool has_host_genesis_state; + ibc_applications_interchain_accounts_genesis_v1_HostGenesisState host_genesis_state; +} ibc_applications_interchain_accounts_genesis_v1_GenesisState; + +/* ActiveChannel contains a connection ID, port ID and associated active channel ID, as well as a boolean flag to + indicate if the channel is middleware enabled */ +typedef struct _ibc_applications_interchain_accounts_genesis_v1_ActiveChannel { + pb_callback_t connection_id; + pb_callback_t port_id; + pb_callback_t channel_id; + bool is_middleware_enabled; +} ibc_applications_interchain_accounts_genesis_v1_ActiveChannel; + +/* RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address */ +typedef struct _ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount { + pb_callback_t connection_id; + pb_callback_t port_id; + pb_callback_t account_address; +} ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_init_default \ + { \ + false, ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_init_default, false, \ + ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_init_default \ + } +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_applications_interchain_accounts_controller_v1_Params_init_default \ + } +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_applications_interchain_accounts_host_v1_Params_init_default \ + } +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_init_zero \ + { \ + false, ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_init_zero, false, \ + ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_init_zero \ + } +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_applications_interchain_accounts_controller_v1_Params_init_zero \ + } +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_applications_interchain_accounts_host_v1_Params_init_zero } +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_active_channels_tag 1 +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_interchain_accounts_tag 2 +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_ports_tag 3 +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_params_tag 4 +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_active_channels_tag 1 +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_interchain_accounts_tag 2 +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_port_tag 3 +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_params_tag 4 +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_controller_genesis_state_tag 1 +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_host_genesis_state_tag 2 +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_connection_id_tag 1 +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_port_id_tag 2 +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_channel_id_tag 3 +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_is_middleware_enabled_tag 4 +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_connection_id_tag 1 +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_port_id_tag 2 +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_account_address_tag 3 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, controller_genesis_state, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, host_genesis_state, 2) +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_CALLBACK NULL +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_DEFAULT NULL +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_controller_genesis_state_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_host_genesis_state_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_HostGenesisState + +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, active_channels, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, interchain_accounts, 2) \ + X(a, CALLBACK, REPEATED, STRING, ports, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 4) +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_DEFAULT NULL +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_active_channels_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_ActiveChannel +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_interchain_accounts_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_params_MSGTYPE \ + ibc_applications_interchain_accounts_controller_v1_Params + +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, active_channels, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, interchain_accounts, 2) \ + X(a, CALLBACK, SINGULAR, STRING, port, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 4) +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_DEFAULT NULL +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_active_channels_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_ActiveChannel +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_interchain_accounts_MSGTYPE \ + ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_params_MSGTYPE \ + ibc_applications_interchain_accounts_host_v1_Params + +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 3) \ + X(a, STATIC, SINGULAR, BOOL, is_middleware_enabled, 4) +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_DEFAULT NULL + +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, account_address, 3) +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_genesis_v1_GenesisState_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_genesis_v1_GenesisState_fields \ + &ibc_applications_interchain_accounts_genesis_v1_GenesisState_msg +#define ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_fields \ + &ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_msg +#define ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_fields \ + &ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_msg +#define ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_fields \ + &ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_msg +#define ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_fields \ + &ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_genesis_v1_GenesisState_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_genesis_v1_ControllerGenesisState_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_genesis_v1_HostGenesisState_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_genesis_v1_ActiveChannel_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_genesis_v1_RegisteredInterchainAccount_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.c new file mode 100644 index 0000000..870d484 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/host/v1/host.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_host_v1_Params, ibc_applications_interchain_accounts_host_v1_Params, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.h new file mode 100644 index 0000000..fd005fd --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/host.pb.h @@ -0,0 +1,59 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_HOST_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_HOST_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Params defines the set of on-chain interchain accounts parameters. + The following parameters may be used to disable the host submodule. */ +typedef struct _ibc_applications_interchain_accounts_host_v1_Params { + /* host_enabled enables or disables the host submodule. */ + bool host_enabled; + /* allow_messages defines a list of sdk message typeURLs allowed to be executed on a host chain. */ + pb_callback_t allow_messages; +} ibc_applications_interchain_accounts_host_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_host_v1_Params_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_host_v1_Params_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_host_v1_Params_host_enabled_tag 1 +#define ibc_applications_interchain_accounts_host_v1_Params_allow_messages_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_host_v1_Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, host_enabled, 1) \ + X(a, CALLBACK, REPEATED, STRING, allow_messages, 2) +#define ibc_applications_interchain_accounts_host_v1_Params_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_host_v1_Params_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_host_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_host_v1_Params_fields &ibc_applications_interchain_accounts_host_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_host_v1_Params_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.c new file mode 100644 index 0000000..9af4f17 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/host/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_host_v1_QueryParamsRequest, + ibc_applications_interchain_accounts_host_v1_QueryParamsRequest, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_host_v1_QueryParamsResponse, + ibc_applications_interchain_accounts_host_v1_QueryParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.h new file mode 100644 index 0000000..9fa3da0 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/query.pb.h @@ -0,0 +1,80 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_QUERY_PB_H_INCLUDED +#include + +#include "google/api/annotations.pb.h" +#include "ibc/applications/interchain_accounts/host/v1/host.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _ibc_applications_interchain_accounts_host_v1_QueryParamsRequest { + char dummy_field; +} ibc_applications_interchain_accounts_host_v1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _ibc_applications_interchain_accounts_host_v1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + ibc_applications_interchain_accounts_host_v1_Params params; +} ibc_applications_interchain_accounts_host_v1_QueryParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_init_default \ + { false, ibc_applications_interchain_accounts_host_v1_Params_init_default } +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_init_zero \ + { 0 } +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_init_zero \ + { false, ibc_applications_interchain_accounts_host_v1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_FIELDLIST(X, a) + +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_CALLBACK NULL +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_DEFAULT NULL + +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_CALLBACK NULL +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_DEFAULT NULL +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_params_MSGTYPE \ + ibc_applications_interchain_accounts_host_v1_Params + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_fields \ + &ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_msg +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_fields \ + &ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +#define ibc_applications_interchain_accounts_host_v1_QueryParamsRequest_size 0 +#if defined(ibc_applications_interchain_accounts_host_v1_Params_size) +#define IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_QUERY_PB_H_MAX_SIZE \ + ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_size +#define ibc_applications_interchain_accounts_host_v1_QueryParamsResponse_size \ + (6 + ibc_applications_interchain_accounts_host_v1_Params_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.c new file mode 100644 index 0000000..187c241 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/host/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_host_v1_MsgUpdateParams, + ibc_applications_interchain_accounts_host_v1_MsgUpdateParams, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse, + ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.h new file mode 100644 index 0000000..d7985d3 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/host/v1/tx.pb.h @@ -0,0 +1,82 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_TX_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_HOST_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/interchain_accounts/host/v1/host.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgUpdateParams defines the payload for Msg/UpdateParams */ +typedef struct _ibc_applications_interchain_accounts_host_v1_MsgUpdateParams { + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; + /* params defines the 27-interchain-accounts/host parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + ibc_applications_interchain_accounts_host_v1_Params params; +} ibc_applications_interchain_accounts_host_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response for Msg/UpdateParams */ +typedef struct _ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse { + char dummy_field; +} ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, ibc_applications_interchain_accounts_host_v1_Params_init_default } +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, ibc_applications_interchain_accounts_host_v1_Params_init_zero } +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_signer_tag 1 +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_DEFAULT NULL +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_params_MSGTYPE \ + ibc_applications_interchain_accounts_host_v1_Params + +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_fields \ + &ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_msg +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_fields \ + &ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_host_v1_MsgUpdateParams_size depends on runtime parameters */ +#define ibc_applications_interchain_accounts_host_v1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.c new file mode 100644 index 0000000..359b632 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.c @@ -0,0 +1,10 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/v1/account.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_v1_InterchainAccount, ibc_applications_interchain_accounts_v1_InterchainAccount, + AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.h new file mode 100644 index 0000000..c08e9c1 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/account.pb.h @@ -0,0 +1,63 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_ACCOUNT_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_ACCOUNT_PB_H_INCLUDED +#include + +#include "cosmos/auth/v1beta1/auth.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain */ +typedef struct _ibc_applications_interchain_accounts_v1_InterchainAccount { + bool has_base_account; + cosmos_auth_v1beta1_BaseAccount base_account; + pb_callback_t account_owner; +} ibc_applications_interchain_accounts_v1_InterchainAccount; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_v1_InterchainAccount_init_default \ + { \ + false, cosmos_auth_v1beta1_BaseAccount_init_default, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_v1_InterchainAccount_init_zero \ + { \ + false, cosmos_auth_v1beta1_BaseAccount_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_v1_InterchainAccount_base_account_tag 1 +#define ibc_applications_interchain_accounts_v1_InterchainAccount_account_owner_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_v1_InterchainAccount_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_account, 1) \ + X(a, CALLBACK, SINGULAR, STRING, account_owner, 2) +#define ibc_applications_interchain_accounts_v1_InterchainAccount_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_v1_InterchainAccount_DEFAULT NULL +#define ibc_applications_interchain_accounts_v1_InterchainAccount_base_account_MSGTYPE cosmos_auth_v1beta1_BaseAccount + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_v1_InterchainAccount_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_v1_InterchainAccount_fields \ + &ibc_applications_interchain_accounts_v1_InterchainAccount_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_v1_InterchainAccount_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.c new file mode 100644 index 0000000..66e2096 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/v1/metadata.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_v1_Metadata, ibc_applications_interchain_accounts_v1_Metadata, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.h new file mode 100644 index 0000000..7994df0 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/metadata.pb.h @@ -0,0 +1,76 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_METADATA_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_METADATA_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring + See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning */ +typedef struct _ibc_applications_interchain_accounts_v1_Metadata { + /* version defines the ICS27 protocol version */ + pb_callback_t version; + /* controller_connection_id is the connection identifier associated with the controller chain */ + pb_callback_t controller_connection_id; + /* host_connection_id is the connection identifier associated with the host chain */ + pb_callback_t host_connection_id; + /* address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step + NOTE: the address field is empty on the OnChanOpenInit handshake step */ + pb_callback_t address; + /* encoding defines the supported codec format */ + pb_callback_t encoding; + /* tx_type defines the type of transactions the interchain account can execute */ + pb_callback_t tx_type; +} ibc_applications_interchain_accounts_v1_Metadata; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_v1_Metadata_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_v1_Metadata_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_v1_Metadata_version_tag 1 +#define ibc_applications_interchain_accounts_v1_Metadata_controller_connection_id_tag 2 +#define ibc_applications_interchain_accounts_v1_Metadata_host_connection_id_tag 3 +#define ibc_applications_interchain_accounts_v1_Metadata_address_tag 4 +#define ibc_applications_interchain_accounts_v1_Metadata_encoding_tag 5 +#define ibc_applications_interchain_accounts_v1_Metadata_tx_type_tag 6 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_v1_Metadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, controller_connection_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, host_connection_id, 3) \ + X(a, CALLBACK, SINGULAR, STRING, address, 4) \ + X(a, CALLBACK, SINGULAR, STRING, encoding, 5) \ + X(a, CALLBACK, SINGULAR, STRING, tx_type, 6) +#define ibc_applications_interchain_accounts_v1_Metadata_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_v1_Metadata_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_v1_Metadata_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_v1_Metadata_fields &ibc_applications_interchain_accounts_v1_Metadata_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_v1_Metadata_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.c b/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.c new file mode 100644 index 0000000..038c869 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.c @@ -0,0 +1,12 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/interchain_accounts/v1/packet.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_interchain_accounts_v1_InterchainAccountPacketData, + ibc_applications_interchain_accounts_v1_InterchainAccountPacketData, AUTO) + +PB_BIND(ibc_applications_interchain_accounts_v1_CosmosTx, ibc_applications_interchain_accounts_v1_CosmosTx, AUTO) diff --git a/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.h b/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.h new file mode 100644 index 0000000..81edb26 --- /dev/null +++ b/app/src/protobuf/ibc/applications/interchain_accounts/v1/packet.pb.h @@ -0,0 +1,104 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_PACKET_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_IBC_APPLICATIONS_INTERCHAIN_ACCOUNTS_V1_PACKET_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* Type defines a classification of message issued from a controller chain to its associated interchain accounts + host */ +typedef enum _ibc_applications_interchain_accounts_v1_Type { + /* Default zero value enumeration */ + ibc_applications_interchain_accounts_v1_Type_TYPE_UNSPECIFIED = 0, + /* Execute a transaction on an interchain accounts host chain */ + ibc_applications_interchain_accounts_v1_Type_TYPE_EXECUTE_TX = 1 +} ibc_applications_interchain_accounts_v1_Type; + +/* Struct definitions */ +/* InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. */ +typedef struct _ibc_applications_interchain_accounts_v1_InterchainAccountPacketData { + ibc_applications_interchain_accounts_v1_Type type; + pb_callback_t data; + pb_callback_t memo; +} ibc_applications_interchain_accounts_v1_InterchainAccountPacketData; + +/* CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. */ +typedef struct _ibc_applications_interchain_accounts_v1_CosmosTx { + pb_callback_t messages; +} ibc_applications_interchain_accounts_v1_CosmosTx; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _ibc_applications_interchain_accounts_v1_Type_MIN ibc_applications_interchain_accounts_v1_Type_TYPE_UNSPECIFIED +#define _ibc_applications_interchain_accounts_v1_Type_MAX ibc_applications_interchain_accounts_v1_Type_TYPE_EXECUTE_TX +#define _ibc_applications_interchain_accounts_v1_Type_ARRAYSIZE \ + ((ibc_applications_interchain_accounts_v1_Type)(ibc_applications_interchain_accounts_v1_Type_TYPE_EXECUTE_TX + 1)) + +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_type_ENUMTYPE \ + ibc_applications_interchain_accounts_v1_Type + +/* Initializer values for message structs */ +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_init_default \ + { \ + _ibc_applications_interchain_accounts_v1_Type_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_v1_CosmosTx_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_init_zero \ + { \ + _ibc_applications_interchain_accounts_v1_Type_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_interchain_accounts_v1_CosmosTx_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_type_tag 1 +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_data_tag 2 +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_memo_tag 3 +#define ibc_applications_interchain_accounts_v1_CosmosTx_messages_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, type, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, CALLBACK, SINGULAR, STRING, memo, 3) +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_DEFAULT NULL + +#define ibc_applications_interchain_accounts_v1_CosmosTx_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, messages, 1) +#define ibc_applications_interchain_accounts_v1_CosmosTx_CALLBACK pb_default_field_callback +#define ibc_applications_interchain_accounts_v1_CosmosTx_DEFAULT NULL +#define ibc_applications_interchain_accounts_v1_CosmosTx_messages_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_msg; +extern const pb_msgdesc_t ibc_applications_interchain_accounts_v1_CosmosTx_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_fields \ + &ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_msg +#define ibc_applications_interchain_accounts_v1_CosmosTx_fields &ibc_applications_interchain_accounts_v1_CosmosTx_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_interchain_accounts_v1_InterchainAccountPacketData_size depends on runtime parameters */ +/* ibc_applications_interchain_accounts_v1_CosmosTx_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.c b/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.c new file mode 100644 index 0000000..7009eab --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v1/authz.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v1_Allocation, ibc_applications_transfer_v1_Allocation, AUTO) + +PB_BIND(ibc_applications_transfer_v1_TransferAuthorization, ibc_applications_transfer_v1_TransferAuthorization, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.h b/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.h new file mode 100644 index 0000000..0c6343b --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/authz.pb.h @@ -0,0 +1,95 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_AUTHZ_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_AUTHZ_PB_H_INCLUDED +#include + +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos_proto/cosmos.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Allocation defines the spend limit for a particular port and channel */ +typedef struct _ibc_applications_transfer_v1_Allocation { + /* the port on which the packet will be sent */ + pb_callback_t source_port; + /* the channel by which the packet will be sent */ + pb_callback_t source_channel; + /* spend limitation on the channel */ + pb_callback_t spend_limit; + /* allow list of receivers, an empty allow list permits any receiver address */ + pb_callback_t allow_list; +} ibc_applications_transfer_v1_Allocation; + +/* TransferAuthorization allows the grantee to spend up to spend_limit coins from + the granter's account for ibc transfer on a specific channel */ +typedef struct _ibc_applications_transfer_v1_TransferAuthorization { + /* port and channel amounts */ + pb_callback_t allocations; +} ibc_applications_transfer_v1_TransferAuthorization; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v1_Allocation_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_TransferAuthorization_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_Allocation_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_TransferAuthorization_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v1_Allocation_source_port_tag 1 +#define ibc_applications_transfer_v1_Allocation_source_channel_tag 2 +#define ibc_applications_transfer_v1_Allocation_spend_limit_tag 3 +#define ibc_applications_transfer_v1_Allocation_allow_list_tag 4 +#define ibc_applications_transfer_v1_TransferAuthorization_allocations_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v1_Allocation_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, source_port, 1) \ + X(a, CALLBACK, SINGULAR, STRING, source_channel, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, spend_limit, 3) \ + X(a, CALLBACK, REPEATED, STRING, allow_list, 4) +#define ibc_applications_transfer_v1_Allocation_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_Allocation_DEFAULT NULL +#define ibc_applications_transfer_v1_Allocation_spend_limit_MSGTYPE cosmos_base_v1beta1_Coin + +#define ibc_applications_transfer_v1_TransferAuthorization_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, allocations, 1) +#define ibc_applications_transfer_v1_TransferAuthorization_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_TransferAuthorization_DEFAULT NULL +#define ibc_applications_transfer_v1_TransferAuthorization_allocations_MSGTYPE ibc_applications_transfer_v1_Allocation + +extern const pb_msgdesc_t ibc_applications_transfer_v1_Allocation_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_TransferAuthorization_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v1_Allocation_fields &ibc_applications_transfer_v1_Allocation_msg +#define ibc_applications_transfer_v1_TransferAuthorization_fields &ibc_applications_transfer_v1_TransferAuthorization_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v1_Allocation_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_TransferAuthorization_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.c b/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.c new file mode 100644 index 0000000..9445f4a --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v1_GenesisState, ibc_applications_transfer_v1_GenesisState, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.h b/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.h new file mode 100644 index 0000000..35fc3de --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/genesis.pb.h @@ -0,0 +1,72 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_GENESIS_PB_H_INCLUDED +#include + +#include "cosmos/base/v1beta1/coin.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/transfer/v1/transfer.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ibc-transfer genesis state */ +typedef struct _ibc_applications_transfer_v1_GenesisState { + pb_callback_t port_id; + pb_callback_t denom_traces; + bool has_params; + ibc_applications_transfer_v1_Params params; + /* total_escrowed contains the total amount of tokens escrowed + by the transfer module */ + pb_callback_t total_escrowed; +} ibc_applications_transfer_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v1_GenesisState_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_applications_transfer_v1_Params_init_default, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_GenesisState_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_applications_transfer_v1_Params_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v1_GenesisState_port_id_tag 1 +#define ibc_applications_transfer_v1_GenesisState_denom_traces_tag 2 +#define ibc_applications_transfer_v1_GenesisState_params_tag 3 +#define ibc_applications_transfer_v1_GenesisState_total_escrowed_tag 4 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_traces, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, total_escrowed, 4) +#define ibc_applications_transfer_v1_GenesisState_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_GenesisState_DEFAULT NULL +#define ibc_applications_transfer_v1_GenesisState_denom_traces_MSGTYPE ibc_applications_transfer_v1_DenomTrace +#define ibc_applications_transfer_v1_GenesisState_params_MSGTYPE ibc_applications_transfer_v1_Params +#define ibc_applications_transfer_v1_GenesisState_total_escrowed_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t ibc_applications_transfer_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v1_GenesisState_fields &ibc_applications_transfer_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v1/query.pb.c b/app/src/protobuf/ibc/applications/transfer/v1/query.pb.c new file mode 100644 index 0000000..adb9278 --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/query.pb.c @@ -0,0 +1,34 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v1_QueryDenomTraceRequest, ibc_applications_transfer_v1_QueryDenomTraceRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryDenomTraceResponse, ibc_applications_transfer_v1_QueryDenomTraceResponse, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryDenomTracesRequest, ibc_applications_transfer_v1_QueryDenomTracesRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryDenomTracesResponse, ibc_applications_transfer_v1_QueryDenomTracesResponse, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryParamsRequest, ibc_applications_transfer_v1_QueryParamsRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryParamsResponse, ibc_applications_transfer_v1_QueryParamsResponse, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryDenomHashRequest, ibc_applications_transfer_v1_QueryDenomHashRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryDenomHashResponse, ibc_applications_transfer_v1_QueryDenomHashResponse, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryEscrowAddressRequest, ibc_applications_transfer_v1_QueryEscrowAddressRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryEscrowAddressResponse, ibc_applications_transfer_v1_QueryEscrowAddressResponse, + AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest, + ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest, AUTO) + +PB_BIND(ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse, + ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v1/query.pb.h b/app/src/protobuf/ibc/applications/transfer/v1/query.pb.h new file mode 100644 index 0000000..6ec16e5 --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/query.pb.h @@ -0,0 +1,317 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "ibc/applications/transfer/v1/transfer.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC + method */ +typedef struct _ibc_applications_transfer_v1_QueryDenomTraceRequest { + /* hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information. */ + pb_callback_t hash; +} ibc_applications_transfer_v1_QueryDenomTraceRequest; + +/* QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC + method. */ +typedef struct _ibc_applications_transfer_v1_QueryDenomTraceResponse { + /* denom_trace returns the requested denomination trace information. */ + bool has_denom_trace; + ibc_applications_transfer_v1_DenomTrace denom_trace; +} ibc_applications_transfer_v1_QueryDenomTraceResponse; + +/* QueryConnectionsRequest is the request type for the Query/DenomTraces RPC + method */ +typedef struct _ibc_applications_transfer_v1_QueryDenomTracesRequest { + /* pagination defines an optional pagination for the request. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_applications_transfer_v1_QueryDenomTracesRequest; + +/* QueryConnectionsResponse is the response type for the Query/DenomTraces RPC + method. */ +typedef struct _ibc_applications_transfer_v1_QueryDenomTracesResponse { + /* denom_traces returns all denominations trace information. */ + pb_callback_t denom_traces; + /* pagination defines the pagination in the response. */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_applications_transfer_v1_QueryDenomTracesResponse; + +/* QueryParamsRequest is the request type for the Query/Params RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryParamsRequest { + char dummy_field; +} ibc_applications_transfer_v1_QueryParamsRequest; + +/* QueryParamsResponse is the response type for the Query/Params RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + ibc_applications_transfer_v1_Params params; +} ibc_applications_transfer_v1_QueryParamsResponse; + +/* QueryDenomHashRequest is the request type for the Query/DenomHash RPC + method */ +typedef struct _ibc_applications_transfer_v1_QueryDenomHashRequest { + /* The denomination trace ([port_id]/[channel_id])+/[denom] */ + pb_callback_t trace; +} ibc_applications_transfer_v1_QueryDenomHashRequest; + +/* QueryDenomHashResponse is the response type for the Query/DenomHash RPC + method. */ +typedef struct _ibc_applications_transfer_v1_QueryDenomHashResponse { + /* hash (in hex format) of the denomination trace information. */ + pb_callback_t hash; +} ibc_applications_transfer_v1_QueryDenomHashResponse; + +/* QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryEscrowAddressRequest { + /* unique port identifier */ + pb_callback_t port_id; + /* unique channel identifier */ + pb_callback_t channel_id; +} ibc_applications_transfer_v1_QueryEscrowAddressRequest; + +/* QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryEscrowAddressResponse { + /* the escrow account address */ + pb_callback_t escrow_address; +} ibc_applications_transfer_v1_QueryEscrowAddressResponse; + +/* QueryTotalEscrowForDenomRequest is the request type for TotalEscrowForDenom RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest { + pb_callback_t denom; +} ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest; + +/* QueryTotalEscrowForDenomResponse is the response type for TotalEscrowForDenom RPC method. */ +typedef struct _ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse { + bool has_amount; + cosmos_base_v1beta1_Coin amount; +} ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_init_default \ + { false, ibc_applications_transfer_v1_DenomTrace_init_default } +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_applications_transfer_v1_QueryParamsRequest_init_default \ + { 0 } +#define ibc_applications_transfer_v1_QueryParamsResponse_init_default \ + { false, ibc_applications_transfer_v1_Params_init_default } +#define ibc_applications_transfer_v1_QueryDenomHashRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryDenomHashResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_init_default \ + { false, cosmos_base_v1beta1_Coin_init_default } +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_init_zero \ + { false, ibc_applications_transfer_v1_DenomTrace_init_zero } +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_applications_transfer_v1_QueryParamsRequest_init_zero \ + { 0 } +#define ibc_applications_transfer_v1_QueryParamsResponse_init_zero \ + { false, ibc_applications_transfer_v1_Params_init_zero } +#define ibc_applications_transfer_v1_QueryDenomHashRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryDenomHashResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_init_zero \ + { false, cosmos_base_v1beta1_Coin_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_hash_tag 1 +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_denom_trace_tag 1 +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_pagination_tag 1 +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_denom_traces_tag 1 +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_pagination_tag 2 +#define ibc_applications_transfer_v1_QueryParamsResponse_params_tag 1 +#define ibc_applications_transfer_v1_QueryDenomHashRequest_trace_tag 1 +#define ibc_applications_transfer_v1_QueryDenomHashResponse_hash_tag 1 +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_port_id_tag 1 +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_channel_id_tag 2 +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_escrow_address_tag 1 +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_denom_tag 1 +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_amount_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, hash, 1) +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, denom_trace, 1) +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_CALLBACK NULL +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_DEFAULT NULL +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_denom_trace_MSGTYPE ibc_applications_transfer_v1_DenomTrace + +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_CALLBACK NULL +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_DEFAULT NULL +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_traces, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_DEFAULT NULL +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_denom_traces_MSGTYPE ibc_applications_transfer_v1_DenomTrace +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_applications_transfer_v1_QueryParamsRequest_FIELDLIST(X, a) + +#define ibc_applications_transfer_v1_QueryParamsRequest_CALLBACK NULL +#define ibc_applications_transfer_v1_QueryParamsRequest_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define ibc_applications_transfer_v1_QueryParamsResponse_CALLBACK NULL +#define ibc_applications_transfer_v1_QueryParamsResponse_DEFAULT NULL +#define ibc_applications_transfer_v1_QueryParamsResponse_params_MSGTYPE ibc_applications_transfer_v1_Params + +#define ibc_applications_transfer_v1_QueryDenomHashRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, trace, 1) +#define ibc_applications_transfer_v1_QueryDenomHashRequest_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryDenomHashRequest_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryDenomHashResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, hash, 1) +#define ibc_applications_transfer_v1_QueryDenomHashResponse_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryDenomHashResponse_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, escrow_address, 1) +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_DEFAULT NULL + +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_CALLBACK NULL +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_DEFAULT NULL +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_amount_MSGTYPE cosmos_base_v1beta1_Coin + +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomTraceRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomTraceResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomTracesRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomTracesResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryParamsRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryParamsResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomHashRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryDenomHashResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryEscrowAddressRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryEscrowAddressResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v1_QueryDenomTraceRequest_fields &ibc_applications_transfer_v1_QueryDenomTraceRequest_msg +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_fields &ibc_applications_transfer_v1_QueryDenomTraceResponse_msg +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_fields &ibc_applications_transfer_v1_QueryDenomTracesRequest_msg +#define ibc_applications_transfer_v1_QueryDenomTracesResponse_fields \ + &ibc_applications_transfer_v1_QueryDenomTracesResponse_msg +#define ibc_applications_transfer_v1_QueryParamsRequest_fields &ibc_applications_transfer_v1_QueryParamsRequest_msg +#define ibc_applications_transfer_v1_QueryParamsResponse_fields &ibc_applications_transfer_v1_QueryParamsResponse_msg +#define ibc_applications_transfer_v1_QueryDenomHashRequest_fields &ibc_applications_transfer_v1_QueryDenomHashRequest_msg +#define ibc_applications_transfer_v1_QueryDenomHashResponse_fields &ibc_applications_transfer_v1_QueryDenomHashResponse_msg +#define ibc_applications_transfer_v1_QueryEscrowAddressRequest_fields \ + &ibc_applications_transfer_v1_QueryEscrowAddressRequest_msg +#define ibc_applications_transfer_v1_QueryEscrowAddressResponse_fields \ + &ibc_applications_transfer_v1_QueryEscrowAddressResponse_msg +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_fields \ + &ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_msg +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_fields \ + &ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v1_QueryDenomTraceRequest_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryDenomTracesResponse_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryDenomHashRequest_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryDenomHashResponse_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryEscrowAddressRequest_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryEscrowAddressResponse_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_QueryTotalEscrowForDenomRequest_size depends on runtime parameters */ +#if defined(ibc_applications_transfer_v1_DenomTrace_size) +#define IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_QUERY_PB_H_MAX_SIZE \ + ibc_applications_transfer_v1_QueryDenomTraceResponse_size +#define ibc_applications_transfer_v1_QueryDenomTraceResponse_size (6 + ibc_applications_transfer_v1_DenomTrace_size) +#endif +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define ibc_applications_transfer_v1_QueryDenomTracesRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define ibc_applications_transfer_v1_QueryParamsRequest_size 0 +#define ibc_applications_transfer_v1_QueryParamsResponse_size 6 +#if defined(cosmos_base_v1beta1_Coin_size) +#define ibc_applications_transfer_v1_QueryTotalEscrowForDenomResponse_size (6 + cosmos_base_v1beta1_Coin_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.c b/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.c new file mode 100644 index 0000000..1adfac2 --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v1/transfer.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v1_DenomTrace, ibc_applications_transfer_v1_DenomTrace, AUTO) + +PB_BIND(ibc_applications_transfer_v1_Params, ibc_applications_transfer_v1_Params, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.h b/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.h new file mode 100644 index 0000000..67ead3a --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/transfer.pb.h @@ -0,0 +1,90 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TRANSFER_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TRANSFER_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* DenomTrace contains the base denomination for ICS20 fungible tokens and the + source tracing information path. */ +typedef struct _ibc_applications_transfer_v1_DenomTrace { + /* path defines the chain of port/channel identifiers used for tracing the + source of the fungible token. */ + pb_callback_t path; + /* base denomination of the relayed fungible token. */ + pb_callback_t base_denom; +} ibc_applications_transfer_v1_DenomTrace; + +/* Params defines the set of IBC transfer parameters. + NOTE: To prevent a single token from being transferred, set the + TransfersEnabled parameter to true and then set the bank module's SendEnabled + parameter for the denomination to false. */ +typedef struct _ibc_applications_transfer_v1_Params { + /* send_enabled enables or disables all cross-chain token transfers from this + chain. */ + bool send_enabled; + /* receive_enabled enables or disables all cross-chain token transfers to this + chain. */ + bool receive_enabled; +} ibc_applications_transfer_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v1_DenomTrace_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_Params_init_default \ + { 0, 0 } +#define ibc_applications_transfer_v1_DenomTrace_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v1_Params_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v1_DenomTrace_path_tag 1 +#define ibc_applications_transfer_v1_DenomTrace_base_denom_tag 2 +#define ibc_applications_transfer_v1_Params_send_enabled_tag 1 +#define ibc_applications_transfer_v1_Params_receive_enabled_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v1_DenomTrace_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, path, 1) \ + X(a, CALLBACK, SINGULAR, STRING, base_denom, 2) +#define ibc_applications_transfer_v1_DenomTrace_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_DenomTrace_DEFAULT NULL + +#define ibc_applications_transfer_v1_Params_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, send_enabled, 1) \ + X(a, STATIC, SINGULAR, BOOL, receive_enabled, 2) +#define ibc_applications_transfer_v1_Params_CALLBACK NULL +#define ibc_applications_transfer_v1_Params_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_transfer_v1_DenomTrace_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v1_DenomTrace_fields &ibc_applications_transfer_v1_DenomTrace_msg +#define ibc_applications_transfer_v1_Params_fields &ibc_applications_transfer_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v1_DenomTrace_size depends on runtime parameters */ +#define IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TRANSFER_PB_H_MAX_SIZE \ + ibc_applications_transfer_v1_Params_size +#define ibc_applications_transfer_v1_Params_size 4 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.c b/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.c new file mode 100644 index 0000000..572de9a --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v1_MsgTransfer, ibc_applications_transfer_v1_MsgTransfer, AUTO) + +PB_BIND(ibc_applications_transfer_v1_MsgTransferResponse, ibc_applications_transfer_v1_MsgTransferResponse, AUTO) + +PB_BIND(ibc_applications_transfer_v1_MsgUpdateParams, ibc_applications_transfer_v1_MsgUpdateParams, AUTO) + +PB_BIND(ibc_applications_transfer_v1_MsgUpdateParamsResponse, ibc_applications_transfer_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.h b/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.h new file mode 100644 index 0000000..b67f7d4 --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v1/tx.pb.h @@ -0,0 +1,168 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TX_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TX_PB_H_INCLUDED +#include + +#include "amino/amino.pb.h" +#include "cosmos/base/v1beta1/coin.pb.h" +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/applications/transfer/v1/transfer.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between + ICS20 enabled chains. See ICS Spec here: + https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures */ +typedef struct _ibc_applications_transfer_v1_MsgTransfer { + /* the port on which the packet will be sent */ + pb_callback_t source_port; + /* the channel by which the packet will be sent */ + pb_callback_t source_channel; + /* the tokens to be transferred */ + bool has_token; + cosmos_base_v1beta1_Coin token; + /* the sender address */ + pb_callback_t sender; + /* the recipient address on the destination chain */ + pb_callback_t receiver; + /* Timeout height relative to the current block height. + The timeout is disabled when set to 0. */ + bool has_timeout_height; + ibc_core_client_v1_Height timeout_height; + /* Timeout timestamp in absolute nanoseconds since unix epoch. + The timeout is disabled when set to 0. */ + uint64_t timeout_timestamp; + /* optional memo */ + pb_callback_t memo; +} ibc_applications_transfer_v1_MsgTransfer; + +/* MsgTransferResponse defines the Msg/Transfer response type. */ +typedef struct _ibc_applications_transfer_v1_MsgTransferResponse { + /* sequence number of the transfer packet sent */ + uint64_t sequence; +} ibc_applications_transfer_v1_MsgTransferResponse; + +/* MsgUpdateParams is the Msg/UpdateParams request type. */ +typedef struct _ibc_applications_transfer_v1_MsgUpdateParams { + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; + /* params defines the transfer parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + ibc_applications_transfer_v1_Params params; +} ibc_applications_transfer_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the response structure for executing a + MsgUpdateParams message. */ +typedef struct _ibc_applications_transfer_v1_MsgUpdateParamsResponse { + char dummy_field; +} ibc_applications_transfer_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v1_MsgTransfer_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_default, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, ibc_core_client_v1_Height_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_applications_transfer_v1_MsgTransferResponse_init_default \ + { 0 } +#define ibc_applications_transfer_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, ibc_applications_transfer_v1_Params_init_default } +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define ibc_applications_transfer_v1_MsgTransfer_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_v1beta1_Coin_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_applications_transfer_v1_MsgTransferResponse_init_zero \ + { 0 } +#define ibc_applications_transfer_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, ibc_applications_transfer_v1_Params_init_zero } +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v1_MsgTransfer_source_port_tag 1 +#define ibc_applications_transfer_v1_MsgTransfer_source_channel_tag 2 +#define ibc_applications_transfer_v1_MsgTransfer_token_tag 3 +#define ibc_applications_transfer_v1_MsgTransfer_sender_tag 4 +#define ibc_applications_transfer_v1_MsgTransfer_receiver_tag 5 +#define ibc_applications_transfer_v1_MsgTransfer_timeout_height_tag 6 +#define ibc_applications_transfer_v1_MsgTransfer_timeout_timestamp_tag 7 +#define ibc_applications_transfer_v1_MsgTransfer_memo_tag 8 +#define ibc_applications_transfer_v1_MsgTransferResponse_sequence_tag 1 +#define ibc_applications_transfer_v1_MsgUpdateParams_signer_tag 1 +#define ibc_applications_transfer_v1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v1_MsgTransfer_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, source_port, 1) \ + X(a, CALLBACK, SINGULAR, STRING, source_channel, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, token, 3) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 4) \ + X(a, CALLBACK, SINGULAR, STRING, receiver, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, timeout_height, 6) \ + X(a, STATIC, SINGULAR, UINT64, timeout_timestamp, 7) \ + X(a, CALLBACK, SINGULAR, STRING, memo, 8) +#define ibc_applications_transfer_v1_MsgTransfer_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_MsgTransfer_DEFAULT NULL +#define ibc_applications_transfer_v1_MsgTransfer_token_MSGTYPE cosmos_base_v1beta1_Coin +#define ibc_applications_transfer_v1_MsgTransfer_timeout_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_applications_transfer_v1_MsgTransferResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, sequence, 1) +#define ibc_applications_transfer_v1_MsgTransferResponse_CALLBACK NULL +#define ibc_applications_transfer_v1_MsgTransferResponse_DEFAULT NULL + +#define ibc_applications_transfer_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define ibc_applications_transfer_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v1_MsgUpdateParams_DEFAULT NULL +#define ibc_applications_transfer_v1_MsgUpdateParams_params_MSGTYPE ibc_applications_transfer_v1_Params + +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_transfer_v1_MsgTransfer_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_MsgTransferResponse_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t ibc_applications_transfer_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v1_MsgTransfer_fields &ibc_applications_transfer_v1_MsgTransfer_msg +#define ibc_applications_transfer_v1_MsgTransferResponse_fields &ibc_applications_transfer_v1_MsgTransferResponse_msg +#define ibc_applications_transfer_v1_MsgUpdateParams_fields &ibc_applications_transfer_v1_MsgUpdateParams_msg +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_fields &ibc_applications_transfer_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v1_MsgTransfer_size depends on runtime parameters */ +/* ibc_applications_transfer_v1_MsgUpdateParams_size depends on runtime parameters */ +#define IBC_APPLICATIONS_TRANSFER_V1_IBC_APPLICATIONS_TRANSFER_V1_TX_PB_H_MAX_SIZE \ + ibc_applications_transfer_v1_MsgTransferResponse_size +#define ibc_applications_transfer_v1_MsgTransferResponse_size 11 +#define ibc_applications_transfer_v1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.c b/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.c new file mode 100644 index 0000000..f7a8f03 --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/applications/transfer/v2/packet.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_applications_transfer_v2_FungibleTokenPacketData, ibc_applications_transfer_v2_FungibleTokenPacketData, AUTO) diff --git a/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.h b/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.h new file mode 100644 index 0000000..640c76f --- /dev/null +++ b/app/src/protobuf/ibc/applications/transfer/v2/packet.pb.h @@ -0,0 +1,72 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_APPLICATIONS_TRANSFER_V2_IBC_APPLICATIONS_TRANSFER_V2_PACKET_PB_H_INCLUDED +#define PB_IBC_APPLICATIONS_TRANSFER_V2_IBC_APPLICATIONS_TRANSFER_V2_PACKET_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* FungibleTokenPacketData defines a struct for the packet payload + See FungibleTokenPacketData spec: + https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures */ +typedef struct _ibc_applications_transfer_v2_FungibleTokenPacketData { + /* the token denomination to be transferred */ + pb_callback_t denom; + /* the token amount to be transferred */ + pb_callback_t amount; + /* the sender address */ + pb_callback_t sender; + /* the recipient address on the destination chain */ + pb_callback_t receiver; + /* optional memo */ + pb_callback_t memo; +} ibc_applications_transfer_v2_FungibleTokenPacketData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_applications_transfer_v2_FungibleTokenPacketData_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_applications_transfer_v2_FungibleTokenPacketData_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_applications_transfer_v2_FungibleTokenPacketData_denom_tag 1 +#define ibc_applications_transfer_v2_FungibleTokenPacketData_amount_tag 2 +#define ibc_applications_transfer_v2_FungibleTokenPacketData_sender_tag 3 +#define ibc_applications_transfer_v2_FungibleTokenPacketData_receiver_tag 4 +#define ibc_applications_transfer_v2_FungibleTokenPacketData_memo_tag 5 + +/* Struct field encoding specification for nanopb */ +#define ibc_applications_transfer_v2_FungibleTokenPacketData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, CALLBACK, SINGULAR, STRING, amount, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) \ + X(a, CALLBACK, SINGULAR, STRING, receiver, 4) \ + X(a, CALLBACK, SINGULAR, STRING, memo, 5) +#define ibc_applications_transfer_v2_FungibleTokenPacketData_CALLBACK pb_default_field_callback +#define ibc_applications_transfer_v2_FungibleTokenPacketData_DEFAULT NULL + +extern const pb_msgdesc_t ibc_applications_transfer_v2_FungibleTokenPacketData_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_applications_transfer_v2_FungibleTokenPacketData_fields &ibc_applications_transfer_v2_FungibleTokenPacketData_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_applications_transfer_v2_FungibleTokenPacketData_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/channel/v1/channel.pb.c b/app/src/protobuf/ibc/core/channel/v1/channel.pb.c new file mode 100644 index 0000000..dcbcd4e --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/channel.pb.c @@ -0,0 +1,23 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/channel/v1/channel.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_channel_v1_Channel, ibc_core_channel_v1_Channel, AUTO) + +PB_BIND(ibc_core_channel_v1_IdentifiedChannel, ibc_core_channel_v1_IdentifiedChannel, AUTO) + +PB_BIND(ibc_core_channel_v1_Counterparty, ibc_core_channel_v1_Counterparty, AUTO) + +PB_BIND(ibc_core_channel_v1_Packet, ibc_core_channel_v1_Packet, AUTO) + +PB_BIND(ibc_core_channel_v1_PacketState, ibc_core_channel_v1_PacketState, AUTO) + +PB_BIND(ibc_core_channel_v1_PacketId, ibc_core_channel_v1_PacketId, AUTO) + +PB_BIND(ibc_core_channel_v1_Acknowledgement, ibc_core_channel_v1_Acknowledgement, AUTO) + +PB_BIND(ibc_core_channel_v1_Timeout, ibc_core_channel_v1_Timeout, AUTO) diff --git a/app/src/protobuf/ibc/core/channel/v1/channel.pb.h b/app/src/protobuf/ibc/core/channel/v1/channel.pb.h new file mode 100644 index 0000000..20f1ffa --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/channel.pb.h @@ -0,0 +1,402 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_CHANNEL_PB_H_INCLUDED +#define PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_CHANNEL_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* State defines if a channel is in one of the following states: + CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. */ +typedef enum _ibc_core_channel_v1_State { + /* Default State */ + ibc_core_channel_v1_State_STATE_UNINITIALIZED_UNSPECIFIED = 0, + /* A channel has just started the opening handshake. */ + ibc_core_channel_v1_State_STATE_INIT = 1, + /* A channel has acknowledged the handshake step on the counterparty chain. */ + ibc_core_channel_v1_State_STATE_TRYOPEN = 2, + /* A channel has completed the handshake. Open channels are + ready to send and receive packets. */ + ibc_core_channel_v1_State_STATE_OPEN = 3, + /* A channel has been closed and can no longer be used to send or receive + packets. */ + ibc_core_channel_v1_State_STATE_CLOSED = 4 +} ibc_core_channel_v1_State; + +/* Order defines if a channel is ORDERED or UNORDERED */ +typedef enum _ibc_core_channel_v1_Order { + /* zero-value for channel ordering */ + ibc_core_channel_v1_Order_ORDER_NONE_UNSPECIFIED = 0, + /* packets can be delivered in any order, which may differ from the order in + which they were sent. */ + ibc_core_channel_v1_Order_ORDER_UNORDERED = 1, + /* packets are delivered exactly in the order which they were sent */ + ibc_core_channel_v1_Order_ORDER_ORDERED = 2 +} ibc_core_channel_v1_Order; + +/* Struct definitions */ +/* Counterparty defines a channel end counterparty */ +typedef struct _ibc_core_channel_v1_Counterparty { + /* port on the counterparty chain which owns the other end of the channel. */ + pb_callback_t port_id; + /* channel end on the counterparty chain */ + pb_callback_t channel_id; +} ibc_core_channel_v1_Counterparty; + +/* Channel defines pipeline for exactly-once packet delivery between specific + modules on separate blockchains, which has at least one end capable of + sending packets and one end capable of receiving packets. */ +typedef struct _ibc_core_channel_v1_Channel { + /* current state of the channel end */ + ibc_core_channel_v1_State state; + /* whether the channel is ordered or unordered */ + ibc_core_channel_v1_Order ordering; + /* counterparty channel end */ + bool has_counterparty; + ibc_core_channel_v1_Counterparty counterparty; + /* list of connection identifiers, in order, along which packets sent on + this channel will travel */ + pb_callback_t connection_hops; + /* opaque channel version, which is agreed upon during the handshake */ + pb_callback_t version; +} ibc_core_channel_v1_Channel; + +/* IdentifiedChannel defines a channel with additional port and channel + identifier fields. */ +typedef struct _ibc_core_channel_v1_IdentifiedChannel { + /* current state of the channel end */ + ibc_core_channel_v1_State state; + /* whether the channel is ordered or unordered */ + ibc_core_channel_v1_Order ordering; + /* counterparty channel end */ + bool has_counterparty; + ibc_core_channel_v1_Counterparty counterparty; + /* list of connection identifiers, in order, along which packets sent on + this channel will travel */ + pb_callback_t connection_hops; + /* opaque channel version, which is agreed upon during the handshake */ + pb_callback_t version; + /* port identifier */ + pb_callback_t port_id; + /* channel identifier */ + pb_callback_t channel_id; +} ibc_core_channel_v1_IdentifiedChannel; + +/* Packet defines a type that carries data across different chains through IBC */ +typedef struct _ibc_core_channel_v1_Packet { + /* number corresponds to the order of sends and receives, where a Packet + with an earlier sequence number must be sent and received before a Packet + with a later sequence number. */ + uint64_t sequence; + /* identifies the port on the sending chain. */ + pb_callback_t source_port; + /* identifies the channel end on the sending chain. */ + pb_callback_t source_channel; + /* identifies the port on the receiving chain. */ + pb_callback_t destination_port; + /* identifies the channel end on the receiving chain. */ + pb_callback_t destination_channel; + /* actual opaque bytes transferred directly to the application module */ + pb_callback_t data; + /* block height after which the packet times out */ + bool has_timeout_height; + ibc_core_client_v1_Height timeout_height; + /* block timestamp (in nanoseconds) after which the packet times out */ + uint64_t timeout_timestamp; +} ibc_core_channel_v1_Packet; + +/* PacketState defines the generic type necessary to retrieve and store + packet commitments, acknowledgements, and receipts. + Caller is responsible for knowing the context necessary to interpret this + state as a commitment, acknowledgement, or a receipt. */ +typedef struct _ibc_core_channel_v1_PacketState { + /* channel port identifier. */ + pb_callback_t port_id; + /* channel unique identifier. */ + pb_callback_t channel_id; + /* packet sequence. */ + uint64_t sequence; + /* embedded data that represents packet state. */ + pb_callback_t data; +} ibc_core_channel_v1_PacketState; + +/* PacketId is an identifer for a unique Packet + Source chains refer to packets by source port/channel + Destination chains refer to packets by destination port/channel */ +typedef struct _ibc_core_channel_v1_PacketId { + /* channel port identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* packet sequence */ + uint64_t sequence; +} ibc_core_channel_v1_PacketId; + +/* Acknowledgement is the recommended acknowledgement format to be used by + app-specific protocols. + NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental + conflicts with other protobuf message formats used for acknowledgements. + The first byte of any message with this format will be the non-ASCII values + `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: + https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope */ +typedef struct _ibc_core_channel_v1_Acknowledgement { + pb_size_t which_response; + union { + pb_callback_t result; + pb_callback_t error; + } response; +} ibc_core_channel_v1_Acknowledgement; + +/* Timeout defines an execution deadline structure for 04-channel handlers. + This includes packet lifecycle handlers as well as the upgrade handshake handlers. + A valid Timeout contains either one or both of a timestamp and block height (sequence). */ +typedef struct _ibc_core_channel_v1_Timeout { + /* block height after which the packet or upgrade times out */ + bool has_height; + ibc_core_client_v1_Height height; + /* block timestamp (in nanoseconds) after which the packet or upgrade times out */ + uint64_t timestamp; +} ibc_core_channel_v1_Timeout; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _ibc_core_channel_v1_State_MIN ibc_core_channel_v1_State_STATE_UNINITIALIZED_UNSPECIFIED +#define _ibc_core_channel_v1_State_MAX ibc_core_channel_v1_State_STATE_CLOSED +#define _ibc_core_channel_v1_State_ARRAYSIZE ((ibc_core_channel_v1_State)(ibc_core_channel_v1_State_STATE_CLOSED + 1)) + +#define _ibc_core_channel_v1_Order_MIN ibc_core_channel_v1_Order_ORDER_NONE_UNSPECIFIED +#define _ibc_core_channel_v1_Order_MAX ibc_core_channel_v1_Order_ORDER_ORDERED +#define _ibc_core_channel_v1_Order_ARRAYSIZE ((ibc_core_channel_v1_Order)(ibc_core_channel_v1_Order_ORDER_ORDERED + 1)) + +#define ibc_core_channel_v1_Channel_state_ENUMTYPE ibc_core_channel_v1_State +#define ibc_core_channel_v1_Channel_ordering_ENUMTYPE ibc_core_channel_v1_Order + +#define ibc_core_channel_v1_IdentifiedChannel_state_ENUMTYPE ibc_core_channel_v1_State +#define ibc_core_channel_v1_IdentifiedChannel_ordering_ENUMTYPE ibc_core_channel_v1_Order + +/* Initializer values for message structs */ +#define ibc_core_channel_v1_Channel_init_default \ + { \ + _ibc_core_channel_v1_State_MIN, _ibc_core_channel_v1_Order_MIN, false, \ + ibc_core_channel_v1_Counterparty_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_IdentifiedChannel_init_default \ + { \ + _ibc_core_channel_v1_State_MIN, _ibc_core_channel_v1_Order_MIN, false, \ + ibc_core_channel_v1_Counterparty_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_Counterparty_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_Packet_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, 0 \ + } +#define ibc_core_channel_v1_PacketState_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_PacketId_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_Acknowledgement_init_default \ + { \ + 0, { \ + { {NULL}, NULL } \ + } \ + } +#define ibc_core_channel_v1_Timeout_init_default \ + { false, ibc_core_client_v1_Height_init_default, 0 } +#define ibc_core_channel_v1_Channel_init_zero \ + { \ + _ibc_core_channel_v1_State_MIN, _ibc_core_channel_v1_Order_MIN, false, ibc_core_channel_v1_Counterparty_init_zero, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_IdentifiedChannel_init_zero \ + { \ + _ibc_core_channel_v1_State_MIN, _ibc_core_channel_v1_Order_MIN, false, ibc_core_channel_v1_Counterparty_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_Counterparty_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_Packet_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_zero, 0 \ + } +#define ibc_core_channel_v1_PacketState_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_PacketId_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_Acknowledgement_init_zero \ + { \ + 0, { \ + { {NULL}, NULL } \ + } \ + } +#define ibc_core_channel_v1_Timeout_init_zero \ + { false, ibc_core_client_v1_Height_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_channel_v1_Counterparty_port_id_tag 1 +#define ibc_core_channel_v1_Counterparty_channel_id_tag 2 +#define ibc_core_channel_v1_Channel_state_tag 1 +#define ibc_core_channel_v1_Channel_ordering_tag 2 +#define ibc_core_channel_v1_Channel_counterparty_tag 3 +#define ibc_core_channel_v1_Channel_connection_hops_tag 4 +#define ibc_core_channel_v1_Channel_version_tag 5 +#define ibc_core_channel_v1_IdentifiedChannel_state_tag 1 +#define ibc_core_channel_v1_IdentifiedChannel_ordering_tag 2 +#define ibc_core_channel_v1_IdentifiedChannel_counterparty_tag 3 +#define ibc_core_channel_v1_IdentifiedChannel_connection_hops_tag 4 +#define ibc_core_channel_v1_IdentifiedChannel_version_tag 5 +#define ibc_core_channel_v1_IdentifiedChannel_port_id_tag 6 +#define ibc_core_channel_v1_IdentifiedChannel_channel_id_tag 7 +#define ibc_core_channel_v1_Packet_sequence_tag 1 +#define ibc_core_channel_v1_Packet_source_port_tag 2 +#define ibc_core_channel_v1_Packet_source_channel_tag 3 +#define ibc_core_channel_v1_Packet_destination_port_tag 4 +#define ibc_core_channel_v1_Packet_destination_channel_tag 5 +#define ibc_core_channel_v1_Packet_data_tag 6 +#define ibc_core_channel_v1_Packet_timeout_height_tag 7 +#define ibc_core_channel_v1_Packet_timeout_timestamp_tag 8 +#define ibc_core_channel_v1_PacketState_port_id_tag 1 +#define ibc_core_channel_v1_PacketState_channel_id_tag 2 +#define ibc_core_channel_v1_PacketState_sequence_tag 3 +#define ibc_core_channel_v1_PacketState_data_tag 4 +#define ibc_core_channel_v1_PacketId_port_id_tag 1 +#define ibc_core_channel_v1_PacketId_channel_id_tag 2 +#define ibc_core_channel_v1_PacketId_sequence_tag 3 +#define ibc_core_channel_v1_Acknowledgement_result_tag 21 +#define ibc_core_channel_v1_Acknowledgement_error_tag 22 +#define ibc_core_channel_v1_Timeout_height_tag 1 +#define ibc_core_channel_v1_Timeout_timestamp_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_channel_v1_Channel_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, state, 1) \ + X(a, STATIC, SINGULAR, UENUM, ordering, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 3) \ + X(a, CALLBACK, REPEATED, STRING, connection_hops, 4) \ + X(a, CALLBACK, SINGULAR, STRING, version, 5) +#define ibc_core_channel_v1_Channel_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_Channel_DEFAULT NULL +#define ibc_core_channel_v1_Channel_counterparty_MSGTYPE ibc_core_channel_v1_Counterparty + +#define ibc_core_channel_v1_IdentifiedChannel_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, state, 1) \ + X(a, STATIC, SINGULAR, UENUM, ordering, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 3) \ + X(a, CALLBACK, REPEATED, STRING, connection_hops, 4) \ + X(a, CALLBACK, SINGULAR, STRING, version, 5) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 6) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 7) +#define ibc_core_channel_v1_IdentifiedChannel_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_IdentifiedChannel_DEFAULT NULL +#define ibc_core_channel_v1_IdentifiedChannel_counterparty_MSGTYPE ibc_core_channel_v1_Counterparty + +#define ibc_core_channel_v1_Counterparty_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_Counterparty_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_Counterparty_DEFAULT NULL + +#define ibc_core_channel_v1_Packet_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, CALLBACK, SINGULAR, STRING, source_port, 2) \ + X(a, CALLBACK, SINGULAR, STRING, source_channel, 3) \ + X(a, CALLBACK, SINGULAR, STRING, destination_port, 4) \ + X(a, CALLBACK, SINGULAR, STRING, destination_channel, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, timeout_height, 7) \ + X(a, STATIC, SINGULAR, UINT64, timeout_timestamp, 8) +#define ibc_core_channel_v1_Packet_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_Packet_DEFAULT NULL +#define ibc_core_channel_v1_Packet_timeout_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_PacketState_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 4) +#define ibc_core_channel_v1_PacketState_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_PacketState_DEFAULT NULL + +#define ibc_core_channel_v1_PacketId_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define ibc_core_channel_v1_PacketId_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_PacketId_DEFAULT NULL + +#define ibc_core_channel_v1_Acknowledgement_FIELDLIST(X, a) \ + X(a, CALLBACK, ONEOF, BYTES, (response, result, response.result), 21) \ + X(a, CALLBACK, ONEOF, STRING, (response, error, response.error), 22) +#define ibc_core_channel_v1_Acknowledgement_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_Acknowledgement_DEFAULT NULL + +#define ibc_core_channel_v1_Timeout_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) +#define ibc_core_channel_v1_Timeout_CALLBACK NULL +#define ibc_core_channel_v1_Timeout_DEFAULT NULL +#define ibc_core_channel_v1_Timeout_height_MSGTYPE ibc_core_client_v1_Height + +extern const pb_msgdesc_t ibc_core_channel_v1_Channel_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_IdentifiedChannel_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_Counterparty_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_Packet_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_PacketState_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_PacketId_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_Acknowledgement_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_Timeout_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_channel_v1_Channel_fields &ibc_core_channel_v1_Channel_msg +#define ibc_core_channel_v1_IdentifiedChannel_fields &ibc_core_channel_v1_IdentifiedChannel_msg +#define ibc_core_channel_v1_Counterparty_fields &ibc_core_channel_v1_Counterparty_msg +#define ibc_core_channel_v1_Packet_fields &ibc_core_channel_v1_Packet_msg +#define ibc_core_channel_v1_PacketState_fields &ibc_core_channel_v1_PacketState_msg +#define ibc_core_channel_v1_PacketId_fields &ibc_core_channel_v1_PacketId_msg +#define ibc_core_channel_v1_Acknowledgement_fields &ibc_core_channel_v1_Acknowledgement_msg +#define ibc_core_channel_v1_Timeout_fields &ibc_core_channel_v1_Timeout_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_channel_v1_Channel_size depends on runtime parameters */ +/* ibc_core_channel_v1_IdentifiedChannel_size depends on runtime parameters */ +/* ibc_core_channel_v1_Counterparty_size depends on runtime parameters */ +/* ibc_core_channel_v1_Packet_size depends on runtime parameters */ +/* ibc_core_channel_v1_PacketState_size depends on runtime parameters */ +/* ibc_core_channel_v1_PacketId_size depends on runtime parameters */ +/* ibc_core_channel_v1_Acknowledgement_size depends on runtime parameters */ +#define IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_CHANNEL_PB_H_MAX_SIZE ibc_core_channel_v1_Timeout_size +#define ibc_core_channel_v1_Timeout_size 35 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/channel/v1/genesis.pb.c b/app/src/protobuf/ibc/core/channel/v1/genesis.pb.c new file mode 100644 index 0000000..fc0ff4a --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/genesis.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/channel/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_channel_v1_GenesisState, ibc_core_channel_v1_GenesisState, AUTO) + +PB_BIND(ibc_core_channel_v1_PacketSequence, ibc_core_channel_v1_PacketSequence, AUTO) diff --git a/app/src/protobuf/ibc/core/channel/v1/genesis.pb.h b/app/src/protobuf/ibc/core/channel/v1/genesis.pb.h new file mode 100644 index 0000000..e711ec4 --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/genesis.pb.h @@ -0,0 +1,106 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ibc channel submodule's genesis state. */ +typedef struct _ibc_core_channel_v1_GenesisState { + pb_callback_t channels; + pb_callback_t acknowledgements; + pb_callback_t commitments; + pb_callback_t receipts; + pb_callback_t send_sequences; + pb_callback_t recv_sequences; + pb_callback_t ack_sequences; + /* the sequence for the next generated channel identifier */ + uint64_t next_channel_sequence; +} ibc_core_channel_v1_GenesisState; + +/* PacketSequence defines the genesis type necessary to retrieve and store + next send and receive sequences. */ +typedef struct _ibc_core_channel_v1_PacketSequence { + pb_callback_t port_id; + pb_callback_t channel_id; + uint64_t sequence; +} ibc_core_channel_v1_PacketSequence; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_channel_v1_GenesisState_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_PacketSequence_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_GenesisState_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_PacketSequence_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_channel_v1_GenesisState_channels_tag 1 +#define ibc_core_channel_v1_GenesisState_acknowledgements_tag 2 +#define ibc_core_channel_v1_GenesisState_commitments_tag 3 +#define ibc_core_channel_v1_GenesisState_receipts_tag 4 +#define ibc_core_channel_v1_GenesisState_send_sequences_tag 5 +#define ibc_core_channel_v1_GenesisState_recv_sequences_tag 6 +#define ibc_core_channel_v1_GenesisState_ack_sequences_tag 7 +#define ibc_core_channel_v1_GenesisState_next_channel_sequence_tag 8 +#define ibc_core_channel_v1_PacketSequence_port_id_tag 1 +#define ibc_core_channel_v1_PacketSequence_channel_id_tag 2 +#define ibc_core_channel_v1_PacketSequence_sequence_tag 3 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_channel_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, channels, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, acknowledgements, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, commitments, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, receipts, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, send_sequences, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, recv_sequences, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, ack_sequences, 7) \ + X(a, STATIC, SINGULAR, UINT64, next_channel_sequence, 8) +#define ibc_core_channel_v1_GenesisState_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_GenesisState_DEFAULT NULL +#define ibc_core_channel_v1_GenesisState_channels_MSGTYPE ibc_core_channel_v1_IdentifiedChannel +#define ibc_core_channel_v1_GenesisState_acknowledgements_MSGTYPE ibc_core_channel_v1_PacketState +#define ibc_core_channel_v1_GenesisState_commitments_MSGTYPE ibc_core_channel_v1_PacketState +#define ibc_core_channel_v1_GenesisState_receipts_MSGTYPE ibc_core_channel_v1_PacketState +#define ibc_core_channel_v1_GenesisState_send_sequences_MSGTYPE ibc_core_channel_v1_PacketSequence +#define ibc_core_channel_v1_GenesisState_recv_sequences_MSGTYPE ibc_core_channel_v1_PacketSequence +#define ibc_core_channel_v1_GenesisState_ack_sequences_MSGTYPE ibc_core_channel_v1_PacketSequence + +#define ibc_core_channel_v1_PacketSequence_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define ibc_core_channel_v1_PacketSequence_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_PacketSequence_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_channel_v1_GenesisState_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_PacketSequence_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_channel_v1_GenesisState_fields &ibc_core_channel_v1_GenesisState_msg +#define ibc_core_channel_v1_PacketSequence_fields &ibc_core_channel_v1_PacketSequence_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_channel_v1_GenesisState_size depends on runtime parameters */ +/* ibc_core_channel_v1_PacketSequence_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/channel/v1/query.pb.c b/app/src/protobuf/ibc/core/channel/v1/query.pb.c new file mode 100644 index 0000000..634bfa4 --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/query.pb.c @@ -0,0 +1,64 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/channel/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_channel_v1_QueryChannelRequest, ibc_core_channel_v1_QueryChannelRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelResponse, ibc_core_channel_v1_QueryChannelResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelsRequest, ibc_core_channel_v1_QueryChannelsRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelsResponse, ibc_core_channel_v1_QueryChannelsResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryConnectionChannelsRequest, ibc_core_channel_v1_QueryConnectionChannelsRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryConnectionChannelsResponse, ibc_core_channel_v1_QueryConnectionChannelsResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelClientStateRequest, ibc_core_channel_v1_QueryChannelClientStateRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelClientStateResponse, ibc_core_channel_v1_QueryChannelClientStateResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelConsensusStateRequest, ibc_core_channel_v1_QueryChannelConsensusStateRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryChannelConsensusStateResponse, ibc_core_channel_v1_QueryChannelConsensusStateResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketCommitmentRequest, ibc_core_channel_v1_QueryPacketCommitmentRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketCommitmentResponse, ibc_core_channel_v1_QueryPacketCommitmentResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketCommitmentsRequest, ibc_core_channel_v1_QueryPacketCommitmentsRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketCommitmentsResponse, ibc_core_channel_v1_QueryPacketCommitmentsResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketReceiptRequest, ibc_core_channel_v1_QueryPacketReceiptRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketReceiptResponse, ibc_core_channel_v1_QueryPacketReceiptResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketAcknowledgementRequest, ibc_core_channel_v1_QueryPacketAcknowledgementRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketAcknowledgementResponse, ibc_core_channel_v1_QueryPacketAcknowledgementResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketAcknowledgementsRequest, ibc_core_channel_v1_QueryPacketAcknowledgementsRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryPacketAcknowledgementsResponse, ibc_core_channel_v1_QueryPacketAcknowledgementsResponse, + AUTO) + +PB_BIND(ibc_core_channel_v1_QueryUnreceivedPacketsRequest, ibc_core_channel_v1_QueryUnreceivedPacketsRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryUnreceivedPacketsResponse, ibc_core_channel_v1_QueryUnreceivedPacketsResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryUnreceivedAcksRequest, ibc_core_channel_v1_QueryUnreceivedAcksRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryUnreceivedAcksResponse, ibc_core_channel_v1_QueryUnreceivedAcksResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryNextSequenceReceiveRequest, ibc_core_channel_v1_QueryNextSequenceReceiveRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryNextSequenceReceiveResponse, ibc_core_channel_v1_QueryNextSequenceReceiveResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryNextSequenceSendRequest, ibc_core_channel_v1_QueryNextSequenceSendRequest, AUTO) + +PB_BIND(ibc_core_channel_v1_QueryNextSequenceSendResponse, ibc_core_channel_v1_QueryNextSequenceSendResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/channel/v1/query.pb.h b/app/src/protobuf/ibc/core/channel/v1/query.pb.h new file mode 100644 index 0000000..f8350dc --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/query.pb.h @@ -0,0 +1,906 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryChannelRequest is the request type for the Query/Channel RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; +} ibc_core_channel_v1_QueryChannelRequest; + +/* QueryChannelResponse is the response type for the Query/Channel RPC method. + Besides the Channel end, it includes a proof and the height from which the + proof was retrieved. */ +typedef struct _ibc_core_channel_v1_QueryChannelResponse { + /* channel associated with the request identifiers */ + bool has_channel; + ibc_core_channel_v1_Channel channel; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryChannelResponse; + +/* QueryChannelsRequest is the request type for the Query/Channels RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelsRequest { + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_channel_v1_QueryChannelsRequest; + +/* QueryChannelsResponse is the response type for the Query/Channels RPC method. */ +typedef struct _ibc_core_channel_v1_QueryChannelsResponse { + /* list of stored channels of the chain. */ + pb_callback_t channels; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryChannelsResponse; + +/* QueryConnectionChannelsRequest is the request type for the + Query/QueryConnectionChannels RPC method */ +typedef struct _ibc_core_channel_v1_QueryConnectionChannelsRequest { + /* connection unique identifier */ + pb_callback_t connection; + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_channel_v1_QueryConnectionChannelsRequest; + +/* QueryConnectionChannelsResponse is the Response type for the + Query/QueryConnectionChannels RPC method */ +typedef struct _ibc_core_channel_v1_QueryConnectionChannelsResponse { + /* list of channels associated with a connection. */ + pb_callback_t channels; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryConnectionChannelsResponse; + +/* QueryChannelClientStateRequest is the request type for the Query/ClientState + RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelClientStateRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; +} ibc_core_channel_v1_QueryChannelClientStateRequest; + +/* QueryChannelClientStateResponse is the Response type for the + Query/QueryChannelClientState RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelClientStateResponse { + /* client state associated with the channel */ + bool has_identified_client_state; + ibc_core_client_v1_IdentifiedClientState identified_client_state; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryChannelClientStateResponse; + +/* QueryChannelConsensusStateRequest is the request type for the + Query/ConsensusState RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelConsensusStateRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* revision number of the consensus state */ + uint64_t revision_number; + /* revision height of the consensus state */ + uint64_t revision_height; +} ibc_core_channel_v1_QueryChannelConsensusStateRequest; + +/* QueryChannelClientStateResponse is the Response type for the + Query/QueryChannelClientState RPC method */ +typedef struct _ibc_core_channel_v1_QueryChannelConsensusStateResponse { + /* consensus state associated with the channel */ + bool has_consensus_state; + google_protobuf_Any consensus_state; + /* client ID associated with the consensus state */ + pb_callback_t client_id; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryChannelConsensusStateResponse; + +/* QueryPacketCommitmentRequest is the request type for the + Query/PacketCommitment RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketCommitmentRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* packet sequence */ + uint64_t sequence; +} ibc_core_channel_v1_QueryPacketCommitmentRequest; + +/* QueryPacketCommitmentResponse defines the client query response for a packet + which also includes a proof and the height from which the proof was + retrieved */ +typedef struct _ibc_core_channel_v1_QueryPacketCommitmentResponse { + /* packet associated with the request fields */ + pb_callback_t commitment; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryPacketCommitmentResponse; + +/* QueryPacketCommitmentsRequest is the request type for the + Query/QueryPacketCommitments RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketCommitmentsRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_channel_v1_QueryPacketCommitmentsRequest; + +/* QueryPacketCommitmentsResponse is the request type for the + Query/QueryPacketCommitments RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketCommitmentsResponse { + pb_callback_t commitments; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryPacketCommitmentsResponse; + +/* QueryPacketReceiptRequest is the request type for the + Query/PacketReceipt RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketReceiptRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* packet sequence */ + uint64_t sequence; +} ibc_core_channel_v1_QueryPacketReceiptRequest; + +/* QueryPacketReceiptResponse defines the client query response for a packet + receipt which also includes a proof, and the height from which the proof was + retrieved */ +typedef struct _ibc_core_channel_v1_QueryPacketReceiptResponse { + /* success flag for if receipt exists */ + bool received; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryPacketReceiptResponse; + +/* QueryPacketAcknowledgementRequest is the request type for the + Query/PacketAcknowledgement RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketAcknowledgementRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* packet sequence */ + uint64_t sequence; +} ibc_core_channel_v1_QueryPacketAcknowledgementRequest; + +/* QueryPacketAcknowledgementResponse defines the client query response for a + packet which also includes a proof and the height from which the + proof was retrieved */ +typedef struct _ibc_core_channel_v1_QueryPacketAcknowledgementResponse { + /* packet associated with the request fields */ + pb_callback_t acknowledgement; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryPacketAcknowledgementResponse; + +/* QueryPacketAcknowledgementsRequest is the request type for the + Query/QueryPacketCommitments RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketAcknowledgementsRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; + /* list of packet sequences */ + pb_callback_t packet_commitment_sequences; +} ibc_core_channel_v1_QueryPacketAcknowledgementsRequest; + +/* QueryPacketAcknowledgemetsResponse is the request type for the + Query/QueryPacketAcknowledgements RPC method */ +typedef struct _ibc_core_channel_v1_QueryPacketAcknowledgementsResponse { + pb_callback_t acknowledgements; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryPacketAcknowledgementsResponse; + +/* QueryUnreceivedPacketsRequest is the request type for the + Query/UnreceivedPackets RPC method */ +typedef struct _ibc_core_channel_v1_QueryUnreceivedPacketsRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* list of packet sequences */ + pb_callback_t packet_commitment_sequences; +} ibc_core_channel_v1_QueryUnreceivedPacketsRequest; + +/* QueryUnreceivedPacketsResponse is the response type for the + Query/UnreceivedPacketCommitments RPC method */ +typedef struct _ibc_core_channel_v1_QueryUnreceivedPacketsResponse { + /* list of unreceived packet sequences */ + pb_callback_t sequences; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryUnreceivedPacketsResponse; + +/* QueryUnreceivedAcks is the request type for the + Query/UnreceivedAcks RPC method */ +typedef struct _ibc_core_channel_v1_QueryUnreceivedAcksRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; + /* list of acknowledgement sequences */ + pb_callback_t packet_ack_sequences; +} ibc_core_channel_v1_QueryUnreceivedAcksRequest; + +/* QueryUnreceivedAcksResponse is the response type for the + Query/UnreceivedAcks RPC method */ +typedef struct _ibc_core_channel_v1_QueryUnreceivedAcksResponse { + /* list of unreceived acknowledgement sequences */ + pb_callback_t sequences; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_channel_v1_QueryUnreceivedAcksResponse; + +/* QueryNextSequenceReceiveRequest is the request type for the + Query/QueryNextSequenceReceiveRequest RPC method */ +typedef struct _ibc_core_channel_v1_QueryNextSequenceReceiveRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; +} ibc_core_channel_v1_QueryNextSequenceReceiveRequest; + +/* QuerySequenceResponse is the request type for the + Query/QueryNextSequenceReceiveResponse RPC method */ +typedef struct _ibc_core_channel_v1_QueryNextSequenceReceiveResponse { + /* next sequence receive number */ + uint64_t next_sequence_receive; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryNextSequenceReceiveResponse; + +/* QueryNextSequenceSendRequest is the request type for the + Query/QueryNextSequenceSend RPC method */ +typedef struct _ibc_core_channel_v1_QueryNextSequenceSendRequest { + /* port unique identifier */ + pb_callback_t port_id; + /* channel unique identifier */ + pb_callback_t channel_id; +} ibc_core_channel_v1_QueryNextSequenceSendRequest; + +/* QueryNextSequenceSendResponse is the request type for the + Query/QueryNextSequenceSend RPC method */ +typedef struct _ibc_core_channel_v1_QueryNextSequenceSendResponse { + /* next sequence send number */ + uint64_t next_sequence_send; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_channel_v1_QueryNextSequenceSendResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_channel_v1_QueryChannelRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryChannelResponse_init_default \ + { false, ibc_core_channel_v1_Channel_init_default, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryChannelsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_channel_v1_QueryChannelsResponse_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryChannelClientStateRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryChannelClientStateResponse_init_default \ + { \ + false, ibc_core_client_v1_IdentifiedClientState_init_default, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_init_default \ + { \ + false, google_protobuf_Any_init_default, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryPacketReceiptRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketReceiptResponse_init_default \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_init_default \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_init_default \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_init_default \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_init_default \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_channel_v1_QueryChannelRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryChannelResponse_init_zero \ + { false, ibc_core_channel_v1_Channel_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryChannelsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_channel_v1_QueryChannelsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryChannelClientStateRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryChannelClientStateResponse_init_zero \ + { false, ibc_core_client_v1_IdentifiedClientState_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryPacketReceiptRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketReceiptResponse_init_zero \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_init_zero \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_init_zero \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_init_zero \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_init_zero \ + { 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_channel_v1_QueryChannelRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryChannelRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryChannelResponse_channel_tag 1 +#define ibc_core_channel_v1_QueryChannelResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryChannelResponse_proof_height_tag 3 +#define ibc_core_channel_v1_QueryChannelsRequest_pagination_tag 1 +#define ibc_core_channel_v1_QueryChannelsResponse_channels_tag 1 +#define ibc_core_channel_v1_QueryChannelsResponse_pagination_tag 2 +#define ibc_core_channel_v1_QueryChannelsResponse_height_tag 3 +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_connection_tag 1 +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_pagination_tag 2 +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_channels_tag 1 +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_pagination_tag 2 +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_height_tag 3 +#define ibc_core_channel_v1_QueryChannelClientStateRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryChannelClientStateRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryChannelClientStateResponse_identified_client_state_tag 1 +#define ibc_core_channel_v1_QueryChannelClientStateResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryChannelClientStateResponse_proof_height_tag 3 +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_revision_number_tag 3 +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_revision_height_tag 4 +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_consensus_state_tag 1 +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_client_id_tag 2 +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_proof_tag 3 +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_proof_height_tag 4 +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_sequence_tag 3 +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_commitment_tag 1 +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_proof_height_tag 3 +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_pagination_tag 3 +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_commitments_tag 1 +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_pagination_tag 2 +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_height_tag 3 +#define ibc_core_channel_v1_QueryPacketReceiptRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryPacketReceiptRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryPacketReceiptRequest_sequence_tag 3 +#define ibc_core_channel_v1_QueryPacketReceiptResponse_received_tag 2 +#define ibc_core_channel_v1_QueryPacketReceiptResponse_proof_tag 3 +#define ibc_core_channel_v1_QueryPacketReceiptResponse_proof_height_tag 4 +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_sequence_tag 3 +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_acknowledgement_tag 1 +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_proof_height_tag 3 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_pagination_tag 3 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_packet_commitment_sequences_tag 4 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_acknowledgements_tag 1 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_pagination_tag 2 +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_height_tag 3 +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_packet_commitment_sequences_tag 3 +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_sequences_tag 1 +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_height_tag 2 +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_packet_ack_sequences_tag 3 +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_sequences_tag 1 +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_height_tag 2 +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_next_sequence_receive_tag 1 +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_proof_height_tag 3 +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_port_id_tag 1 +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_channel_id_tag 2 +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_next_sequence_send_tag 1 +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_proof_tag 2 +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_proof_height_tag 3 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_channel_v1_QueryChannelRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_QueryChannelRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryChannelResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, channel, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryChannelResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryChannelResponse_channel_MSGTYPE ibc_core_channel_v1_Channel +#define ibc_core_channel_v1_QueryChannelResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryChannelsRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define ibc_core_channel_v1_QueryChannelsRequest_CALLBACK NULL +#define ibc_core_channel_v1_QueryChannelsRequest_DEFAULT NULL +#define ibc_core_channel_v1_QueryChannelsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_channel_v1_QueryChannelsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, channels, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 3) +#define ibc_core_channel_v1_QueryChannelsResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelsResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryChannelsResponse_channels_MSGTYPE ibc_core_channel_v1_IdentifiedChannel +#define ibc_core_channel_v1_QueryChannelsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse +#define ibc_core_channel_v1_QueryChannelsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_DEFAULT NULL +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, channels, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 3) +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_channels_MSGTYPE ibc_core_channel_v1_IdentifiedChannel +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryChannelClientStateRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_QueryChannelClientStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelClientStateRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryChannelClientStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identified_client_state, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryChannelClientStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelClientStateResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryChannelClientStateResponse_identified_client_state_MSGTYPE \ + ibc_core_client_v1_IdentifiedClientState +#define ibc_core_channel_v1_QueryChannelClientStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, revision_number, 3) \ + X(a, STATIC, SINGULAR, UINT64, revision_height, 4) +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 1) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_consensus_state_MSGTYPE google_protobuf_Any +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, commitment, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, commitments, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 3) +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_commitments_MSGTYPE ibc_core_channel_v1_PacketState +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryPacketReceiptRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define ibc_core_channel_v1_QueryPacketReceiptRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketReceiptRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryPacketReceiptResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, received, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) +#define ibc_core_channel_v1_QueryPacketReceiptResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketReceiptResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketReceiptResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, acknowledgement, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 3) \ + X(a, CALLBACK, REPEATED, UINT64, packet_commitment_sequences, 4) +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, acknowledgements, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 3) +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_acknowledgements_MSGTYPE ibc_core_channel_v1_PacketState +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, REPEATED, UINT64, packet_commitment_sequences, 3) +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, UINT64, sequences, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 2) +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, REPEATED, UINT64, packet_ack_sequences, 3) +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, UINT64, sequences, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 2) +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, next_sequence_receive, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_DEFAULT NULL + +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, next_sequence_send, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_DEFAULT NULL +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelsRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelsResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryConnectionChannelsRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryConnectionChannelsResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelClientStateRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelClientStateResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelConsensusStateRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryChannelConsensusStateResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketCommitmentRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketCommitmentResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketCommitmentsRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketCommitmentsResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketReceiptRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketReceiptResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketAcknowledgementRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketAcknowledgementResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryUnreceivedPacketsRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryUnreceivedPacketsResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryUnreceivedAcksRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryUnreceivedAcksResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryNextSequenceReceiveRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryNextSequenceReceiveResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryNextSequenceSendRequest_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_QueryNextSequenceSendResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_channel_v1_QueryChannelRequest_fields &ibc_core_channel_v1_QueryChannelRequest_msg +#define ibc_core_channel_v1_QueryChannelResponse_fields &ibc_core_channel_v1_QueryChannelResponse_msg +#define ibc_core_channel_v1_QueryChannelsRequest_fields &ibc_core_channel_v1_QueryChannelsRequest_msg +#define ibc_core_channel_v1_QueryChannelsResponse_fields &ibc_core_channel_v1_QueryChannelsResponse_msg +#define ibc_core_channel_v1_QueryConnectionChannelsRequest_fields &ibc_core_channel_v1_QueryConnectionChannelsRequest_msg +#define ibc_core_channel_v1_QueryConnectionChannelsResponse_fields &ibc_core_channel_v1_QueryConnectionChannelsResponse_msg +#define ibc_core_channel_v1_QueryChannelClientStateRequest_fields &ibc_core_channel_v1_QueryChannelClientStateRequest_msg +#define ibc_core_channel_v1_QueryChannelClientStateResponse_fields &ibc_core_channel_v1_QueryChannelClientStateResponse_msg +#define ibc_core_channel_v1_QueryChannelConsensusStateRequest_fields \ + &ibc_core_channel_v1_QueryChannelConsensusStateRequest_msg +#define ibc_core_channel_v1_QueryChannelConsensusStateResponse_fields \ + &ibc_core_channel_v1_QueryChannelConsensusStateResponse_msg +#define ibc_core_channel_v1_QueryPacketCommitmentRequest_fields &ibc_core_channel_v1_QueryPacketCommitmentRequest_msg +#define ibc_core_channel_v1_QueryPacketCommitmentResponse_fields &ibc_core_channel_v1_QueryPacketCommitmentResponse_msg +#define ibc_core_channel_v1_QueryPacketCommitmentsRequest_fields &ibc_core_channel_v1_QueryPacketCommitmentsRequest_msg +#define ibc_core_channel_v1_QueryPacketCommitmentsResponse_fields &ibc_core_channel_v1_QueryPacketCommitmentsResponse_msg +#define ibc_core_channel_v1_QueryPacketReceiptRequest_fields &ibc_core_channel_v1_QueryPacketReceiptRequest_msg +#define ibc_core_channel_v1_QueryPacketReceiptResponse_fields &ibc_core_channel_v1_QueryPacketReceiptResponse_msg +#define ibc_core_channel_v1_QueryPacketAcknowledgementRequest_fields \ + &ibc_core_channel_v1_QueryPacketAcknowledgementRequest_msg +#define ibc_core_channel_v1_QueryPacketAcknowledgementResponse_fields \ + &ibc_core_channel_v1_QueryPacketAcknowledgementResponse_msg +#define ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_fields \ + &ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_msg +#define ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_fields \ + &ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_msg +#define ibc_core_channel_v1_QueryUnreceivedPacketsRequest_fields &ibc_core_channel_v1_QueryUnreceivedPacketsRequest_msg +#define ibc_core_channel_v1_QueryUnreceivedPacketsResponse_fields &ibc_core_channel_v1_QueryUnreceivedPacketsResponse_msg +#define ibc_core_channel_v1_QueryUnreceivedAcksRequest_fields &ibc_core_channel_v1_QueryUnreceivedAcksRequest_msg +#define ibc_core_channel_v1_QueryUnreceivedAcksResponse_fields &ibc_core_channel_v1_QueryUnreceivedAcksResponse_msg +#define ibc_core_channel_v1_QueryNextSequenceReceiveRequest_fields &ibc_core_channel_v1_QueryNextSequenceReceiveRequest_msg +#define ibc_core_channel_v1_QueryNextSequenceReceiveResponse_fields &ibc_core_channel_v1_QueryNextSequenceReceiveResponse_msg +#define ibc_core_channel_v1_QueryNextSequenceSendRequest_fields &ibc_core_channel_v1_QueryNextSequenceSendRequest_msg +#define ibc_core_channel_v1_QueryNextSequenceSendResponse_fields &ibc_core_channel_v1_QueryNextSequenceSendResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_channel_v1_QueryChannelRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelsResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryConnectionChannelsRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryConnectionChannelsResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelClientStateRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelClientStateResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelConsensusStateRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryChannelConsensusStateResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketCommitmentRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketCommitmentResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketCommitmentsRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketCommitmentsResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketReceiptRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketReceiptResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketAcknowledgementRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketAcknowledgementResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketAcknowledgementsRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryPacketAcknowledgementsResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryUnreceivedPacketsRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryUnreceivedPacketsResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryUnreceivedAcksRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryUnreceivedAcksResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryNextSequenceReceiveRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryNextSequenceReceiveResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryNextSequenceSendRequest_size depends on runtime parameters */ +/* ibc_core_channel_v1_QueryNextSequenceSendResponse_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_QUERY_PB_H_MAX_SIZE ibc_core_channel_v1_QueryChannelsRequest_size +#define ibc_core_channel_v1_QueryChannelsRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/channel/v1/tx.pb.c b/app/src/protobuf/ibc/core/channel/v1/tx.pb.c new file mode 100644 index 0000000..99e7cf8 --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/tx.pb.c @@ -0,0 +1,47 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/channel/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenInit, ibc_core_channel_v1_MsgChannelOpenInit, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenInitResponse, ibc_core_channel_v1_MsgChannelOpenInitResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenTry, ibc_core_channel_v1_MsgChannelOpenTry, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenTryResponse, ibc_core_channel_v1_MsgChannelOpenTryResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenAck, ibc_core_channel_v1_MsgChannelOpenAck, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenAckResponse, ibc_core_channel_v1_MsgChannelOpenAckResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenConfirm, ibc_core_channel_v1_MsgChannelOpenConfirm, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelOpenConfirmResponse, ibc_core_channel_v1_MsgChannelOpenConfirmResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelCloseInit, ibc_core_channel_v1_MsgChannelCloseInit, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelCloseInitResponse, ibc_core_channel_v1_MsgChannelCloseInitResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelCloseConfirm, ibc_core_channel_v1_MsgChannelCloseConfirm, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgChannelCloseConfirmResponse, ibc_core_channel_v1_MsgChannelCloseConfirmResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgRecvPacket, ibc_core_channel_v1_MsgRecvPacket, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgRecvPacketResponse, ibc_core_channel_v1_MsgRecvPacketResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgTimeout, ibc_core_channel_v1_MsgTimeout, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgTimeoutResponse, ibc_core_channel_v1_MsgTimeoutResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgTimeoutOnClose, ibc_core_channel_v1_MsgTimeoutOnClose, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgTimeoutOnCloseResponse, ibc_core_channel_v1_MsgTimeoutOnCloseResponse, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgAcknowledgement, ibc_core_channel_v1_MsgAcknowledgement, AUTO) + +PB_BIND(ibc_core_channel_v1_MsgAcknowledgementResponse, ibc_core_channel_v1_MsgAcknowledgementResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/channel/v1/tx.pb.h b/app/src/protobuf/ibc/core/channel/v1/tx.pb.h new file mode 100644 index 0000000..9fe309b --- /dev/null +++ b/app/src/protobuf/ibc/core/channel/v1/tx.pb.h @@ -0,0 +1,659 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_TX_PB_H_INCLUDED +#define PB_IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* ResponseResultType defines the possible outcomes of the execution of a message */ +typedef enum _ibc_core_channel_v1_ResponseResultType { + /* Default zero value enumeration */ + ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_UNSPECIFIED = 0, + /* The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) */ + ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_NOOP = 1, + /* The message was executed successfully */ + ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_SUCCESS = 2 +} ibc_core_channel_v1_ResponseResultType; + +/* Struct definitions */ +/* MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It + is called by a relayer on Chain A. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenInit { + pb_callback_t port_id; + bool has_channel; + ibc_core_channel_v1_Channel channel; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelOpenInit; + +/* MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenInitResponse { + pb_callback_t channel_id; + pb_callback_t version; +} ibc_core_channel_v1_MsgChannelOpenInitResponse; + +/* MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel + on Chain B. The version field within the Channel field has been deprecated. Its + value will be ignored by core IBC. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenTry { + pb_callback_t port_id; + /* Deprecated: this field is unused. Crossing hello's are no longer supported in core IBC. */ + pb_callback_t previous_channel_id; + /* NOTE: the version field within the channel has been deprecated. Its value will be ignored by core IBC. */ + bool has_channel; + ibc_core_channel_v1_Channel channel; + pb_callback_t counterparty_version; + pb_callback_t proof_init; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelOpenTry; + +/* MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenTryResponse { + pb_callback_t version; + pb_callback_t channel_id; +} ibc_core_channel_v1_MsgChannelOpenTryResponse; + +/* MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge + the change of channel state to TRYOPEN on Chain B. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenAck { + pb_callback_t port_id; + pb_callback_t channel_id; + pb_callback_t counterparty_channel_id; + pb_callback_t counterparty_version; + pb_callback_t proof_try; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelOpenAck; + +/* MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenAckResponse { + char dummy_field; +} ibc_core_channel_v1_MsgChannelOpenAckResponse; + +/* MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to + acknowledge the change of channel state to OPEN on Chain A. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenConfirm { + pb_callback_t port_id; + pb_callback_t channel_id; + pb_callback_t proof_ack; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelOpenConfirm; + +/* MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response + type. */ +typedef struct _ibc_core_channel_v1_MsgChannelOpenConfirmResponse { + char dummy_field; +} ibc_core_channel_v1_MsgChannelOpenConfirmResponse; + +/* MsgChannelCloseInit defines a msg sent by a Relayer to Chain A + to close a channel with Chain B. */ +typedef struct _ibc_core_channel_v1_MsgChannelCloseInit { + pb_callback_t port_id; + pb_callback_t channel_id; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelCloseInit; + +/* MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. */ +typedef struct _ibc_core_channel_v1_MsgChannelCloseInitResponse { + char dummy_field; +} ibc_core_channel_v1_MsgChannelCloseInitResponse; + +/* MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B + to acknowledge the change of channel state to CLOSED on Chain A. */ +typedef struct _ibc_core_channel_v1_MsgChannelCloseConfirm { + pb_callback_t port_id; + pb_callback_t channel_id; + pb_callback_t proof_init; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgChannelCloseConfirm; + +/* MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response + type. */ +typedef struct _ibc_core_channel_v1_MsgChannelCloseConfirmResponse { + char dummy_field; +} ibc_core_channel_v1_MsgChannelCloseConfirmResponse; + +/* MsgRecvPacket receives incoming IBC packet */ +typedef struct _ibc_core_channel_v1_MsgRecvPacket { + bool has_packet; + ibc_core_channel_v1_Packet packet; + pb_callback_t proof_commitment; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgRecvPacket; + +/* MsgRecvPacketResponse defines the Msg/RecvPacket response type. */ +typedef struct _ibc_core_channel_v1_MsgRecvPacketResponse { + ibc_core_channel_v1_ResponseResultType result; +} ibc_core_channel_v1_MsgRecvPacketResponse; + +/* MsgTimeout receives timed-out packet */ +typedef struct _ibc_core_channel_v1_MsgTimeout { + bool has_packet; + ibc_core_channel_v1_Packet packet; + pb_callback_t proof_unreceived; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + uint64_t next_sequence_recv; + pb_callback_t signer; +} ibc_core_channel_v1_MsgTimeout; + +/* MsgTimeoutResponse defines the Msg/Timeout response type. */ +typedef struct _ibc_core_channel_v1_MsgTimeoutResponse { + ibc_core_channel_v1_ResponseResultType result; +} ibc_core_channel_v1_MsgTimeoutResponse; + +/* MsgTimeoutOnClose timed-out packet upon counterparty channel closure. */ +typedef struct _ibc_core_channel_v1_MsgTimeoutOnClose { + bool has_packet; + ibc_core_channel_v1_Packet packet; + pb_callback_t proof_unreceived; + pb_callback_t proof_close; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + uint64_t next_sequence_recv; + pb_callback_t signer; +} ibc_core_channel_v1_MsgTimeoutOnClose; + +/* MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. */ +typedef struct _ibc_core_channel_v1_MsgTimeoutOnCloseResponse { + ibc_core_channel_v1_ResponseResultType result; +} ibc_core_channel_v1_MsgTimeoutOnCloseResponse; + +/* MsgAcknowledgement receives incoming IBC acknowledgement */ +typedef struct _ibc_core_channel_v1_MsgAcknowledgement { + bool has_packet; + ibc_core_channel_v1_Packet packet; + pb_callback_t acknowledgement; + pb_callback_t proof_acked; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_channel_v1_MsgAcknowledgement; + +/* MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. */ +typedef struct _ibc_core_channel_v1_MsgAcknowledgementResponse { + ibc_core_channel_v1_ResponseResultType result; +} ibc_core_channel_v1_MsgAcknowledgementResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _ibc_core_channel_v1_ResponseResultType_MIN ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_UNSPECIFIED +#define _ibc_core_channel_v1_ResponseResultType_MAX ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_SUCCESS +#define _ibc_core_channel_v1_ResponseResultType_ARRAYSIZE \ + ((ibc_core_channel_v1_ResponseResultType)(ibc_core_channel_v1_ResponseResultType_RESPONSE_RESULT_TYPE_SUCCESS + 1)) + +#define ibc_core_channel_v1_MsgRecvPacketResponse_result_ENUMTYPE ibc_core_channel_v1_ResponseResultType + +#define ibc_core_channel_v1_MsgTimeoutResponse_result_ENUMTYPE ibc_core_channel_v1_ResponseResultType + +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_result_ENUMTYPE ibc_core_channel_v1_ResponseResultType + +#define ibc_core_channel_v1_MsgAcknowledgementResponse_result_ENUMTYPE ibc_core_channel_v1_ResponseResultType + +/* Initializer values for message structs */ +#define ibc_core_channel_v1_MsgChannelOpenInit_init_default \ + { \ + {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_default, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenTry_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_default, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, ibc_core_client_v1_Height_init_default, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenAck_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_init_default \ + { 0 } +#define ibc_core_channel_v1_MsgChannelOpenConfirm_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_init_default \ + { 0 } +#define ibc_core_channel_v1_MsgChannelCloseInit_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_init_default \ + { 0 } +#define ibc_core_channel_v1_MsgChannelCloseConfirm_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_init_default \ + { 0 } +#define ibc_core_channel_v1_MsgRecvPacket_init_default \ + { \ + false, ibc_core_channel_v1_Packet_init_default, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgRecvPacketResponse_init_default \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgTimeout_init_default \ + { \ + false, ibc_core_channel_v1_Packet_init_default, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgTimeoutResponse_init_default \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgTimeoutOnClose_init_default \ + { \ + false, ibc_core_channel_v1_Packet_init_default, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_init_default \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgAcknowledgement_init_default \ + { \ + false, ibc_core_channel_v1_Packet_init_default, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgAcknowledgementResponse_init_default \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgChannelOpenInit_init_zero \ + { \ + {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenTry_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, \ + false, ibc_core_client_v1_Height_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenAck_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_init_zero \ + { 0 } +#define ibc_core_channel_v1_MsgChannelOpenConfirm_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_init_zero \ + { 0 } +#define ibc_core_channel_v1_MsgChannelCloseInit_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_init_zero \ + { 0 } +#define ibc_core_channel_v1_MsgChannelCloseConfirm_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_init_zero \ + { 0 } +#define ibc_core_channel_v1_MsgRecvPacket_init_zero \ + { \ + false, ibc_core_channel_v1_Packet_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgRecvPacketResponse_init_zero \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgTimeout_init_zero \ + { \ + false, ibc_core_channel_v1_Packet_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgTimeoutResponse_init_zero \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgTimeoutOnClose_init_zero \ + { \ + false, ibc_core_channel_v1_Packet_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_init_zero \ + { _ibc_core_channel_v1_ResponseResultType_MIN } +#define ibc_core_channel_v1_MsgAcknowledgement_init_zero \ + { \ + false, ibc_core_channel_v1_Packet_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_channel_v1_MsgAcknowledgementResponse_init_zero \ + { _ibc_core_channel_v1_ResponseResultType_MIN } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_channel_v1_MsgChannelOpenInit_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenInit_channel_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenInit_signer_tag 3 +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_channel_id_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_version_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenTry_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenTry_previous_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenTry_channel_tag 3 +#define ibc_core_channel_v1_MsgChannelOpenTry_counterparty_version_tag 4 +#define ibc_core_channel_v1_MsgChannelOpenTry_proof_init_tag 5 +#define ibc_core_channel_v1_MsgChannelOpenTry_proof_height_tag 6 +#define ibc_core_channel_v1_MsgChannelOpenTry_signer_tag 7 +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_version_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenAck_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenAck_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenAck_counterparty_channel_id_tag 3 +#define ibc_core_channel_v1_MsgChannelOpenAck_counterparty_version_tag 4 +#define ibc_core_channel_v1_MsgChannelOpenAck_proof_try_tag 5 +#define ibc_core_channel_v1_MsgChannelOpenAck_proof_height_tag 6 +#define ibc_core_channel_v1_MsgChannelOpenAck_signer_tag 7 +#define ibc_core_channel_v1_MsgChannelOpenConfirm_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelOpenConfirm_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelOpenConfirm_proof_ack_tag 3 +#define ibc_core_channel_v1_MsgChannelOpenConfirm_proof_height_tag 4 +#define ibc_core_channel_v1_MsgChannelOpenConfirm_signer_tag 5 +#define ibc_core_channel_v1_MsgChannelCloseInit_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelCloseInit_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelCloseInit_signer_tag 3 +#define ibc_core_channel_v1_MsgChannelCloseConfirm_port_id_tag 1 +#define ibc_core_channel_v1_MsgChannelCloseConfirm_channel_id_tag 2 +#define ibc_core_channel_v1_MsgChannelCloseConfirm_proof_init_tag 3 +#define ibc_core_channel_v1_MsgChannelCloseConfirm_proof_height_tag 4 +#define ibc_core_channel_v1_MsgChannelCloseConfirm_signer_tag 5 +#define ibc_core_channel_v1_MsgRecvPacket_packet_tag 1 +#define ibc_core_channel_v1_MsgRecvPacket_proof_commitment_tag 2 +#define ibc_core_channel_v1_MsgRecvPacket_proof_height_tag 3 +#define ibc_core_channel_v1_MsgRecvPacket_signer_tag 4 +#define ibc_core_channel_v1_MsgRecvPacketResponse_result_tag 1 +#define ibc_core_channel_v1_MsgTimeout_packet_tag 1 +#define ibc_core_channel_v1_MsgTimeout_proof_unreceived_tag 2 +#define ibc_core_channel_v1_MsgTimeout_proof_height_tag 3 +#define ibc_core_channel_v1_MsgTimeout_next_sequence_recv_tag 4 +#define ibc_core_channel_v1_MsgTimeout_signer_tag 5 +#define ibc_core_channel_v1_MsgTimeoutResponse_result_tag 1 +#define ibc_core_channel_v1_MsgTimeoutOnClose_packet_tag 1 +#define ibc_core_channel_v1_MsgTimeoutOnClose_proof_unreceived_tag 2 +#define ibc_core_channel_v1_MsgTimeoutOnClose_proof_close_tag 3 +#define ibc_core_channel_v1_MsgTimeoutOnClose_proof_height_tag 4 +#define ibc_core_channel_v1_MsgTimeoutOnClose_next_sequence_recv_tag 5 +#define ibc_core_channel_v1_MsgTimeoutOnClose_signer_tag 6 +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_result_tag 1 +#define ibc_core_channel_v1_MsgAcknowledgement_packet_tag 1 +#define ibc_core_channel_v1_MsgAcknowledgement_acknowledgement_tag 2 +#define ibc_core_channel_v1_MsgAcknowledgement_proof_acked_tag 3 +#define ibc_core_channel_v1_MsgAcknowledgement_proof_height_tag 4 +#define ibc_core_channel_v1_MsgAcknowledgement_signer_tag 5 +#define ibc_core_channel_v1_MsgAcknowledgementResponse_result_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_channel_v1_MsgChannelOpenInit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, channel, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_channel_v1_MsgChannelOpenInit_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenInit_DEFAULT NULL +#define ibc_core_channel_v1_MsgChannelOpenInit_channel_MSGTYPE ibc_core_channel_v1_Channel + +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, version, 2) +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelOpenTry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, previous_channel_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, channel, 3) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_version, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_init, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 6) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 7) +#define ibc_core_channel_v1_MsgChannelOpenTry_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenTry_DEFAULT NULL +#define ibc_core_channel_v1_MsgChannelOpenTry_channel_MSGTYPE ibc_core_channel_v1_Channel +#define ibc_core_channel_v1_MsgChannelOpenTry_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelOpenAck_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_channel_id, 3) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_version, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_try, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 6) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 7) +#define ibc_core_channel_v1_MsgChannelOpenAck_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenAck_DEFAULT NULL +#define ibc_core_channel_v1_MsgChannelOpenAck_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_FIELDLIST(X, a) + +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelOpenConfirm_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_ack, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 5) +#define ibc_core_channel_v1_MsgChannelOpenConfirm_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelOpenConfirm_DEFAULT NULL +#define ibc_core_channel_v1_MsgChannelOpenConfirm_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_FIELDLIST(X, a) + +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelCloseInit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_channel_v1_MsgChannelCloseInit_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelCloseInit_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_FIELDLIST(X, a) + +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgChannelCloseConfirm_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, port_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_init, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 5) +#define ibc_core_channel_v1_MsgChannelCloseConfirm_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgChannelCloseConfirm_DEFAULT NULL +#define ibc_core_channel_v1_MsgChannelCloseConfirm_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_FIELDLIST(X, a) + +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgRecvPacket_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_commitment, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 4) +#define ibc_core_channel_v1_MsgRecvPacket_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgRecvPacket_DEFAULT NULL +#define ibc_core_channel_v1_MsgRecvPacket_packet_MSGTYPE ibc_core_channel_v1_Packet +#define ibc_core_channel_v1_MsgRecvPacket_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgRecvPacketResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 1) +#define ibc_core_channel_v1_MsgRecvPacketResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgRecvPacketResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgTimeout_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_unreceived, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) \ + X(a, STATIC, SINGULAR, UINT64, next_sequence_recv, 4) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 5) +#define ibc_core_channel_v1_MsgTimeout_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgTimeout_DEFAULT NULL +#define ibc_core_channel_v1_MsgTimeout_packet_MSGTYPE ibc_core_channel_v1_Packet +#define ibc_core_channel_v1_MsgTimeout_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgTimeoutResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 1) +#define ibc_core_channel_v1_MsgTimeoutResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgTimeoutResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgTimeoutOnClose_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_unreceived, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_close, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) \ + X(a, STATIC, SINGULAR, UINT64, next_sequence_recv, 5) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 6) +#define ibc_core_channel_v1_MsgTimeoutOnClose_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgTimeoutOnClose_DEFAULT NULL +#define ibc_core_channel_v1_MsgTimeoutOnClose_packet_MSGTYPE ibc_core_channel_v1_Packet +#define ibc_core_channel_v1_MsgTimeoutOnClose_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 1) +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_DEFAULT NULL + +#define ibc_core_channel_v1_MsgAcknowledgement_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, packet, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, acknowledgement, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_acked, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 5) +#define ibc_core_channel_v1_MsgAcknowledgement_CALLBACK pb_default_field_callback +#define ibc_core_channel_v1_MsgAcknowledgement_DEFAULT NULL +#define ibc_core_channel_v1_MsgAcknowledgement_packet_MSGTYPE ibc_core_channel_v1_Packet +#define ibc_core_channel_v1_MsgAcknowledgement_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_channel_v1_MsgAcknowledgementResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 1) +#define ibc_core_channel_v1_MsgAcknowledgementResponse_CALLBACK NULL +#define ibc_core_channel_v1_MsgAcknowledgementResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenInit_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenInitResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenTry_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenTryResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenAck_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenAckResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenConfirm_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelOpenConfirmResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelCloseInit_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelCloseInitResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelCloseConfirm_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgChannelCloseConfirmResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgRecvPacket_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgRecvPacketResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgTimeout_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgTimeoutResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgTimeoutOnClose_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgTimeoutOnCloseResponse_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgAcknowledgement_msg; +extern const pb_msgdesc_t ibc_core_channel_v1_MsgAcknowledgementResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_channel_v1_MsgChannelOpenInit_fields &ibc_core_channel_v1_MsgChannelOpenInit_msg +#define ibc_core_channel_v1_MsgChannelOpenInitResponse_fields &ibc_core_channel_v1_MsgChannelOpenInitResponse_msg +#define ibc_core_channel_v1_MsgChannelOpenTry_fields &ibc_core_channel_v1_MsgChannelOpenTry_msg +#define ibc_core_channel_v1_MsgChannelOpenTryResponse_fields &ibc_core_channel_v1_MsgChannelOpenTryResponse_msg +#define ibc_core_channel_v1_MsgChannelOpenAck_fields &ibc_core_channel_v1_MsgChannelOpenAck_msg +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_fields &ibc_core_channel_v1_MsgChannelOpenAckResponse_msg +#define ibc_core_channel_v1_MsgChannelOpenConfirm_fields &ibc_core_channel_v1_MsgChannelOpenConfirm_msg +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_fields &ibc_core_channel_v1_MsgChannelOpenConfirmResponse_msg +#define ibc_core_channel_v1_MsgChannelCloseInit_fields &ibc_core_channel_v1_MsgChannelCloseInit_msg +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_fields &ibc_core_channel_v1_MsgChannelCloseInitResponse_msg +#define ibc_core_channel_v1_MsgChannelCloseConfirm_fields &ibc_core_channel_v1_MsgChannelCloseConfirm_msg +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_fields &ibc_core_channel_v1_MsgChannelCloseConfirmResponse_msg +#define ibc_core_channel_v1_MsgRecvPacket_fields &ibc_core_channel_v1_MsgRecvPacket_msg +#define ibc_core_channel_v1_MsgRecvPacketResponse_fields &ibc_core_channel_v1_MsgRecvPacketResponse_msg +#define ibc_core_channel_v1_MsgTimeout_fields &ibc_core_channel_v1_MsgTimeout_msg +#define ibc_core_channel_v1_MsgTimeoutResponse_fields &ibc_core_channel_v1_MsgTimeoutResponse_msg +#define ibc_core_channel_v1_MsgTimeoutOnClose_fields &ibc_core_channel_v1_MsgTimeoutOnClose_msg +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_fields &ibc_core_channel_v1_MsgTimeoutOnCloseResponse_msg +#define ibc_core_channel_v1_MsgAcknowledgement_fields &ibc_core_channel_v1_MsgAcknowledgement_msg +#define ibc_core_channel_v1_MsgAcknowledgementResponse_fields &ibc_core_channel_v1_MsgAcknowledgementResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_channel_v1_MsgChannelOpenInit_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelOpenInitResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelOpenTry_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelOpenTryResponse_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelOpenAck_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelOpenConfirm_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelCloseInit_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgChannelCloseConfirm_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgRecvPacket_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgTimeout_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgTimeoutOnClose_size depends on runtime parameters */ +/* ibc_core_channel_v1_MsgAcknowledgement_size depends on runtime parameters */ +#define IBC_CORE_CHANNEL_V1_IBC_CORE_CHANNEL_V1_TX_PB_H_MAX_SIZE ibc_core_channel_v1_MsgRecvPacketResponse_size +#define ibc_core_channel_v1_MsgAcknowledgementResponse_size 2 +#define ibc_core_channel_v1_MsgChannelCloseConfirmResponse_size 0 +#define ibc_core_channel_v1_MsgChannelCloseInitResponse_size 0 +#define ibc_core_channel_v1_MsgChannelOpenAckResponse_size 0 +#define ibc_core_channel_v1_MsgChannelOpenConfirmResponse_size 0 +#define ibc_core_channel_v1_MsgRecvPacketResponse_size 2 +#define ibc_core_channel_v1_MsgTimeoutOnCloseResponse_size 2 +#define ibc_core_channel_v1_MsgTimeoutResponse_size 2 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/client/v1/client.pb.c b/app/src/protobuf/ibc/core/client/v1/client.pb.c new file mode 100644 index 0000000..b7f4137 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/client.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/client/v1/client.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_client_v1_IdentifiedClientState, ibc_core_client_v1_IdentifiedClientState, AUTO) + +PB_BIND(ibc_core_client_v1_ConsensusStateWithHeight, ibc_core_client_v1_ConsensusStateWithHeight, AUTO) + +PB_BIND(ibc_core_client_v1_ClientConsensusStates, ibc_core_client_v1_ClientConsensusStates, AUTO) + +PB_BIND(ibc_core_client_v1_Height, ibc_core_client_v1_Height, AUTO) + +PB_BIND(ibc_core_client_v1_Params, ibc_core_client_v1_Params, AUTO) diff --git a/app/src/protobuf/ibc/core/client/v1/client.pb.h b/app/src/protobuf/ibc/core/client/v1/client.pb.h new file mode 100644 index 0000000..a178b9a --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/client.pb.h @@ -0,0 +1,176 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_CLIENT_PB_H_INCLUDED +#define PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_CLIENT_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* IdentifiedClientState defines a client state with an additional client + identifier field. */ +typedef struct _ibc_core_client_v1_IdentifiedClientState { + /* client identifier */ + pb_callback_t client_id; + /* client state */ + bool has_client_state; + google_protobuf_Any client_state; +} ibc_core_client_v1_IdentifiedClientState; + +/* ClientConsensusStates defines all the stored consensus states for a given + client. */ +typedef struct _ibc_core_client_v1_ClientConsensusStates { + /* client identifier */ + pb_callback_t client_id; + /* consensus states and their heights associated with the client */ + pb_callback_t consensus_states; +} ibc_core_client_v1_ClientConsensusStates; + +/* Height is a monotonically increasing data type + that can be compared against another Height for the purposes of updating and + freezing clients + + Normally the RevisionHeight is incremented at each height while keeping + RevisionNumber the same. However some consensus algorithms may choose to + reset the height in certain conditions e.g. hard forks, state-machine + breaking changes In these cases, the RevisionNumber is incremented so that + height continues to be monitonically increasing even as the RevisionHeight + gets reset */ +typedef struct _ibc_core_client_v1_Height { + /* the revision that the client is currently on */ + uint64_t revision_number; + /* the height within the given revision */ + uint64_t revision_height; +} ibc_core_client_v1_Height; + +/* ConsensusStateWithHeight defines a consensus state with an additional height + field. */ +typedef struct _ibc_core_client_v1_ConsensusStateWithHeight { + /* consensus state height */ + bool has_height; + ibc_core_client_v1_Height height; + /* consensus state */ + bool has_consensus_state; + google_protobuf_Any consensus_state; +} ibc_core_client_v1_ConsensusStateWithHeight; + +/* Params defines the set of IBC light client parameters. */ +typedef struct _ibc_core_client_v1_Params { + /* allowed_clients defines the list of allowed client state types which can be created + and interacted with. If a client type is removed from the allowed clients list, usage + of this client will be disabled until it is added again to the list. */ + pb_callback_t allowed_clients; +} ibc_core_client_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_client_v1_IdentifiedClientState_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define ibc_core_client_v1_ConsensusStateWithHeight_init_default \ + { false, ibc_core_client_v1_Height_init_default, false, google_protobuf_Any_init_default } +#define ibc_core_client_v1_ClientConsensusStates_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_Height_init_default \ + { 0, 0 } +#define ibc_core_client_v1_Params_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_IdentifiedClientState_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define ibc_core_client_v1_ConsensusStateWithHeight_init_zero \ + { false, ibc_core_client_v1_Height_init_zero, false, google_protobuf_Any_init_zero } +#define ibc_core_client_v1_ClientConsensusStates_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_Height_init_zero \ + { 0, 0 } +#define ibc_core_client_v1_Params_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_client_v1_IdentifiedClientState_client_id_tag 1 +#define ibc_core_client_v1_IdentifiedClientState_client_state_tag 2 +#define ibc_core_client_v1_ClientConsensusStates_client_id_tag 1 +#define ibc_core_client_v1_ClientConsensusStates_consensus_states_tag 2 +#define ibc_core_client_v1_Height_revision_number_tag 1 +#define ibc_core_client_v1_Height_revision_height_tag 2 +#define ibc_core_client_v1_ConsensusStateWithHeight_height_tag 1 +#define ibc_core_client_v1_ConsensusStateWithHeight_consensus_state_tag 2 +#define ibc_core_client_v1_Params_allowed_clients_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_client_v1_IdentifiedClientState_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 2) +#define ibc_core_client_v1_IdentifiedClientState_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_IdentifiedClientState_DEFAULT NULL +#define ibc_core_client_v1_IdentifiedClientState_client_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_ConsensusStateWithHeight_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 2) +#define ibc_core_client_v1_ConsensusStateWithHeight_CALLBACK NULL +#define ibc_core_client_v1_ConsensusStateWithHeight_DEFAULT NULL +#define ibc_core_client_v1_ConsensusStateWithHeight_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_core_client_v1_ConsensusStateWithHeight_consensus_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_ClientConsensusStates_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, consensus_states, 2) +#define ibc_core_client_v1_ClientConsensusStates_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_ClientConsensusStates_DEFAULT NULL +#define ibc_core_client_v1_ClientConsensusStates_consensus_states_MSGTYPE ibc_core_client_v1_ConsensusStateWithHeight + +#define ibc_core_client_v1_Height_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, revision_number, 1) \ + X(a, STATIC, SINGULAR, UINT64, revision_height, 2) +#define ibc_core_client_v1_Height_CALLBACK NULL +#define ibc_core_client_v1_Height_DEFAULT NULL + +#define ibc_core_client_v1_Params_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, allowed_clients, 1) +#define ibc_core_client_v1_Params_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_Params_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_client_v1_IdentifiedClientState_msg; +extern const pb_msgdesc_t ibc_core_client_v1_ConsensusStateWithHeight_msg; +extern const pb_msgdesc_t ibc_core_client_v1_ClientConsensusStates_msg; +extern const pb_msgdesc_t ibc_core_client_v1_Height_msg; +extern const pb_msgdesc_t ibc_core_client_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_client_v1_IdentifiedClientState_fields &ibc_core_client_v1_IdentifiedClientState_msg +#define ibc_core_client_v1_ConsensusStateWithHeight_fields &ibc_core_client_v1_ConsensusStateWithHeight_msg +#define ibc_core_client_v1_ClientConsensusStates_fields &ibc_core_client_v1_ClientConsensusStates_msg +#define ibc_core_client_v1_Height_fields &ibc_core_client_v1_Height_msg +#define ibc_core_client_v1_Params_fields &ibc_core_client_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_client_v1_IdentifiedClientState_size depends on runtime parameters */ +/* ibc_core_client_v1_ClientConsensusStates_size depends on runtime parameters */ +/* ibc_core_client_v1_Params_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_CLIENT_PB_H_MAX_SIZE ibc_core_client_v1_ConsensusStateWithHeight_size +#define ibc_core_client_v1_ConsensusStateWithHeight_size (30 + google_protobuf_Any_size) +#endif +#define ibc_core_client_v1_Height_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/client/v1/genesis.pb.c b/app/src/protobuf/ibc/core/client/v1/genesis.pb.c new file mode 100644 index 0000000..289b3bd --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/genesis.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/client/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_client_v1_GenesisState, ibc_core_client_v1_GenesisState, AUTO) + +PB_BIND(ibc_core_client_v1_GenesisMetadata, ibc_core_client_v1_GenesisMetadata, AUTO) + +PB_BIND(ibc_core_client_v1_IdentifiedGenesisMetadata, ibc_core_client_v1_IdentifiedGenesisMetadata, AUTO) diff --git a/app/src/protobuf/ibc/core/client/v1/genesis.pb.h b/app/src/protobuf/ibc/core/client/v1/genesis.pb.h new file mode 100644 index 0000000..571b876 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/genesis.pb.h @@ -0,0 +1,133 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ibc client submodule's genesis state. */ +typedef struct _ibc_core_client_v1_GenesisState { + /* client states with their corresponding identifiers */ + pb_callback_t clients; + /* consensus states from each client */ + pb_callback_t clients_consensus; + /* metadata from each client */ + pb_callback_t clients_metadata; + bool has_params; + ibc_core_client_v1_Params params; + /* Deprecated: create_localhost has been deprecated. + The localhost client is automatically created at genesis. */ + bool create_localhost; + /* the sequence for the next generated client identifier */ + uint64_t next_client_sequence; +} ibc_core_client_v1_GenesisState; + +/* GenesisMetadata defines the genesis type for metadata that clients may return + with ExportMetadata */ +typedef struct _ibc_core_client_v1_GenesisMetadata { + /* store key of metadata without clientID-prefix */ + pb_callback_t key; + /* metadata value */ + pb_callback_t value; +} ibc_core_client_v1_GenesisMetadata; + +/* IdentifiedGenesisMetadata has the client metadata with the corresponding + client id. */ +typedef struct _ibc_core_client_v1_IdentifiedGenesisMetadata { + pb_callback_t client_id; + pb_callback_t client_metadata; +} ibc_core_client_v1_IdentifiedGenesisMetadata; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_client_v1_GenesisState_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Params_init_default, 0, 0 } +#define ibc_core_client_v1_GenesisMetadata_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_IdentifiedGenesisMetadata_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_GenesisState_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Params_init_zero, 0, 0 } +#define ibc_core_client_v1_GenesisMetadata_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_IdentifiedGenesisMetadata_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_client_v1_GenesisState_clients_tag 1 +#define ibc_core_client_v1_GenesisState_clients_consensus_tag 2 +#define ibc_core_client_v1_GenesisState_clients_metadata_tag 3 +#define ibc_core_client_v1_GenesisState_params_tag 4 +#define ibc_core_client_v1_GenesisState_create_localhost_tag 5 +#define ibc_core_client_v1_GenesisState_next_client_sequence_tag 6 +#define ibc_core_client_v1_GenesisMetadata_key_tag 1 +#define ibc_core_client_v1_GenesisMetadata_value_tag 2 +#define ibc_core_client_v1_IdentifiedGenesisMetadata_client_id_tag 1 +#define ibc_core_client_v1_IdentifiedGenesisMetadata_client_metadata_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_client_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, clients, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, clients_consensus, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, clients_metadata, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 4) \ + X(a, STATIC, SINGULAR, BOOL, create_localhost, 5) \ + X(a, STATIC, SINGULAR, UINT64, next_client_sequence, 6) +#define ibc_core_client_v1_GenesisState_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_GenesisState_DEFAULT NULL +#define ibc_core_client_v1_GenesisState_clients_MSGTYPE ibc_core_client_v1_IdentifiedClientState +#define ibc_core_client_v1_GenesisState_clients_consensus_MSGTYPE ibc_core_client_v1_ClientConsensusStates +#define ibc_core_client_v1_GenesisState_clients_metadata_MSGTYPE ibc_core_client_v1_IdentifiedGenesisMetadata +#define ibc_core_client_v1_GenesisState_params_MSGTYPE ibc_core_client_v1_Params + +#define ibc_core_client_v1_GenesisMetadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) +#define ibc_core_client_v1_GenesisMetadata_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_GenesisMetadata_DEFAULT NULL + +#define ibc_core_client_v1_IdentifiedGenesisMetadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, client_metadata, 2) +#define ibc_core_client_v1_IdentifiedGenesisMetadata_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_IdentifiedGenesisMetadata_DEFAULT NULL +#define ibc_core_client_v1_IdentifiedGenesisMetadata_client_metadata_MSGTYPE ibc_core_client_v1_GenesisMetadata + +extern const pb_msgdesc_t ibc_core_client_v1_GenesisState_msg; +extern const pb_msgdesc_t ibc_core_client_v1_GenesisMetadata_msg; +extern const pb_msgdesc_t ibc_core_client_v1_IdentifiedGenesisMetadata_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_client_v1_GenesisState_fields &ibc_core_client_v1_GenesisState_msg +#define ibc_core_client_v1_GenesisMetadata_fields &ibc_core_client_v1_GenesisMetadata_msg +#define ibc_core_client_v1_IdentifiedGenesisMetadata_fields &ibc_core_client_v1_IdentifiedGenesisMetadata_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_client_v1_GenesisState_size depends on runtime parameters */ +/* ibc_core_client_v1_GenesisMetadata_size depends on runtime parameters */ +/* ibc_core_client_v1_IdentifiedGenesisMetadata_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/client/v1/query.pb.c b/app/src/protobuf/ibc/core/client/v1/query.pb.c new file mode 100644 index 0000000..06fb8e9 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/query.pb.c @@ -0,0 +1,43 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/client/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_client_v1_QueryClientStateRequest, ibc_core_client_v1_QueryClientStateRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientStateResponse, ibc_core_client_v1_QueryClientStateResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientStatesRequest, ibc_core_client_v1_QueryClientStatesRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientStatesResponse, ibc_core_client_v1_QueryClientStatesResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStateRequest, ibc_core_client_v1_QueryConsensusStateRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStateResponse, ibc_core_client_v1_QueryConsensusStateResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStatesRequest, ibc_core_client_v1_QueryConsensusStatesRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStatesResponse, ibc_core_client_v1_QueryConsensusStatesResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStateHeightsRequest, ibc_core_client_v1_QueryConsensusStateHeightsRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryConsensusStateHeightsResponse, ibc_core_client_v1_QueryConsensusStateHeightsResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientStatusRequest, ibc_core_client_v1_QueryClientStatusRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientStatusResponse, ibc_core_client_v1_QueryClientStatusResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientParamsRequest, ibc_core_client_v1_QueryClientParamsRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryClientParamsResponse, ibc_core_client_v1_QueryClientParamsResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryUpgradedClientStateRequest, ibc_core_client_v1_QueryUpgradedClientStateRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryUpgradedClientStateResponse, ibc_core_client_v1_QueryUpgradedClientStateResponse, AUTO) + +PB_BIND(ibc_core_client_v1_QueryUpgradedConsensusStateRequest, ibc_core_client_v1_QueryUpgradedConsensusStateRequest, AUTO) + +PB_BIND(ibc_core_client_v1_QueryUpgradedConsensusStateResponse, ibc_core_client_v1_QueryUpgradedConsensusStateResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/client/v1/query.pb.h b/app/src/protobuf/ibc/core/client/v1/query.pb.h new file mode 100644 index 0000000..e7ec9f6 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/query.pb.h @@ -0,0 +1,487 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryClientStateRequest is the request type for the Query/ClientState RPC + method */ +typedef struct _ibc_core_client_v1_QueryClientStateRequest { + /* client state unique identifier */ + pb_callback_t client_id; +} ibc_core_client_v1_QueryClientStateRequest; + +/* QueryClientStateResponse is the response type for the Query/ClientState RPC + method. Besides the client state, it includes a proof and the height from + which the proof was retrieved. */ +typedef struct _ibc_core_client_v1_QueryClientStateResponse { + /* client state associated with the request identifier */ + bool has_client_state; + google_protobuf_Any client_state; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_client_v1_QueryClientStateResponse; + +/* QueryClientStatesRequest is the request type for the Query/ClientStates RPC + method */ +typedef struct _ibc_core_client_v1_QueryClientStatesRequest { + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_client_v1_QueryClientStatesRequest; + +/* QueryClientStatesResponse is the response type for the Query/ClientStates RPC + method. */ +typedef struct _ibc_core_client_v1_QueryClientStatesResponse { + /* list of stored ClientStates of the chain. */ + pb_callback_t client_states; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_core_client_v1_QueryClientStatesResponse; + +/* QueryConsensusStateRequest is the request type for the Query/ConsensusState + RPC method. Besides the consensus state, it includes a proof and the height + from which the proof was retrieved. */ +typedef struct _ibc_core_client_v1_QueryConsensusStateRequest { + /* client identifier */ + pb_callback_t client_id; + /* consensus state revision number */ + uint64_t revision_number; + /* consensus state revision height */ + uint64_t revision_height; + /* latest_height overrrides the height field and queries the latest stored + ConsensusState */ + bool latest_height; +} ibc_core_client_v1_QueryConsensusStateRequest; + +/* QueryConsensusStateResponse is the response type for the Query/ConsensusState + RPC method */ +typedef struct _ibc_core_client_v1_QueryConsensusStateResponse { + /* consensus state associated with the client identifier at the given height */ + bool has_consensus_state; + google_protobuf_Any consensus_state; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_client_v1_QueryConsensusStateResponse; + +/* QueryConsensusStatesRequest is the request type for the Query/ConsensusStates + RPC method. */ +typedef struct _ibc_core_client_v1_QueryConsensusStatesRequest { + /* client identifier */ + pb_callback_t client_id; + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_client_v1_QueryConsensusStatesRequest; + +/* QueryConsensusStatesResponse is the response type for the + Query/ConsensusStates RPC method */ +typedef struct _ibc_core_client_v1_QueryConsensusStatesResponse { + /* consensus states associated with the identifier */ + pb_callback_t consensus_states; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_core_client_v1_QueryConsensusStatesResponse; + +/* QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights + RPC method. */ +typedef struct _ibc_core_client_v1_QueryConsensusStateHeightsRequest { + /* client identifier */ + pb_callback_t client_id; + /* pagination request */ + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_client_v1_QueryConsensusStateHeightsRequest; + +/* QueryConsensusStateHeightsResponse is the response type for the + Query/ConsensusStateHeights RPC method */ +typedef struct _ibc_core_client_v1_QueryConsensusStateHeightsResponse { + /* consensus state heights */ + pb_callback_t consensus_state_heights; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; +} ibc_core_client_v1_QueryConsensusStateHeightsResponse; + +/* QueryClientStatusRequest is the request type for the Query/ClientStatus RPC + method */ +typedef struct _ibc_core_client_v1_QueryClientStatusRequest { + /* client unique identifier */ + pb_callback_t client_id; +} ibc_core_client_v1_QueryClientStatusRequest; + +/* QueryClientStatusResponse is the response type for the Query/ClientStatus RPC + method. It returns the current status of the IBC client. */ +typedef struct _ibc_core_client_v1_QueryClientStatusResponse { + pb_callback_t status; +} ibc_core_client_v1_QueryClientStatusResponse; + +/* QueryClientParamsRequest is the request type for the Query/ClientParams RPC + method. */ +typedef struct _ibc_core_client_v1_QueryClientParamsRequest { + char dummy_field; +} ibc_core_client_v1_QueryClientParamsRequest; + +/* QueryClientParamsResponse is the response type for the Query/ClientParams RPC + method. */ +typedef struct _ibc_core_client_v1_QueryClientParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + ibc_core_client_v1_Params params; +} ibc_core_client_v1_QueryClientParamsResponse; + +/* QueryUpgradedClientStateRequest is the request type for the + Query/UpgradedClientState RPC method */ +typedef struct _ibc_core_client_v1_QueryUpgradedClientStateRequest { + char dummy_field; +} ibc_core_client_v1_QueryUpgradedClientStateRequest; + +/* QueryUpgradedClientStateResponse is the response type for the + Query/UpgradedClientState RPC method. */ +typedef struct _ibc_core_client_v1_QueryUpgradedClientStateResponse { + /* client state associated with the request identifier */ + bool has_upgraded_client_state; + google_protobuf_Any upgraded_client_state; +} ibc_core_client_v1_QueryUpgradedClientStateResponse; + +/* QueryUpgradedConsensusStateRequest is the request type for the + Query/UpgradedConsensusState RPC method */ +typedef struct _ibc_core_client_v1_QueryUpgradedConsensusStateRequest { + char dummy_field; +} ibc_core_client_v1_QueryUpgradedConsensusStateRequest; + +/* QueryUpgradedConsensusStateResponse is the response type for the + Query/UpgradedConsensusState RPC method. */ +typedef struct _ibc_core_client_v1_QueryUpgradedConsensusStateResponse { + /* Consensus state associated with the request identifier */ + bool has_upgraded_consensus_state; + google_protobuf_Any upgraded_consensus_state; +} ibc_core_client_v1_QueryUpgradedConsensusStateResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_client_v1_QueryClientStateRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientStateResponse_init_default \ + { false, google_protobuf_Any_init_default, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_client_v1_QueryClientStatesRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_client_v1_QueryClientStatesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_core_client_v1_QueryConsensusStateRequest_init_default \ + { {{NULL}, NULL}, 0, 0, 0 } +#define ibc_core_client_v1_QueryConsensusStateResponse_init_default \ + { false, google_protobuf_Any_init_default, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_client_v1_QueryConsensusStatesRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_client_v1_QueryConsensusStatesResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_init_default \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default } +#define ibc_core_client_v1_QueryClientStatusRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientStatusResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientParamsRequest_init_default \ + { 0 } +#define ibc_core_client_v1_QueryClientParamsResponse_init_default \ + { false, ibc_core_client_v1_Params_init_default } +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_init_default \ + { 0 } +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_init_default \ + { 0 } +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_init_default \ + { false, google_protobuf_Any_init_default } +#define ibc_core_client_v1_QueryClientStateRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_client_v1_QueryClientStatesRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_client_v1_QueryClientStatesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_core_client_v1_QueryConsensusStateRequest_init_zero \ + { {{NULL}, NULL}, 0, 0, 0 } +#define ibc_core_client_v1_QueryConsensusStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_client_v1_QueryConsensusStatesRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_client_v1_QueryConsensusStatesResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero } +#define ibc_core_client_v1_QueryClientStatusRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientStatusResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_client_v1_QueryClientParamsRequest_init_zero \ + { 0 } +#define ibc_core_client_v1_QueryClientParamsResponse_init_zero \ + { false, ibc_core_client_v1_Params_init_zero } +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_init_zero \ + { 0 } +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero } +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_init_zero \ + { 0 } +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_client_v1_QueryClientStateRequest_client_id_tag 1 +#define ibc_core_client_v1_QueryClientStateResponse_client_state_tag 1 +#define ibc_core_client_v1_QueryClientStateResponse_proof_tag 2 +#define ibc_core_client_v1_QueryClientStateResponse_proof_height_tag 3 +#define ibc_core_client_v1_QueryClientStatesRequest_pagination_tag 1 +#define ibc_core_client_v1_QueryClientStatesResponse_client_states_tag 1 +#define ibc_core_client_v1_QueryClientStatesResponse_pagination_tag 2 +#define ibc_core_client_v1_QueryConsensusStateRequest_client_id_tag 1 +#define ibc_core_client_v1_QueryConsensusStateRequest_revision_number_tag 2 +#define ibc_core_client_v1_QueryConsensusStateRequest_revision_height_tag 3 +#define ibc_core_client_v1_QueryConsensusStateRequest_latest_height_tag 4 +#define ibc_core_client_v1_QueryConsensusStateResponse_consensus_state_tag 1 +#define ibc_core_client_v1_QueryConsensusStateResponse_proof_tag 2 +#define ibc_core_client_v1_QueryConsensusStateResponse_proof_height_tag 3 +#define ibc_core_client_v1_QueryConsensusStatesRequest_client_id_tag 1 +#define ibc_core_client_v1_QueryConsensusStatesRequest_pagination_tag 2 +#define ibc_core_client_v1_QueryConsensusStatesResponse_consensus_states_tag 1 +#define ibc_core_client_v1_QueryConsensusStatesResponse_pagination_tag 2 +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_client_id_tag 1 +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_pagination_tag 2 +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_consensus_state_heights_tag 1 +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_pagination_tag 2 +#define ibc_core_client_v1_QueryClientStatusRequest_client_id_tag 1 +#define ibc_core_client_v1_QueryClientStatusResponse_status_tag 1 +#define ibc_core_client_v1_QueryClientParamsResponse_params_tag 1 +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_upgraded_client_state_tag 1 +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_upgraded_consensus_state_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_client_v1_QueryClientStateRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, client_id, 1) +#define ibc_core_client_v1_QueryClientStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryClientStateRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryClientStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_client_v1_QueryClientStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryClientStateResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryClientStateResponse_client_state_MSGTYPE google_protobuf_Any +#define ibc_core_client_v1_QueryClientStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_client_v1_QueryClientStatesRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define ibc_core_client_v1_QueryClientStatesRequest_CALLBACK NULL +#define ibc_core_client_v1_QueryClientStatesRequest_DEFAULT NULL +#define ibc_core_client_v1_QueryClientStatesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_client_v1_QueryClientStatesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, client_states, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_client_v1_QueryClientStatesResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryClientStatesResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryClientStatesResponse_client_states_MSGTYPE ibc_core_client_v1_IdentifiedClientState +#define ibc_core_client_v1_QueryClientStatesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_core_client_v1_QueryConsensusStateRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, revision_number, 2) \ + X(a, STATIC, SINGULAR, UINT64, revision_height, 3) \ + X(a, STATIC, SINGULAR, BOOL, latest_height, 4) +#define ibc_core_client_v1_QueryConsensusStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStateRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryConsensusStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_client_v1_QueryConsensusStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStateResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryConsensusStateResponse_consensus_state_MSGTYPE google_protobuf_Any +#define ibc_core_client_v1_QueryConsensusStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_client_v1_QueryConsensusStatesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_client_v1_QueryConsensusStatesRequest_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStatesRequest_DEFAULT NULL +#define ibc_core_client_v1_QueryConsensusStatesRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_client_v1_QueryConsensusStatesResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, consensus_states, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_client_v1_QueryConsensusStatesResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStatesResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryConsensusStatesResponse_consensus_states_MSGTYPE ibc_core_client_v1_ConsensusStateWithHeight +#define ibc_core_client_v1_QueryConsensusStatesResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_DEFAULT NULL +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, consensus_state_heights, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_consensus_state_heights_MSGTYPE ibc_core_client_v1_Height +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse + +#define ibc_core_client_v1_QueryClientStatusRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, client_id, 1) +#define ibc_core_client_v1_QueryClientStatusRequest_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryClientStatusRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryClientStatusResponse_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, status, 1) +#define ibc_core_client_v1_QueryClientStatusResponse_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_QueryClientStatusResponse_DEFAULT NULL + +#define ibc_core_client_v1_QueryClientParamsRequest_FIELDLIST(X, a) + +#define ibc_core_client_v1_QueryClientParamsRequest_CALLBACK NULL +#define ibc_core_client_v1_QueryClientParamsRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryClientParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define ibc_core_client_v1_QueryClientParamsResponse_CALLBACK NULL +#define ibc_core_client_v1_QueryClientParamsResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryClientParamsResponse_params_MSGTYPE ibc_core_client_v1_Params + +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_FIELDLIST(X, a) + +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_CALLBACK NULL +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, upgraded_client_state, 1) +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_CALLBACK NULL +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_upgraded_client_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_FIELDLIST(X, a) + +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_CALLBACK NULL +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_DEFAULT NULL + +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, upgraded_consensus_state, 1) +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_CALLBACK NULL +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_DEFAULT NULL +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_upgraded_consensus_state_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStateRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStateResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStatesRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStatesResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStateRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStateResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStatesRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStatesResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStateHeightsRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryConsensusStateHeightsResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStatusRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientStatusResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientParamsRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryClientParamsResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryUpgradedClientStateRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryUpgradedClientStateResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryUpgradedConsensusStateRequest_msg; +extern const pb_msgdesc_t ibc_core_client_v1_QueryUpgradedConsensusStateResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_client_v1_QueryClientStateRequest_fields &ibc_core_client_v1_QueryClientStateRequest_msg +#define ibc_core_client_v1_QueryClientStateResponse_fields &ibc_core_client_v1_QueryClientStateResponse_msg +#define ibc_core_client_v1_QueryClientStatesRequest_fields &ibc_core_client_v1_QueryClientStatesRequest_msg +#define ibc_core_client_v1_QueryClientStatesResponse_fields &ibc_core_client_v1_QueryClientStatesResponse_msg +#define ibc_core_client_v1_QueryConsensusStateRequest_fields &ibc_core_client_v1_QueryConsensusStateRequest_msg +#define ibc_core_client_v1_QueryConsensusStateResponse_fields &ibc_core_client_v1_QueryConsensusStateResponse_msg +#define ibc_core_client_v1_QueryConsensusStatesRequest_fields &ibc_core_client_v1_QueryConsensusStatesRequest_msg +#define ibc_core_client_v1_QueryConsensusStatesResponse_fields &ibc_core_client_v1_QueryConsensusStatesResponse_msg +#define ibc_core_client_v1_QueryConsensusStateHeightsRequest_fields &ibc_core_client_v1_QueryConsensusStateHeightsRequest_msg +#define ibc_core_client_v1_QueryConsensusStateHeightsResponse_fields \ + &ibc_core_client_v1_QueryConsensusStateHeightsResponse_msg +#define ibc_core_client_v1_QueryClientStatusRequest_fields &ibc_core_client_v1_QueryClientStatusRequest_msg +#define ibc_core_client_v1_QueryClientStatusResponse_fields &ibc_core_client_v1_QueryClientStatusResponse_msg +#define ibc_core_client_v1_QueryClientParamsRequest_fields &ibc_core_client_v1_QueryClientParamsRequest_msg +#define ibc_core_client_v1_QueryClientParamsResponse_fields &ibc_core_client_v1_QueryClientParamsResponse_msg +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_fields &ibc_core_client_v1_QueryUpgradedClientStateRequest_msg +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_fields &ibc_core_client_v1_QueryUpgradedClientStateResponse_msg +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_fields \ + &ibc_core_client_v1_QueryUpgradedConsensusStateRequest_msg +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_fields \ + &ibc_core_client_v1_QueryUpgradedConsensusStateResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_client_v1_QueryClientStateRequest_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryClientStateResponse_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryClientStatesResponse_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStateRequest_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStateResponse_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStatesRequest_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStatesResponse_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStateHeightsRequest_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryConsensusStateHeightsResponse_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryClientStatusRequest_size depends on runtime parameters */ +/* ibc_core_client_v1_QueryClientStatusResponse_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_QUERY_PB_H_MAX_SIZE ibc_core_client_v1_QueryClientStatesRequest_size +#define ibc_core_client_v1_QueryClientStatesRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define ibc_core_client_v1_QueryClientParamsRequest_size 0 +#define ibc_core_client_v1_QueryUpgradedClientStateRequest_size 0 +#define ibc_core_client_v1_QueryUpgradedConsensusStateRequest_size 0 +#if defined(ibc_core_client_v1_Params_size) +#define ibc_core_client_v1_QueryClientParamsResponse_size (6 + ibc_core_client_v1_Params_size) +#endif +#if defined(google_protobuf_Any_size) +#define ibc_core_client_v1_QueryUpgradedClientStateResponse_size (6 + google_protobuf_Any_size) +#define ibc_core_client_v1_QueryUpgradedConsensusStateResponse_size (6 + google_protobuf_Any_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/client/v1/tx.pb.c b/app/src/protobuf/ibc/core/client/v1/tx.pb.c new file mode 100644 index 0000000..e68ff39 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/tx.pb.c @@ -0,0 +1,35 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/client/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_client_v1_MsgCreateClient, ibc_core_client_v1_MsgCreateClient, AUTO) + +PB_BIND(ibc_core_client_v1_MsgCreateClientResponse, ibc_core_client_v1_MsgCreateClientResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpdateClient, ibc_core_client_v1_MsgUpdateClient, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpdateClientResponse, ibc_core_client_v1_MsgUpdateClientResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpgradeClient, ibc_core_client_v1_MsgUpgradeClient, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpgradeClientResponse, ibc_core_client_v1_MsgUpgradeClientResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgSubmitMisbehaviour, ibc_core_client_v1_MsgSubmitMisbehaviour, AUTO) + +PB_BIND(ibc_core_client_v1_MsgSubmitMisbehaviourResponse, ibc_core_client_v1_MsgSubmitMisbehaviourResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgRecoverClient, ibc_core_client_v1_MsgRecoverClient, AUTO) + +PB_BIND(ibc_core_client_v1_MsgRecoverClientResponse, ibc_core_client_v1_MsgRecoverClientResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgIBCSoftwareUpgrade, ibc_core_client_v1_MsgIBCSoftwareUpgrade, AUTO) + +PB_BIND(ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse, ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpdateParams, ibc_core_client_v1_MsgUpdateParams, AUTO) + +PB_BIND(ibc_core_client_v1_MsgUpdateParamsResponse, ibc_core_client_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/client/v1/tx.pb.h b/app/src/protobuf/ibc/core/client/v1/tx.pb.h new file mode 100644 index 0000000..dfc69a5 --- /dev/null +++ b/app/src/protobuf/ibc/core/client/v1/tx.pb.h @@ -0,0 +1,417 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_TX_PB_H_INCLUDED +#define PB_IBC_CORE_CLIENT_V1_IBC_CORE_CLIENT_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "cosmos/upgrade/v1beta1/upgrade.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgCreateClient defines a message to create an IBC client */ +typedef struct _ibc_core_client_v1_MsgCreateClient { + /* light client state */ + bool has_client_state; + google_protobuf_Any client_state; + /* consensus state associated with the client that corresponds to a given + height. */ + bool has_consensus_state; + google_protobuf_Any consensus_state; + /* signer address */ + pb_callback_t signer; +} ibc_core_client_v1_MsgCreateClient; + +/* MsgCreateClientResponse defines the Msg/CreateClient response type. */ +typedef struct _ibc_core_client_v1_MsgCreateClientResponse { + char dummy_field; +} ibc_core_client_v1_MsgCreateClientResponse; + +/* MsgUpdateClient defines an sdk.Msg to update a IBC client state using + the given client message. */ +typedef struct _ibc_core_client_v1_MsgUpdateClient { + /* client unique identifier */ + pb_callback_t client_id; + /* client message to update the light client */ + bool has_client_message; + google_protobuf_Any client_message; + /* signer address */ + pb_callback_t signer; +} ibc_core_client_v1_MsgUpdateClient; + +/* MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ +typedef struct _ibc_core_client_v1_MsgUpdateClientResponse { + char dummy_field; +} ibc_core_client_v1_MsgUpdateClientResponse; + +/* MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client + state */ +typedef struct _ibc_core_client_v1_MsgUpgradeClient { + /* client unique identifier */ + pb_callback_t client_id; + /* upgraded client state */ + bool has_client_state; + google_protobuf_Any client_state; + /* upgraded consensus state, only contains enough information to serve as a + basis of trust in update logic */ + bool has_consensus_state; + google_protobuf_Any consensus_state; + /* proof that old chain committed to new client */ + pb_callback_t proof_upgrade_client; + /* proof that old chain committed to new consensus state */ + pb_callback_t proof_upgrade_consensus_state; + /* signer address */ + pb_callback_t signer; +} ibc_core_client_v1_MsgUpgradeClient; + +/* MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ +typedef struct _ibc_core_client_v1_MsgUpgradeClientResponse { + char dummy_field; +} ibc_core_client_v1_MsgUpgradeClientResponse; + +/* MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for + light client misbehaviour. + This message has been deprecated. Use MsgUpdateClient instead. */ +typedef struct _ibc_core_client_v1_MsgSubmitMisbehaviour { + /* client unique identifier */ + pb_callback_t client_id; + /* misbehaviour used for freezing the light client */ + bool has_misbehaviour; + google_protobuf_Any misbehaviour; + /* signer address */ + pb_callback_t signer; +} ibc_core_client_v1_MsgSubmitMisbehaviour; + +/* MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response + type. */ +typedef struct _ibc_core_client_v1_MsgSubmitMisbehaviourResponse { + char dummy_field; +} ibc_core_client_v1_MsgSubmitMisbehaviourResponse; + +/* MsgRecoverClient defines the message used to recover a frozen or expired client. */ +typedef struct _ibc_core_client_v1_MsgRecoverClient { + /* the client identifier for the client to be updated if the proposal passes */ + pb_callback_t subject_client_id; + /* the substitute client identifier for the client which will replace the subject + client */ + pb_callback_t substitute_client_id; + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; +} ibc_core_client_v1_MsgRecoverClient; + +/* MsgRecoverClientResponse defines the Msg/RecoverClient response type. */ +typedef struct _ibc_core_client_v1_MsgRecoverClientResponse { + char dummy_field; +} ibc_core_client_v1_MsgRecoverClientResponse; + +/* MsgIBCSoftwareUpgrade defines the message used to schedule an upgrade of an IBC client using a v1 governance proposal */ +typedef struct _ibc_core_client_v1_MsgIBCSoftwareUpgrade { + bool has_plan; + cosmos_upgrade_v1beta1_Plan plan; + /* An UpgradedClientState must be provided to perform an IBC breaking upgrade. + This will make the chain commit to the correct upgraded (self) client state + before the upgrade occurs, so that connecting chains can verify that the + new upgraded client is valid by verifying a proof on the previous version + of the chain. This will allow IBC connections to persist smoothly across + planned chain upgrades. Correspondingly, the UpgradedClientState field has been + deprecated in the Cosmos SDK to allow for this logic to exist solely in + the 02-client module. */ + bool has_upgraded_client_state; + google_protobuf_Any upgraded_client_state; + /* signer defaults to the governance account address unless otherwise specified. */ + pb_callback_t signer; +} ibc_core_client_v1_MsgIBCSoftwareUpgrade; + +/* MsgIBCSoftwareUpgradeResponse defines the Msg/IBCSoftwareUpgrade response type. */ +typedef struct _ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse { + char dummy_field; +} ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse; + +/* MsgUpdateParams defines the sdk.Msg type to update the client parameters. */ +typedef struct _ibc_core_client_v1_MsgUpdateParams { + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; + /* params defines the client parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + ibc_core_client_v1_Params params; +} ibc_core_client_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the MsgUpdateParams response type. */ +typedef struct _ibc_core_client_v1_MsgUpdateParamsResponse { + char dummy_field; +} ibc_core_client_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_client_v1_MsgCreateClient_init_default \ + { \ + false, google_protobuf_Any_init_default, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgCreateClientResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgUpdateClient_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgUpdateClientResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgUpgradeClient_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, false, google_protobuf_Any_init_default, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_client_v1_MsgUpgradeClientResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgSubmitMisbehaviour_init_default \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgRecoverClient_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgRecoverClientResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_init_default \ + { \ + false, cosmos_upgrade_v1beta1_Plan_init_default, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Params_init_default } +#define ibc_core_client_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define ibc_core_client_v1_MsgCreateClient_init_zero \ + { \ + false, google_protobuf_Any_init_zero, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgCreateClientResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgUpdateClient_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgUpdateClientResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgUpgradeClient_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, false, google_protobuf_Any_init_zero, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_client_v1_MsgUpgradeClientResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgSubmitMisbehaviour_init_zero \ + { \ + {{NULL}, NULL}, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgRecoverClient_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgRecoverClientResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_init_zero \ + { \ + false, cosmos_upgrade_v1beta1_Plan_init_zero, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_init_zero \ + { 0 } +#define ibc_core_client_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, ibc_core_client_v1_Params_init_zero } +#define ibc_core_client_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_client_v1_MsgCreateClient_client_state_tag 1 +#define ibc_core_client_v1_MsgCreateClient_consensus_state_tag 2 +#define ibc_core_client_v1_MsgCreateClient_signer_tag 3 +#define ibc_core_client_v1_MsgUpdateClient_client_id_tag 1 +#define ibc_core_client_v1_MsgUpdateClient_client_message_tag 2 +#define ibc_core_client_v1_MsgUpdateClient_signer_tag 3 +#define ibc_core_client_v1_MsgUpgradeClient_client_id_tag 1 +#define ibc_core_client_v1_MsgUpgradeClient_client_state_tag 2 +#define ibc_core_client_v1_MsgUpgradeClient_consensus_state_tag 3 +#define ibc_core_client_v1_MsgUpgradeClient_proof_upgrade_client_tag 4 +#define ibc_core_client_v1_MsgUpgradeClient_proof_upgrade_consensus_state_tag 5 +#define ibc_core_client_v1_MsgUpgradeClient_signer_tag 6 +#define ibc_core_client_v1_MsgSubmitMisbehaviour_client_id_tag 1 +#define ibc_core_client_v1_MsgSubmitMisbehaviour_misbehaviour_tag 2 +#define ibc_core_client_v1_MsgSubmitMisbehaviour_signer_tag 3 +#define ibc_core_client_v1_MsgRecoverClient_subject_client_id_tag 1 +#define ibc_core_client_v1_MsgRecoverClient_substitute_client_id_tag 2 +#define ibc_core_client_v1_MsgRecoverClient_signer_tag 3 +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_plan_tag 1 +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_upgraded_client_state_tag 2 +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_signer_tag 3 +#define ibc_core_client_v1_MsgUpdateParams_signer_tag 1 +#define ibc_core_client_v1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_client_v1_MsgCreateClient_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_client_v1_MsgCreateClient_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgCreateClient_DEFAULT NULL +#define ibc_core_client_v1_MsgCreateClient_client_state_MSGTYPE google_protobuf_Any +#define ibc_core_client_v1_MsgCreateClient_consensus_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_MsgCreateClientResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgCreateClientResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgCreateClientResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgUpdateClient_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_message, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_client_v1_MsgUpdateClient_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgUpdateClient_DEFAULT NULL +#define ibc_core_client_v1_MsgUpdateClient_client_message_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_MsgUpdateClientResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgUpdateClientResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgUpdateClientResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgUpgradeClient_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_upgrade_client, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_upgrade_consensus_state, 5) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 6) +#define ibc_core_client_v1_MsgUpgradeClient_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgUpgradeClient_DEFAULT NULL +#define ibc_core_client_v1_MsgUpgradeClient_client_state_MSGTYPE google_protobuf_Any +#define ibc_core_client_v1_MsgUpgradeClient_consensus_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_MsgUpgradeClientResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgUpgradeClientResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgUpgradeClientResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgSubmitMisbehaviour_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, misbehaviour, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_client_v1_MsgSubmitMisbehaviour_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgSubmitMisbehaviour_DEFAULT NULL +#define ibc_core_client_v1_MsgSubmitMisbehaviour_misbehaviour_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgRecoverClient_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, subject_client_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, substitute_client_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_client_v1_MsgRecoverClient_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgRecoverClient_DEFAULT NULL + +#define ibc_core_client_v1_MsgRecoverClientResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgRecoverClientResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgRecoverClientResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, plan, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, upgraded_client_state, 2) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 3) +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_DEFAULT NULL +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_plan_MSGTYPE cosmos_upgrade_v1beta1_Plan +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_upgraded_client_state_MSGTYPE google_protobuf_Any + +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_DEFAULT NULL + +#define ibc_core_client_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define ibc_core_client_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define ibc_core_client_v1_MsgUpdateParams_DEFAULT NULL +#define ibc_core_client_v1_MsgUpdateParams_params_MSGTYPE ibc_core_client_v1_Params + +#define ibc_core_client_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define ibc_core_client_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define ibc_core_client_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_client_v1_MsgCreateClient_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgCreateClientResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpdateClient_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpdateClientResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpgradeClient_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpgradeClientResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgSubmitMisbehaviour_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgSubmitMisbehaviourResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgRecoverClient_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgRecoverClientResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgIBCSoftwareUpgrade_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t ibc_core_client_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_client_v1_MsgCreateClient_fields &ibc_core_client_v1_MsgCreateClient_msg +#define ibc_core_client_v1_MsgCreateClientResponse_fields &ibc_core_client_v1_MsgCreateClientResponse_msg +#define ibc_core_client_v1_MsgUpdateClient_fields &ibc_core_client_v1_MsgUpdateClient_msg +#define ibc_core_client_v1_MsgUpdateClientResponse_fields &ibc_core_client_v1_MsgUpdateClientResponse_msg +#define ibc_core_client_v1_MsgUpgradeClient_fields &ibc_core_client_v1_MsgUpgradeClient_msg +#define ibc_core_client_v1_MsgUpgradeClientResponse_fields &ibc_core_client_v1_MsgUpgradeClientResponse_msg +#define ibc_core_client_v1_MsgSubmitMisbehaviour_fields &ibc_core_client_v1_MsgSubmitMisbehaviour_msg +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_fields &ibc_core_client_v1_MsgSubmitMisbehaviourResponse_msg +#define ibc_core_client_v1_MsgRecoverClient_fields &ibc_core_client_v1_MsgRecoverClient_msg +#define ibc_core_client_v1_MsgRecoverClientResponse_fields &ibc_core_client_v1_MsgRecoverClientResponse_msg +#define ibc_core_client_v1_MsgIBCSoftwareUpgrade_fields &ibc_core_client_v1_MsgIBCSoftwareUpgrade_msg +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_fields &ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_msg +#define ibc_core_client_v1_MsgUpdateParams_fields &ibc_core_client_v1_MsgUpdateParams_msg +#define ibc_core_client_v1_MsgUpdateParamsResponse_fields &ibc_core_client_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_client_v1_MsgCreateClient_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgUpdateClient_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgUpgradeClient_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgSubmitMisbehaviour_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgRecoverClient_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgIBCSoftwareUpgrade_size depends on runtime parameters */ +/* ibc_core_client_v1_MsgUpdateParams_size depends on runtime parameters */ +#define ibc_core_client_v1_MsgCreateClientResponse_size 0 +#define ibc_core_client_v1_MsgIBCSoftwareUpgradeResponse_size 0 +#define ibc_core_client_v1_MsgRecoverClientResponse_size 0 +#define ibc_core_client_v1_MsgSubmitMisbehaviourResponse_size 0 +#define ibc_core_client_v1_MsgUpdateClientResponse_size 0 +#define ibc_core_client_v1_MsgUpdateParamsResponse_size 0 +#define ibc_core_client_v1_MsgUpgradeClientResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.c b/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.c new file mode 100644 index 0000000..c22f0ec --- /dev/null +++ b/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/commitment/v1/commitment.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_commitment_v1_MerkleRoot, ibc_core_commitment_v1_MerkleRoot, AUTO) + +PB_BIND(ibc_core_commitment_v1_MerklePrefix, ibc_core_commitment_v1_MerklePrefix, AUTO) + +PB_BIND(ibc_core_commitment_v1_MerklePath, ibc_core_commitment_v1_MerklePath, AUTO) + +PB_BIND(ibc_core_commitment_v1_MerkleProof, ibc_core_commitment_v1_MerkleProof, AUTO) diff --git a/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.h b/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.h new file mode 100644 index 0000000..5dee078 --- /dev/null +++ b/app/src/protobuf/ibc/core/commitment/v1/commitment.pb.h @@ -0,0 +1,128 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_COMMITMENT_V1_IBC_CORE_COMMITMENT_V1_COMMITMENT_PB_H_INCLUDED +#define PB_IBC_CORE_COMMITMENT_V1_IBC_CORE_COMMITMENT_V1_COMMITMENT_PB_H_INCLUDED +#include + +#include "cosmos/ics23/v1/proofs.pb.h" +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MerkleRoot defines a merkle root hash. + In the Cosmos SDK, the AppHash of a block header becomes the root. */ +typedef struct _ibc_core_commitment_v1_MerkleRoot { + pb_callback_t hash; +} ibc_core_commitment_v1_MerkleRoot; + +/* MerklePrefix is merkle path prefixed to the key. + The constructed key from the Path and the key will be append(Path.KeyPath, + append(Path.KeyPrefix, key...)) */ +typedef struct _ibc_core_commitment_v1_MerklePrefix { + pb_callback_t key_prefix; +} ibc_core_commitment_v1_MerklePrefix; + +/* MerklePath is the path used to verify commitment proofs, which can be an + arbitrary structured object (defined by a commitment type). + MerklePath is represented from root-to-leaf */ +typedef struct _ibc_core_commitment_v1_MerklePath { + pb_callback_t key_path; +} ibc_core_commitment_v1_MerklePath; + +/* MerkleProof is a wrapper type over a chain of CommitmentProofs. + It demonstrates membership or non-membership for an element or set of + elements, verifiable in conjunction with a known commitment root. Proofs + should be succinct. + MerkleProofs are ordered from leaf-to-root */ +typedef struct _ibc_core_commitment_v1_MerkleProof { + pb_callback_t proofs; +} ibc_core_commitment_v1_MerkleProof; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_commitment_v1_MerkleRoot_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerklePrefix_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerklePath_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerkleProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerkleRoot_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerklePrefix_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerklePath_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_commitment_v1_MerkleProof_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_commitment_v1_MerkleRoot_hash_tag 1 +#define ibc_core_commitment_v1_MerklePrefix_key_prefix_tag 1 +#define ibc_core_commitment_v1_MerklePath_key_path_tag 1 +#define ibc_core_commitment_v1_MerkleProof_proofs_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_commitment_v1_MerkleRoot_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, hash, 1) +#define ibc_core_commitment_v1_MerkleRoot_CALLBACK pb_default_field_callback +#define ibc_core_commitment_v1_MerkleRoot_DEFAULT NULL + +#define ibc_core_commitment_v1_MerklePrefix_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, key_prefix, 1) +#define ibc_core_commitment_v1_MerklePrefix_CALLBACK pb_default_field_callback +#define ibc_core_commitment_v1_MerklePrefix_DEFAULT NULL + +#define ibc_core_commitment_v1_MerklePath_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, key_path, 1) +#define ibc_core_commitment_v1_MerklePath_CALLBACK pb_default_field_callback +#define ibc_core_commitment_v1_MerklePath_DEFAULT NULL + +#define ibc_core_commitment_v1_MerkleProof_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, proofs, 1) +#define ibc_core_commitment_v1_MerkleProof_CALLBACK pb_default_field_callback +#define ibc_core_commitment_v1_MerkleProof_DEFAULT NULL +#define ibc_core_commitment_v1_MerkleProof_proofs_MSGTYPE cosmos_ics23_v1_CommitmentProof + +extern const pb_msgdesc_t ibc_core_commitment_v1_MerkleRoot_msg; +extern const pb_msgdesc_t ibc_core_commitment_v1_MerklePrefix_msg; +extern const pb_msgdesc_t ibc_core_commitment_v1_MerklePath_msg; +extern const pb_msgdesc_t ibc_core_commitment_v1_MerkleProof_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_commitment_v1_MerkleRoot_fields &ibc_core_commitment_v1_MerkleRoot_msg +#define ibc_core_commitment_v1_MerklePrefix_fields &ibc_core_commitment_v1_MerklePrefix_msg +#define ibc_core_commitment_v1_MerklePath_fields &ibc_core_commitment_v1_MerklePath_msg +#define ibc_core_commitment_v1_MerkleProof_fields &ibc_core_commitment_v1_MerkleProof_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_commitment_v1_MerkleRoot_size depends on runtime parameters */ +/* ibc_core_commitment_v1_MerklePrefix_size depends on runtime parameters */ +/* ibc_core_commitment_v1_MerklePath_size depends on runtime parameters */ +/* ibc_core_commitment_v1_MerkleProof_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/connection/v1/connection.pb.c b/app/src/protobuf/ibc/core/connection/v1/connection.pb.c new file mode 100644 index 0000000..43dc8d9 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/connection.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/connection/v1/connection.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_connection_v1_ConnectionEnd, ibc_core_connection_v1_ConnectionEnd, AUTO) + +PB_BIND(ibc_core_connection_v1_IdentifiedConnection, ibc_core_connection_v1_IdentifiedConnection, AUTO) + +PB_BIND(ibc_core_connection_v1_Counterparty, ibc_core_connection_v1_Counterparty, AUTO) + +PB_BIND(ibc_core_connection_v1_ClientPaths, ibc_core_connection_v1_ClientPaths, AUTO) + +PB_BIND(ibc_core_connection_v1_ConnectionPaths, ibc_core_connection_v1_ConnectionPaths, AUTO) + +PB_BIND(ibc_core_connection_v1_Version, ibc_core_connection_v1_Version, AUTO) + +PB_BIND(ibc_core_connection_v1_Params, ibc_core_connection_v1_Params, AUTO) diff --git a/app/src/protobuf/ibc/core/connection/v1/connection.pb.h b/app/src/protobuf/ibc/core/connection/v1/connection.pb.h new file mode 100644 index 0000000..3237309 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/connection.pb.h @@ -0,0 +1,287 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_CONNECTION_PB_H_INCLUDED +#define PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_CONNECTION_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/commitment/v1/commitment.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* State defines if a connection is in one of the following states: + INIT, TRYOPEN, OPEN or UNINITIALIZED. */ +typedef enum _ibc_core_connection_v1_State { + /* Default State */ + ibc_core_connection_v1_State_STATE_UNINITIALIZED_UNSPECIFIED = 0, + /* A connection end has just started the opening handshake. */ + ibc_core_connection_v1_State_STATE_INIT = 1, + /* A connection end has acknowledged the handshake step on the counterparty + chain. */ + ibc_core_connection_v1_State_STATE_TRYOPEN = 2, + /* A connection end has completed the handshake. */ + ibc_core_connection_v1_State_STATE_OPEN = 3 +} ibc_core_connection_v1_State; + +/* Struct definitions */ +/* Counterparty defines the counterparty chain associated with a connection end. */ +typedef struct _ibc_core_connection_v1_Counterparty { + /* identifies the client on the counterparty chain associated with a given + connection. */ + pb_callback_t client_id; + /* identifies the connection end on the counterparty chain associated with a + given connection. */ + pb_callback_t connection_id; + /* commitment merkle prefix of the counterparty chain. */ + bool has_prefix; + ibc_core_commitment_v1_MerklePrefix prefix; +} ibc_core_connection_v1_Counterparty; + +/* ConnectionEnd defines a stateful object on a chain connected to another + separate one. + NOTE: there must only be 2 defined ConnectionEnds to establish + a connection between two chains. */ +typedef struct _ibc_core_connection_v1_ConnectionEnd { + /* client associated with this connection. */ + pb_callback_t client_id; + /* IBC version which can be utilised to determine encodings or protocols for + channels or packets utilising this connection. */ + pb_callback_t versions; + /* current state of the connection end. */ + ibc_core_connection_v1_State state; + /* counterparty chain associated with this connection. */ + bool has_counterparty; + ibc_core_connection_v1_Counterparty counterparty; + /* delay period that must pass before a consensus state can be used for + packet-verification NOTE: delay period logic is only implemented by some + clients. */ + uint64_t delay_period; +} ibc_core_connection_v1_ConnectionEnd; + +/* IdentifiedConnection defines a connection with additional connection + identifier field. */ +typedef struct _ibc_core_connection_v1_IdentifiedConnection { + /* connection identifier. */ + pb_callback_t id; + /* client associated with this connection. */ + pb_callback_t client_id; + /* IBC version which can be utilised to determine encodings or protocols for + channels or packets utilising this connection */ + pb_callback_t versions; + /* current state of the connection end. */ + ibc_core_connection_v1_State state; + /* counterparty chain associated with this connection. */ + bool has_counterparty; + ibc_core_connection_v1_Counterparty counterparty; + /* delay period associated with this connection. */ + uint64_t delay_period; +} ibc_core_connection_v1_IdentifiedConnection; + +/* ClientPaths define all the connection paths for a client state. */ +typedef struct _ibc_core_connection_v1_ClientPaths { + /* list of connection paths */ + pb_callback_t paths; +} ibc_core_connection_v1_ClientPaths; + +/* ConnectionPaths define all the connection paths for a given client state. */ +typedef struct _ibc_core_connection_v1_ConnectionPaths { + /* client state unique identifier */ + pb_callback_t client_id; + /* list of connection paths */ + pb_callback_t paths; +} ibc_core_connection_v1_ConnectionPaths; + +/* Version defines the versioning scheme used to negotiate the IBC verison in + the connection handshake. */ +typedef struct _ibc_core_connection_v1_Version { + /* unique version identifier */ + pb_callback_t identifier; + /* list of features compatible with the specified identifier */ + pb_callback_t features; +} ibc_core_connection_v1_Version; + +/* Params defines the set of Connection parameters. */ +typedef struct _ibc_core_connection_v1_Params { + /* maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the + largest amount of time that the chain might reasonably take to produce the next block under normal operating + conditions. A safe choice is 3-5x the expected time per block. */ + uint64_t max_expected_time_per_block; +} ibc_core_connection_v1_Params; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _ibc_core_connection_v1_State_MIN ibc_core_connection_v1_State_STATE_UNINITIALIZED_UNSPECIFIED +#define _ibc_core_connection_v1_State_MAX ibc_core_connection_v1_State_STATE_OPEN +#define _ibc_core_connection_v1_State_ARRAYSIZE ((ibc_core_connection_v1_State)(ibc_core_connection_v1_State_STATE_OPEN + 1)) + +#define ibc_core_connection_v1_ConnectionEnd_state_ENUMTYPE ibc_core_connection_v1_State + +#define ibc_core_connection_v1_IdentifiedConnection_state_ENUMTYPE ibc_core_connection_v1_State + +/* Initializer values for message structs */ +#define ibc_core_connection_v1_ConnectionEnd_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, _ibc_core_connection_v1_State_MIN, false, \ + ibc_core_connection_v1_Counterparty_init_default, 0 \ + } +#define ibc_core_connection_v1_IdentifiedConnection_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _ibc_core_connection_v1_State_MIN, false, \ + ibc_core_connection_v1_Counterparty_init_default, 0 \ + } +#define ibc_core_connection_v1_Counterparty_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_commitment_v1_MerklePrefix_init_default } +#define ibc_core_connection_v1_ClientPaths_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_ConnectionPaths_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_Version_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_Params_init_default \ + { 0 } +#define ibc_core_connection_v1_ConnectionEnd_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, _ibc_core_connection_v1_State_MIN, false, \ + ibc_core_connection_v1_Counterparty_init_zero, 0 \ + } +#define ibc_core_connection_v1_IdentifiedConnection_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _ibc_core_connection_v1_State_MIN, false, \ + ibc_core_connection_v1_Counterparty_init_zero, 0 \ + } +#define ibc_core_connection_v1_Counterparty_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_commitment_v1_MerklePrefix_init_zero } +#define ibc_core_connection_v1_ClientPaths_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_ConnectionPaths_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_Version_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_Params_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_connection_v1_Counterparty_client_id_tag 1 +#define ibc_core_connection_v1_Counterparty_connection_id_tag 2 +#define ibc_core_connection_v1_Counterparty_prefix_tag 3 +#define ibc_core_connection_v1_ConnectionEnd_client_id_tag 1 +#define ibc_core_connection_v1_ConnectionEnd_versions_tag 2 +#define ibc_core_connection_v1_ConnectionEnd_state_tag 3 +#define ibc_core_connection_v1_ConnectionEnd_counterparty_tag 4 +#define ibc_core_connection_v1_ConnectionEnd_delay_period_tag 5 +#define ibc_core_connection_v1_IdentifiedConnection_id_tag 1 +#define ibc_core_connection_v1_IdentifiedConnection_client_id_tag 2 +#define ibc_core_connection_v1_IdentifiedConnection_versions_tag 3 +#define ibc_core_connection_v1_IdentifiedConnection_state_tag 4 +#define ibc_core_connection_v1_IdentifiedConnection_counterparty_tag 5 +#define ibc_core_connection_v1_IdentifiedConnection_delay_period_tag 6 +#define ibc_core_connection_v1_ClientPaths_paths_tag 1 +#define ibc_core_connection_v1_ConnectionPaths_client_id_tag 1 +#define ibc_core_connection_v1_ConnectionPaths_paths_tag 2 +#define ibc_core_connection_v1_Version_identifier_tag 1 +#define ibc_core_connection_v1_Version_features_tag 2 +#define ibc_core_connection_v1_Params_max_expected_time_per_block_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_connection_v1_ConnectionEnd_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, versions, 2) \ + X(a, STATIC, SINGULAR, UENUM, state, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 4) \ + X(a, STATIC, SINGULAR, UINT64, delay_period, 5) +#define ibc_core_connection_v1_ConnectionEnd_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_ConnectionEnd_DEFAULT NULL +#define ibc_core_connection_v1_ConnectionEnd_versions_MSGTYPE ibc_core_connection_v1_Version +#define ibc_core_connection_v1_ConnectionEnd_counterparty_MSGTYPE ibc_core_connection_v1_Counterparty + +#define ibc_core_connection_v1_IdentifiedConnection_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, versions, 3) \ + X(a, STATIC, SINGULAR, UENUM, state, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 5) \ + X(a, STATIC, SINGULAR, UINT64, delay_period, 6) +#define ibc_core_connection_v1_IdentifiedConnection_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_IdentifiedConnection_DEFAULT NULL +#define ibc_core_connection_v1_IdentifiedConnection_versions_MSGTYPE ibc_core_connection_v1_Version +#define ibc_core_connection_v1_IdentifiedConnection_counterparty_MSGTYPE ibc_core_connection_v1_Counterparty + +#define ibc_core_connection_v1_Counterparty_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, prefix, 3) +#define ibc_core_connection_v1_Counterparty_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_Counterparty_DEFAULT NULL +#define ibc_core_connection_v1_Counterparty_prefix_MSGTYPE ibc_core_commitment_v1_MerklePrefix + +#define ibc_core_connection_v1_ClientPaths_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, paths, 1) +#define ibc_core_connection_v1_ClientPaths_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_ClientPaths_DEFAULT NULL + +#define ibc_core_connection_v1_ConnectionPaths_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, REPEATED, STRING, paths, 2) +#define ibc_core_connection_v1_ConnectionPaths_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_ConnectionPaths_DEFAULT NULL + +#define ibc_core_connection_v1_Version_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, identifier, 1) \ + X(a, CALLBACK, REPEATED, STRING, features, 2) +#define ibc_core_connection_v1_Version_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_Version_DEFAULT NULL + +#define ibc_core_connection_v1_Params_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, max_expected_time_per_block, 1) +#define ibc_core_connection_v1_Params_CALLBACK NULL +#define ibc_core_connection_v1_Params_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_connection_v1_ConnectionEnd_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_IdentifiedConnection_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_Counterparty_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_ClientPaths_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_ConnectionPaths_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_Version_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_Params_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_connection_v1_ConnectionEnd_fields &ibc_core_connection_v1_ConnectionEnd_msg +#define ibc_core_connection_v1_IdentifiedConnection_fields &ibc_core_connection_v1_IdentifiedConnection_msg +#define ibc_core_connection_v1_Counterparty_fields &ibc_core_connection_v1_Counterparty_msg +#define ibc_core_connection_v1_ClientPaths_fields &ibc_core_connection_v1_ClientPaths_msg +#define ibc_core_connection_v1_ConnectionPaths_fields &ibc_core_connection_v1_ConnectionPaths_msg +#define ibc_core_connection_v1_Version_fields &ibc_core_connection_v1_Version_msg +#define ibc_core_connection_v1_Params_fields &ibc_core_connection_v1_Params_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_connection_v1_ConnectionEnd_size depends on runtime parameters */ +/* ibc_core_connection_v1_IdentifiedConnection_size depends on runtime parameters */ +/* ibc_core_connection_v1_Counterparty_size depends on runtime parameters */ +/* ibc_core_connection_v1_ClientPaths_size depends on runtime parameters */ +/* ibc_core_connection_v1_ConnectionPaths_size depends on runtime parameters */ +/* ibc_core_connection_v1_Version_size depends on runtime parameters */ +#define IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_CONNECTION_PB_H_MAX_SIZE ibc_core_connection_v1_Params_size +#define ibc_core_connection_v1_Params_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/connection/v1/genesis.pb.c b/app/src/protobuf/ibc/core/connection/v1/genesis.pb.c new file mode 100644 index 0000000..8027606 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/connection/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_connection_v1_GenesisState, ibc_core_connection_v1_GenesisState, AUTO) diff --git a/app/src/protobuf/ibc/core/connection/v1/genesis.pb.h b/app/src/protobuf/ibc/core/connection/v1/genesis.pb.h new file mode 100644 index 0000000..1aa507b --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/genesis.pb.h @@ -0,0 +1,66 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/connection/v1/connection.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ibc connection submodule's genesis state. */ +typedef struct _ibc_core_connection_v1_GenesisState { + pb_callback_t connections; + pb_callback_t client_connection_paths; + /* the sequence for the next generated connection identifier */ + uint64_t next_connection_sequence; + bool has_params; + ibc_core_connection_v1_Params params; +} ibc_core_connection_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_connection_v1_GenesisState_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, false, ibc_core_connection_v1_Params_init_default } +#define ibc_core_connection_v1_GenesisState_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, false, ibc_core_connection_v1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_connection_v1_GenesisState_connections_tag 1 +#define ibc_core_connection_v1_GenesisState_client_connection_paths_tag 2 +#define ibc_core_connection_v1_GenesisState_next_connection_sequence_tag 3 +#define ibc_core_connection_v1_GenesisState_params_tag 4 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_connection_v1_GenesisState_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, connections, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, client_connection_paths, 2) \ + X(a, STATIC, SINGULAR, UINT64, next_connection_sequence, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 4) +#define ibc_core_connection_v1_GenesisState_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_GenesisState_DEFAULT NULL +#define ibc_core_connection_v1_GenesisState_connections_MSGTYPE ibc_core_connection_v1_IdentifiedConnection +#define ibc_core_connection_v1_GenesisState_client_connection_paths_MSGTYPE ibc_core_connection_v1_ConnectionPaths +#define ibc_core_connection_v1_GenesisState_params_MSGTYPE ibc_core_connection_v1_Params + +extern const pb_msgdesc_t ibc_core_connection_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_connection_v1_GenesisState_fields &ibc_core_connection_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_connection_v1_GenesisState_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/connection/v1/query.pb.c b/app/src/protobuf/ibc/core/connection/v1/query.pb.c new file mode 100644 index 0000000..77a2169 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/query.pb.c @@ -0,0 +1,35 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/connection/v1/query.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_connection_v1_QueryConnectionRequest, ibc_core_connection_v1_QueryConnectionRequest, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionResponse, ibc_core_connection_v1_QueryConnectionResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionsRequest, ibc_core_connection_v1_QueryConnectionsRequest, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionsResponse, ibc_core_connection_v1_QueryConnectionsResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryClientConnectionsRequest, ibc_core_connection_v1_QueryClientConnectionsRequest, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryClientConnectionsResponse, ibc_core_connection_v1_QueryClientConnectionsResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionClientStateRequest, ibc_core_connection_v1_QueryConnectionClientStateRequest, + AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionClientStateResponse, ibc_core_connection_v1_QueryConnectionClientStateResponse, + AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionConsensusStateRequest, + ibc_core_connection_v1_QueryConnectionConsensusStateRequest, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionConsensusStateResponse, + ibc_core_connection_v1_QueryConnectionConsensusStateResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionParamsRequest, ibc_core_connection_v1_QueryConnectionParamsRequest, AUTO) + +PB_BIND(ibc_core_connection_v1_QueryConnectionParamsResponse, ibc_core_connection_v1_QueryConnectionParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/connection/v1/query.pb.h b/app/src/protobuf/ibc/core/connection/v1/query.pb.h new file mode 100644 index 0000000..07783da --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/query.pb.h @@ -0,0 +1,377 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_QUERY_PB_H_INCLUDED +#define PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_QUERY_PB_H_INCLUDED +#include + +#include "cosmos/base/query/v1beta1/pagination.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/api/annotations.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/client/v1/client.pb.h" +#include "ibc/core/connection/v1/connection.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* QueryConnectionRequest is the request type for the Query/Connection RPC + method */ +typedef struct _ibc_core_connection_v1_QueryConnectionRequest { + /* connection unique identifier */ + pb_callback_t connection_id; +} ibc_core_connection_v1_QueryConnectionRequest; + +/* QueryConnectionResponse is the response type for the Query/Connection RPC + method. Besides the connection end, it includes a proof and the height from + which the proof was retrieved. */ +typedef struct _ibc_core_connection_v1_QueryConnectionResponse { + /* connection associated with the request identifier */ + bool has_connection; + ibc_core_connection_v1_ConnectionEnd connection; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_connection_v1_QueryConnectionResponse; + +/* QueryConnectionsRequest is the request type for the Query/Connections RPC + method */ +typedef struct _ibc_core_connection_v1_QueryConnectionsRequest { + bool has_pagination; + cosmos_base_query_v1beta1_PageRequest pagination; +} ibc_core_connection_v1_QueryConnectionsRequest; + +/* QueryConnectionsResponse is the response type for the Query/Connections RPC + method. */ +typedef struct _ibc_core_connection_v1_QueryConnectionsResponse { + /* list of stored connections of the chain. */ + pb_callback_t connections; + /* pagination response */ + bool has_pagination; + cosmos_base_query_v1beta1_PageResponse pagination; + /* query block height */ + bool has_height; + ibc_core_client_v1_Height height; +} ibc_core_connection_v1_QueryConnectionsResponse; + +/* QueryClientConnectionsRequest is the request type for the + Query/ClientConnections RPC method */ +typedef struct _ibc_core_connection_v1_QueryClientConnectionsRequest { + /* client identifier associated with a connection */ + pb_callback_t client_id; +} ibc_core_connection_v1_QueryClientConnectionsRequest; + +/* QueryClientConnectionsResponse is the response type for the + Query/ClientConnections RPC method */ +typedef struct _ibc_core_connection_v1_QueryClientConnectionsResponse { + /* slice of all the connection paths associated with a client. */ + pb_callback_t connection_paths; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was generated */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_connection_v1_QueryClientConnectionsResponse; + +/* QueryConnectionClientStateRequest is the request type for the + Query/ConnectionClientState RPC method */ +typedef struct _ibc_core_connection_v1_QueryConnectionClientStateRequest { + /* connection identifier */ + pb_callback_t connection_id; +} ibc_core_connection_v1_QueryConnectionClientStateRequest; + +/* QueryConnectionClientStateResponse is the response type for the + Query/ConnectionClientState RPC method */ +typedef struct _ibc_core_connection_v1_QueryConnectionClientStateResponse { + /* client state associated with the channel */ + bool has_identified_client_state; + ibc_core_client_v1_IdentifiedClientState identified_client_state; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_connection_v1_QueryConnectionClientStateResponse; + +/* QueryConnectionConsensusStateRequest is the request type for the + Query/ConnectionConsensusState RPC method */ +typedef struct _ibc_core_connection_v1_QueryConnectionConsensusStateRequest { + /* connection identifier */ + pb_callback_t connection_id; + uint64_t revision_number; + uint64_t revision_height; +} ibc_core_connection_v1_QueryConnectionConsensusStateRequest; + +/* QueryConnectionConsensusStateResponse is the response type for the + Query/ConnectionConsensusState RPC method */ +typedef struct _ibc_core_connection_v1_QueryConnectionConsensusStateResponse { + /* consensus state associated with the channel */ + bool has_consensus_state; + google_protobuf_Any consensus_state; + /* client ID associated with the consensus state */ + pb_callback_t client_id; + /* merkle proof of existence */ + pb_callback_t proof; + /* height at which the proof was retrieved */ + bool has_proof_height; + ibc_core_client_v1_Height proof_height; +} ibc_core_connection_v1_QueryConnectionConsensusStateResponse; + +/* QueryConnectionParamsRequest is the request type for the Query/ConnectionParams RPC method. */ +typedef struct _ibc_core_connection_v1_QueryConnectionParamsRequest { + char dummy_field; +} ibc_core_connection_v1_QueryConnectionParamsRequest; + +/* QueryConnectionParamsResponse is the response type for the Query/ConnectionParams RPC method. */ +typedef struct _ibc_core_connection_v1_QueryConnectionParamsResponse { + /* params defines the parameters of the module. */ + bool has_params; + ibc_core_connection_v1_Params params; +} ibc_core_connection_v1_QueryConnectionParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_connection_v1_QueryConnectionRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryConnectionResponse_init_default \ + { \ + false, ibc_core_connection_v1_ConnectionEnd_init_default, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_connection_v1_QueryConnectionsRequest_init_default \ + { false, cosmos_base_query_v1beta1_PageRequest_init_default } +#define ibc_core_connection_v1_QueryConnectionsResponse_init_default \ + { \ + {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_default, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_connection_v1_QueryClientConnectionsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryClientConnectionsResponse_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default } +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_init_default \ + { \ + false, ibc_core_client_v1_IdentifiedClientState_init_default, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_init_default \ + { {{NULL}, NULL}, 0, 0 } +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_init_default \ + { \ + false, google_protobuf_Any_init_default, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default \ + } +#define ibc_core_connection_v1_QueryConnectionParamsRequest_init_default \ + { 0 } +#define ibc_core_connection_v1_QueryConnectionParamsResponse_init_default \ + { false, ibc_core_connection_v1_Params_init_default } +#define ibc_core_connection_v1_QueryConnectionRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryConnectionResponse_init_zero \ + { false, ibc_core_connection_v1_ConnectionEnd_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_connection_v1_QueryConnectionsRequest_init_zero \ + { false, cosmos_base_query_v1beta1_PageRequest_init_zero } +#define ibc_core_connection_v1_QueryConnectionsResponse_init_zero \ + { {{NULL}, NULL}, false, cosmos_base_query_v1beta1_PageResponse_init_zero, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_connection_v1_QueryClientConnectionsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryClientConnectionsResponse_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_init_zero \ + { false, ibc_core_client_v1_IdentifiedClientState_init_zero, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_init_zero \ + { {{NULL}, NULL}, 0, 0 } +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero } +#define ibc_core_connection_v1_QueryConnectionParamsRequest_init_zero \ + { 0 } +#define ibc_core_connection_v1_QueryConnectionParamsResponse_init_zero \ + { false, ibc_core_connection_v1_Params_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_connection_v1_QueryConnectionRequest_connection_id_tag 1 +#define ibc_core_connection_v1_QueryConnectionResponse_connection_tag 1 +#define ibc_core_connection_v1_QueryConnectionResponse_proof_tag 2 +#define ibc_core_connection_v1_QueryConnectionResponse_proof_height_tag 3 +#define ibc_core_connection_v1_QueryConnectionsRequest_pagination_tag 1 +#define ibc_core_connection_v1_QueryConnectionsResponse_connections_tag 1 +#define ibc_core_connection_v1_QueryConnectionsResponse_pagination_tag 2 +#define ibc_core_connection_v1_QueryConnectionsResponse_height_tag 3 +#define ibc_core_connection_v1_QueryClientConnectionsRequest_client_id_tag 1 +#define ibc_core_connection_v1_QueryClientConnectionsResponse_connection_paths_tag 1 +#define ibc_core_connection_v1_QueryClientConnectionsResponse_proof_tag 2 +#define ibc_core_connection_v1_QueryClientConnectionsResponse_proof_height_tag 3 +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_connection_id_tag 1 +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_identified_client_state_tag 1 +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_proof_tag 2 +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_proof_height_tag 3 +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_connection_id_tag 1 +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_revision_number_tag 2 +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_revision_height_tag 3 +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_consensus_state_tag 1 +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_client_id_tag 2 +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_proof_tag 3 +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_proof_height_tag 4 +#define ibc_core_connection_v1_QueryConnectionParamsResponse_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_connection_v1_QueryConnectionRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) +#define ibc_core_connection_v1_QueryConnectionRequest_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionRequest_DEFAULT NULL + +#define ibc_core_connection_v1_QueryConnectionResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, connection, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_connection_v1_QueryConnectionResponse_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionResponse_connection_MSGTYPE ibc_core_connection_v1_ConnectionEnd +#define ibc_core_connection_v1_QueryConnectionResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_QueryConnectionsRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pagination, 1) +#define ibc_core_connection_v1_QueryConnectionsRequest_CALLBACK NULL +#define ibc_core_connection_v1_QueryConnectionsRequest_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionsRequest_pagination_MSGTYPE cosmos_base_query_v1beta1_PageRequest + +#define ibc_core_connection_v1_QueryConnectionsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, connections, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pagination, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, height, 3) +#define ibc_core_connection_v1_QueryConnectionsResponse_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionsResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionsResponse_connections_MSGTYPE ibc_core_connection_v1_IdentifiedConnection +#define ibc_core_connection_v1_QueryConnectionsResponse_pagination_MSGTYPE cosmos_base_query_v1beta1_PageResponse +#define ibc_core_connection_v1_QueryConnectionsResponse_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_QueryClientConnectionsRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, client_id, 1) +#define ibc_core_connection_v1_QueryClientConnectionsRequest_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryClientConnectionsRequest_DEFAULT NULL + +#define ibc_core_connection_v1_QueryClientConnectionsResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, STRING, connection_paths, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_connection_v1_QueryClientConnectionsResponse_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryClientConnectionsResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryClientConnectionsResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_DEFAULT NULL + +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identified_client_state, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_identified_client_state_MSGTYPE \ + ibc_core_client_v1_IdentifiedClientState +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, revision_number, 2) \ + X(a, STATIC, SINGULAR, UINT64, revision_height, 3) +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_DEFAULT NULL + +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 1) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 4) +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_consensus_state_MSGTYPE google_protobuf_Any +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_QueryConnectionParamsRequest_FIELDLIST(X, a) + +#define ibc_core_connection_v1_QueryConnectionParamsRequest_CALLBACK NULL +#define ibc_core_connection_v1_QueryConnectionParamsRequest_DEFAULT NULL + +#define ibc_core_connection_v1_QueryConnectionParamsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define ibc_core_connection_v1_QueryConnectionParamsResponse_CALLBACK NULL +#define ibc_core_connection_v1_QueryConnectionParamsResponse_DEFAULT NULL +#define ibc_core_connection_v1_QueryConnectionParamsResponse_params_MSGTYPE ibc_core_connection_v1_Params + +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionsRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionsResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryClientConnectionsRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryClientConnectionsResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionClientStateRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionClientStateResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionConsensusStateRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionConsensusStateResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionParamsRequest_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_QueryConnectionParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_connection_v1_QueryConnectionRequest_fields &ibc_core_connection_v1_QueryConnectionRequest_msg +#define ibc_core_connection_v1_QueryConnectionResponse_fields &ibc_core_connection_v1_QueryConnectionResponse_msg +#define ibc_core_connection_v1_QueryConnectionsRequest_fields &ibc_core_connection_v1_QueryConnectionsRequest_msg +#define ibc_core_connection_v1_QueryConnectionsResponse_fields &ibc_core_connection_v1_QueryConnectionsResponse_msg +#define ibc_core_connection_v1_QueryClientConnectionsRequest_fields &ibc_core_connection_v1_QueryClientConnectionsRequest_msg +#define ibc_core_connection_v1_QueryClientConnectionsResponse_fields \ + &ibc_core_connection_v1_QueryClientConnectionsResponse_msg +#define ibc_core_connection_v1_QueryConnectionClientStateRequest_fields \ + &ibc_core_connection_v1_QueryConnectionClientStateRequest_msg +#define ibc_core_connection_v1_QueryConnectionClientStateResponse_fields \ + &ibc_core_connection_v1_QueryConnectionClientStateResponse_msg +#define ibc_core_connection_v1_QueryConnectionConsensusStateRequest_fields \ + &ibc_core_connection_v1_QueryConnectionConsensusStateRequest_msg +#define ibc_core_connection_v1_QueryConnectionConsensusStateResponse_fields \ + &ibc_core_connection_v1_QueryConnectionConsensusStateResponse_msg +#define ibc_core_connection_v1_QueryConnectionParamsRequest_fields &ibc_core_connection_v1_QueryConnectionParamsRequest_msg +#define ibc_core_connection_v1_QueryConnectionParamsResponse_fields &ibc_core_connection_v1_QueryConnectionParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_connection_v1_QueryConnectionRequest_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionResponse_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionsResponse_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryClientConnectionsRequest_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryClientConnectionsResponse_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionClientStateRequest_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionClientStateResponse_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionConsensusStateRequest_size depends on runtime parameters */ +/* ibc_core_connection_v1_QueryConnectionConsensusStateResponse_size depends on runtime parameters */ +#if defined(cosmos_base_query_v1beta1_PageRequest_size) +#define ibc_core_connection_v1_QueryConnectionsRequest_size (6 + cosmos_base_query_v1beta1_PageRequest_size) +#endif +#define IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_QUERY_PB_H_MAX_SIZE \ + ibc_core_connection_v1_QueryConnectionParamsResponse_size +#define ibc_core_connection_v1_QueryConnectionParamsRequest_size 0 +#define ibc_core_connection_v1_QueryConnectionParamsResponse_size 13 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/connection/v1/tx.pb.c b/app/src/protobuf/ibc/core/connection/v1/tx.pb.c new file mode 100644 index 0000000..83abda6 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/tx.pb.c @@ -0,0 +1,28 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/connection/v1/tx.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenInit, ibc_core_connection_v1_MsgConnectionOpenInit, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenInitResponse, ibc_core_connection_v1_MsgConnectionOpenInitResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenTry, ibc_core_connection_v1_MsgConnectionOpenTry, 2) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenTryResponse, ibc_core_connection_v1_MsgConnectionOpenTryResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenAck, ibc_core_connection_v1_MsgConnectionOpenAck, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenAckResponse, ibc_core_connection_v1_MsgConnectionOpenAckResponse, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenConfirm, ibc_core_connection_v1_MsgConnectionOpenConfirm, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgConnectionOpenConfirmResponse, ibc_core_connection_v1_MsgConnectionOpenConfirmResponse, + AUTO) + +PB_BIND(ibc_core_connection_v1_MsgUpdateParams, ibc_core_connection_v1_MsgUpdateParams, AUTO) + +PB_BIND(ibc_core_connection_v1_MsgUpdateParamsResponse, ibc_core_connection_v1_MsgUpdateParamsResponse, AUTO) diff --git a/app/src/protobuf/ibc/core/connection/v1/tx.pb.h b/app/src/protobuf/ibc/core/connection/v1/tx.pb.h new file mode 100644 index 0000000..195d269 --- /dev/null +++ b/app/src/protobuf/ibc/core/connection/v1/tx.pb.h @@ -0,0 +1,389 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_TX_PB_H_INCLUDED +#define PB_IBC_CORE_CONNECTION_V1_IBC_CORE_CONNECTION_V1_TX_PB_H_INCLUDED +#include + +#include "cosmos/msg/v1/msg.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/client/v1/client.pb.h" +#include "ibc/core/connection/v1/connection.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* MsgConnectionOpenInit defines the msg sent by an account on Chain A to + initialize a connection with Chain B. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenInit { + pb_callback_t client_id; + bool has_counterparty; + ibc_core_connection_v1_Counterparty counterparty; + bool has_version; + ibc_core_connection_v1_Version version; + uint64_t delay_period; + pb_callback_t signer; +} ibc_core_connection_v1_MsgConnectionOpenInit; + +/* MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response + type. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenInitResponse { + char dummy_field; +} ibc_core_connection_v1_MsgConnectionOpenInitResponse; + +/* MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a + connection on Chain B. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenTry { + pb_callback_t client_id; + /* Deprecated: this field is unused. Crossing hellos are no longer supported in core IBC. */ + pb_callback_t previous_connection_id; + bool has_client_state; + google_protobuf_Any client_state; + bool has_counterparty; + ibc_core_connection_v1_Counterparty counterparty; + uint64_t delay_period; + pb_callback_t counterparty_versions; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + /* proof of the initialization the connection on Chain A: `UNITIALIZED -> + INIT` */ + pb_callback_t proof_init; + /* proof of client state included in message */ + pb_callback_t proof_client; + /* proof of client consensus state */ + pb_callback_t proof_consensus; + bool has_consensus_height; + ibc_core_client_v1_Height consensus_height; + pb_callback_t signer; + /* optional proof data for host state machines that are unable to introspect their own consensus state */ + pb_callback_t host_consensus_state_proof; +} ibc_core_connection_v1_MsgConnectionOpenTry; + +/* MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenTryResponse { + char dummy_field; +} ibc_core_connection_v1_MsgConnectionOpenTryResponse; + +/* MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to + acknowledge the change of connection state to TRYOPEN on Chain B. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenAck { + pb_callback_t connection_id; + pb_callback_t counterparty_connection_id; + bool has_version; + ibc_core_connection_v1_Version version; + bool has_client_state; + google_protobuf_Any client_state; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + /* proof of the initialization the connection on Chain B: `UNITIALIZED -> + TRYOPEN` */ + pb_callback_t proof_try; + /* proof of client state included in message */ + pb_callback_t proof_client; + /* proof of client consensus state */ + pb_callback_t proof_consensus; + bool has_consensus_height; + ibc_core_client_v1_Height consensus_height; + pb_callback_t signer; + /* optional proof data for host state machines that are unable to introspect their own consensus state */ + pb_callback_t host_consensus_state_proof; +} ibc_core_connection_v1_MsgConnectionOpenAck; + +/* MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenAckResponse { + char dummy_field; +} ibc_core_connection_v1_MsgConnectionOpenAckResponse; + +/* MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to + acknowledge the change of connection state to OPEN on Chain A. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenConfirm { + pb_callback_t connection_id; + /* proof for the change of the connection state on Chain A: `INIT -> OPEN` */ + pb_callback_t proof_ack; + bool has_proof_height; + ibc_core_client_v1_Height proof_height; + pb_callback_t signer; +} ibc_core_connection_v1_MsgConnectionOpenConfirm; + +/* MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm + response type. */ +typedef struct _ibc_core_connection_v1_MsgConnectionOpenConfirmResponse { + char dummy_field; +} ibc_core_connection_v1_MsgConnectionOpenConfirmResponse; + +/* MsgUpdateParams defines the sdk.Msg type to update the connection parameters. */ +typedef struct _ibc_core_connection_v1_MsgUpdateParams { + /* signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). */ + pb_callback_t signer; + /* params defines the connection parameters to update. + + NOTE: All parameters must be supplied. */ + bool has_params; + ibc_core_connection_v1_Params params; +} ibc_core_connection_v1_MsgUpdateParams; + +/* MsgUpdateParamsResponse defines the MsgUpdateParams response type. */ +typedef struct _ibc_core_connection_v1_MsgUpdateParamsResponse { + char dummy_field; +} ibc_core_connection_v1_MsgUpdateParamsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_connection_v1_MsgConnectionOpenInit_init_default \ + { \ + {{NULL}, NULL}, false, ibc_core_connection_v1_Counterparty_init_default, false, \ + ibc_core_connection_v1_Version_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_init_default \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenTry_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_default, false, \ + ibc_core_connection_v1_Counterparty_init_default, 0, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + ibc_core_client_v1_Height_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_init_default \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenAck_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_connection_v1_Version_init_default, false, \ + google_protobuf_Any_init_default, false, ibc_core_client_v1_Height_init_default, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_init_default \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_default, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_init_default \ + { 0 } +#define ibc_core_connection_v1_MsgUpdateParams_init_default \ + { {{NULL}, NULL}, false, ibc_core_connection_v1_Params_init_default } +#define ibc_core_connection_v1_MsgUpdateParamsResponse_init_default \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenInit_init_zero \ + { \ + {{NULL}, NULL}, false, ibc_core_connection_v1_Counterparty_init_zero, false, \ + ibc_core_connection_v1_Version_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_init_zero \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenTry_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, google_protobuf_Any_init_zero, false, \ + ibc_core_connection_v1_Counterparty_init_zero, 0, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_init_zero \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenAck_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_connection_v1_Version_init_zero, false, \ + google_protobuf_Any_init_zero, false, ibc_core_client_v1_Height_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_init_zero \ + { 0 } +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, false, ibc_core_client_v1_Height_init_zero, { {NULL}, NULL } \ + } +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_init_zero \ + { 0 } +#define ibc_core_connection_v1_MsgUpdateParams_init_zero \ + { {{NULL}, NULL}, false, ibc_core_connection_v1_Params_init_zero } +#define ibc_core_connection_v1_MsgUpdateParamsResponse_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_connection_v1_MsgConnectionOpenInit_client_id_tag 1 +#define ibc_core_connection_v1_MsgConnectionOpenInit_counterparty_tag 2 +#define ibc_core_connection_v1_MsgConnectionOpenInit_version_tag 3 +#define ibc_core_connection_v1_MsgConnectionOpenInit_delay_period_tag 4 +#define ibc_core_connection_v1_MsgConnectionOpenInit_signer_tag 5 +#define ibc_core_connection_v1_MsgConnectionOpenTry_client_id_tag 1 +#define ibc_core_connection_v1_MsgConnectionOpenTry_previous_connection_id_tag 2 +#define ibc_core_connection_v1_MsgConnectionOpenTry_client_state_tag 3 +#define ibc_core_connection_v1_MsgConnectionOpenTry_counterparty_tag 4 +#define ibc_core_connection_v1_MsgConnectionOpenTry_delay_period_tag 5 +#define ibc_core_connection_v1_MsgConnectionOpenTry_counterparty_versions_tag 6 +#define ibc_core_connection_v1_MsgConnectionOpenTry_proof_height_tag 7 +#define ibc_core_connection_v1_MsgConnectionOpenTry_proof_init_tag 8 +#define ibc_core_connection_v1_MsgConnectionOpenTry_proof_client_tag 9 +#define ibc_core_connection_v1_MsgConnectionOpenTry_proof_consensus_tag 10 +#define ibc_core_connection_v1_MsgConnectionOpenTry_consensus_height_tag 11 +#define ibc_core_connection_v1_MsgConnectionOpenTry_signer_tag 12 +#define ibc_core_connection_v1_MsgConnectionOpenTry_host_consensus_state_proof_tag 13 +#define ibc_core_connection_v1_MsgConnectionOpenAck_connection_id_tag 1 +#define ibc_core_connection_v1_MsgConnectionOpenAck_counterparty_connection_id_tag 2 +#define ibc_core_connection_v1_MsgConnectionOpenAck_version_tag 3 +#define ibc_core_connection_v1_MsgConnectionOpenAck_client_state_tag 4 +#define ibc_core_connection_v1_MsgConnectionOpenAck_proof_height_tag 5 +#define ibc_core_connection_v1_MsgConnectionOpenAck_proof_try_tag 6 +#define ibc_core_connection_v1_MsgConnectionOpenAck_proof_client_tag 7 +#define ibc_core_connection_v1_MsgConnectionOpenAck_proof_consensus_tag 8 +#define ibc_core_connection_v1_MsgConnectionOpenAck_consensus_height_tag 9 +#define ibc_core_connection_v1_MsgConnectionOpenAck_signer_tag 10 +#define ibc_core_connection_v1_MsgConnectionOpenAck_host_consensus_state_proof_tag 11 +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_connection_id_tag 1 +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_proof_ack_tag 2 +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_proof_height_tag 3 +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_signer_tag 4 +#define ibc_core_connection_v1_MsgUpdateParams_signer_tag 1 +#define ibc_core_connection_v1_MsgUpdateParams_params_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_connection_v1_MsgConnectionOpenInit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, version, 3) \ + X(a, STATIC, SINGULAR, UINT64, delay_period, 4) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 5) +#define ibc_core_connection_v1_MsgConnectionOpenInit_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_MsgConnectionOpenInit_DEFAULT NULL +#define ibc_core_connection_v1_MsgConnectionOpenInit_counterparty_MSGTYPE ibc_core_connection_v1_Counterparty +#define ibc_core_connection_v1_MsgConnectionOpenInit_version_MSGTYPE ibc_core_connection_v1_Version + +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_FIELDLIST(X, a) + +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_CALLBACK NULL +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_DEFAULT NULL + +#define ibc_core_connection_v1_MsgConnectionOpenTry_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, previous_connection_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, counterparty, 4) \ + X(a, STATIC, SINGULAR, UINT64, delay_period, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, counterparty_versions, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_init, 8) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_client, 9) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_consensus, 10) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_height, 11) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 12) \ + X(a, CALLBACK, SINGULAR, BYTES, host_consensus_state_proof, 13) +#define ibc_core_connection_v1_MsgConnectionOpenTry_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_MsgConnectionOpenTry_DEFAULT NULL +#define ibc_core_connection_v1_MsgConnectionOpenTry_client_state_MSGTYPE google_protobuf_Any +#define ibc_core_connection_v1_MsgConnectionOpenTry_counterparty_MSGTYPE ibc_core_connection_v1_Counterparty +#define ibc_core_connection_v1_MsgConnectionOpenTry_counterparty_versions_MSGTYPE ibc_core_connection_v1_Version +#define ibc_core_connection_v1_MsgConnectionOpenTry_proof_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_core_connection_v1_MsgConnectionOpenTry_consensus_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_FIELDLIST(X, a) + +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_CALLBACK NULL +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_DEFAULT NULL + +#define ibc_core_connection_v1_MsgConnectionOpenAck_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, counterparty_connection_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, version, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_try, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_client, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_consensus, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_height, 9) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 10) \ + X(a, CALLBACK, SINGULAR, BYTES, host_consensus_state_proof, 11) +#define ibc_core_connection_v1_MsgConnectionOpenAck_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_MsgConnectionOpenAck_DEFAULT NULL +#define ibc_core_connection_v1_MsgConnectionOpenAck_version_MSGTYPE ibc_core_connection_v1_Version +#define ibc_core_connection_v1_MsgConnectionOpenAck_client_state_MSGTYPE google_protobuf_Any +#define ibc_core_connection_v1_MsgConnectionOpenAck_proof_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_core_connection_v1_MsgConnectionOpenAck_consensus_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_FIELDLIST(X, a) + +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_CALLBACK NULL +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_DEFAULT NULL + +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, connection_id, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_ack, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_height, 3) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 4) +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_DEFAULT NULL +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_proof_height_MSGTYPE ibc_core_client_v1_Height + +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_FIELDLIST(X, a) + +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_CALLBACK NULL +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_DEFAULT NULL + +#define ibc_core_connection_v1_MsgUpdateParams_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, signer, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, params, 2) +#define ibc_core_connection_v1_MsgUpdateParams_CALLBACK pb_default_field_callback +#define ibc_core_connection_v1_MsgUpdateParams_DEFAULT NULL +#define ibc_core_connection_v1_MsgUpdateParams_params_MSGTYPE ibc_core_connection_v1_Params + +#define ibc_core_connection_v1_MsgUpdateParamsResponse_FIELDLIST(X, a) + +#define ibc_core_connection_v1_MsgUpdateParamsResponse_CALLBACK NULL +#define ibc_core_connection_v1_MsgUpdateParamsResponse_DEFAULT NULL + +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenInit_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenInitResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenTry_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenTryResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenAck_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenAckResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenConfirm_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgUpdateParams_msg; +extern const pb_msgdesc_t ibc_core_connection_v1_MsgUpdateParamsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_connection_v1_MsgConnectionOpenInit_fields &ibc_core_connection_v1_MsgConnectionOpenInit_msg +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_fields &ibc_core_connection_v1_MsgConnectionOpenInitResponse_msg +#define ibc_core_connection_v1_MsgConnectionOpenTry_fields &ibc_core_connection_v1_MsgConnectionOpenTry_msg +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_fields &ibc_core_connection_v1_MsgConnectionOpenTryResponse_msg +#define ibc_core_connection_v1_MsgConnectionOpenAck_fields &ibc_core_connection_v1_MsgConnectionOpenAck_msg +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_fields &ibc_core_connection_v1_MsgConnectionOpenAckResponse_msg +#define ibc_core_connection_v1_MsgConnectionOpenConfirm_fields &ibc_core_connection_v1_MsgConnectionOpenConfirm_msg +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_fields \ + &ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_msg +#define ibc_core_connection_v1_MsgUpdateParams_fields &ibc_core_connection_v1_MsgUpdateParams_msg +#define ibc_core_connection_v1_MsgUpdateParamsResponse_fields &ibc_core_connection_v1_MsgUpdateParamsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_core_connection_v1_MsgConnectionOpenInit_size depends on runtime parameters */ +/* ibc_core_connection_v1_MsgConnectionOpenTry_size depends on runtime parameters */ +/* ibc_core_connection_v1_MsgConnectionOpenAck_size depends on runtime parameters */ +/* ibc_core_connection_v1_MsgConnectionOpenConfirm_size depends on runtime parameters */ +/* ibc_core_connection_v1_MsgUpdateParams_size depends on runtime parameters */ +#define ibc_core_connection_v1_MsgConnectionOpenAckResponse_size 0 +#define ibc_core_connection_v1_MsgConnectionOpenConfirmResponse_size 0 +#define ibc_core_connection_v1_MsgConnectionOpenInitResponse_size 0 +#define ibc_core_connection_v1_MsgConnectionOpenTryResponse_size 0 +#define ibc_core_connection_v1_MsgUpdateParamsResponse_size 0 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/core/types/v1/genesis.pb.c b/app/src/protobuf/ibc/core/types/v1/genesis.pb.c new file mode 100644 index 0000000..85b0130 --- /dev/null +++ b/app/src/protobuf/ibc/core/types/v1/genesis.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/core/types/v1/genesis.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_core_types_v1_GenesisState, ibc_core_types_v1_GenesisState, 2) diff --git a/app/src/protobuf/ibc/core/types/v1/genesis.pb.h b/app/src/protobuf/ibc/core/types/v1/genesis.pb.h new file mode 100644 index 0000000..608c717 --- /dev/null +++ b/app/src/protobuf/ibc/core/types/v1/genesis.pb.h @@ -0,0 +1,81 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_CORE_TYPES_V1_IBC_CORE_TYPES_V1_GENESIS_PB_H_INCLUDED +#define PB_IBC_CORE_TYPES_V1_IBC_CORE_TYPES_V1_GENESIS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/channel/v1/genesis.pb.h" +#include "ibc/core/client/v1/genesis.pb.h" +#include "ibc/core/connection/v1/genesis.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GenesisState defines the ibc module's genesis state. */ +typedef struct _ibc_core_types_v1_GenesisState { + /* ICS002 - Clients genesis state */ + bool has_client_genesis; + ibc_core_client_v1_GenesisState client_genesis; + /* ICS003 - Connections genesis state */ + bool has_connection_genesis; + ibc_core_connection_v1_GenesisState connection_genesis; + /* ICS004 - Channel genesis state */ + bool has_channel_genesis; + ibc_core_channel_v1_GenesisState channel_genesis; +} ibc_core_types_v1_GenesisState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_core_types_v1_GenesisState_init_default \ + { \ + false, ibc_core_client_v1_GenesisState_init_default, false, ibc_core_connection_v1_GenesisState_init_default, \ + false, ibc_core_channel_v1_GenesisState_init_default \ + } +#define ibc_core_types_v1_GenesisState_init_zero \ + { \ + false, ibc_core_client_v1_GenesisState_init_zero, false, ibc_core_connection_v1_GenesisState_init_zero, false, \ + ibc_core_channel_v1_GenesisState_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_core_types_v1_GenesisState_client_genesis_tag 1 +#define ibc_core_types_v1_GenesisState_connection_genesis_tag 2 +#define ibc_core_types_v1_GenesisState_channel_genesis_tag 3 + +/* Struct field encoding specification for nanopb */ +#define ibc_core_types_v1_GenesisState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_genesis, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, connection_genesis, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, channel_genesis, 3) +#define ibc_core_types_v1_GenesisState_CALLBACK NULL +#define ibc_core_types_v1_GenesisState_DEFAULT NULL +#define ibc_core_types_v1_GenesisState_client_genesis_MSGTYPE ibc_core_client_v1_GenesisState +#define ibc_core_types_v1_GenesisState_connection_genesis_MSGTYPE ibc_core_connection_v1_GenesisState +#define ibc_core_types_v1_GenesisState_channel_genesis_MSGTYPE ibc_core_channel_v1_GenesisState + +extern const pb_msgdesc_t ibc_core_types_v1_GenesisState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_core_types_v1_GenesisState_fields &ibc_core_types_v1_GenesisState_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(ibc_core_client_v1_GenesisState_size) && defined(ibc_core_connection_v1_GenesisState_size) && \ + defined(ibc_core_channel_v1_GenesisState_size) +#define IBC_CORE_TYPES_V1_IBC_CORE_TYPES_V1_GENESIS_PB_H_MAX_SIZE ibc_core_types_v1_GenesisState_size +#define ibc_core_types_v1_GenesisState_size \ + (18 + ibc_core_client_v1_GenesisState_size + ibc_core_connection_v1_GenesisState_size + \ + ibc_core_channel_v1_GenesisState_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.c b/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.c new file mode 100644 index 0000000..c9a2b7b --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/lightclients/localhost/v2/localhost.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_lightclients_localhost_v2_ClientState, ibc_lightclients_localhost_v2_ClientState, AUTO) diff --git a/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.h b/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.h new file mode 100644 index 0000000..a475a25 --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/localhost/v2/localhost.pb.h @@ -0,0 +1,56 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_LIGHTCLIENTS_LOCALHOST_V2_IBC_LIGHTCLIENTS_LOCALHOST_V2_LOCALHOST_PB_H_INCLUDED +#define PB_IBC_LIGHTCLIENTS_LOCALHOST_V2_IBC_LIGHTCLIENTS_LOCALHOST_V2_LOCALHOST_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "ibc/core/client/v1/client.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ClientState defines the 09-localhost client state */ +typedef struct _ibc_lightclients_localhost_v2_ClientState { + /* the latest block height */ + bool has_latest_height; + ibc_core_client_v1_Height latest_height; +} ibc_lightclients_localhost_v2_ClientState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_lightclients_localhost_v2_ClientState_init_default \ + { false, ibc_core_client_v1_Height_init_default } +#define ibc_lightclients_localhost_v2_ClientState_init_zero \ + { false, ibc_core_client_v1_Height_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_lightclients_localhost_v2_ClientState_latest_height_tag 1 + +/* Struct field encoding specification for nanopb */ +#define ibc_lightclients_localhost_v2_ClientState_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, latest_height, 1) +#define ibc_lightclients_localhost_v2_ClientState_CALLBACK NULL +#define ibc_lightclients_localhost_v2_ClientState_DEFAULT NULL +#define ibc_lightclients_localhost_v2_ClientState_latest_height_MSGTYPE ibc_core_client_v1_Height + +extern const pb_msgdesc_t ibc_lightclients_localhost_v2_ClientState_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_lightclients_localhost_v2_ClientState_fields &ibc_lightclients_localhost_v2_ClientState_msg + +/* Maximum encoded size of messages (where known) */ +#define IBC_LIGHTCLIENTS_LOCALHOST_V2_IBC_LIGHTCLIENTS_LOCALHOST_V2_LOCALHOST_PB_H_MAX_SIZE \ + ibc_lightclients_localhost_v2_ClientState_size +#define ibc_lightclients_localhost_v2_ClientState_size 24 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.c b/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.c new file mode 100644 index 0000000..b8527d7 --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.c @@ -0,0 +1,42 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/lightclients/solomachine/v2/solomachine.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_lightclients_solomachine_v2_ClientState, ibc_lightclients_solomachine_v2_ClientState, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_ConsensusState, ibc_lightclients_solomachine_v2_ConsensusState, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_Header, ibc_lightclients_solomachine_v2_Header, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_Misbehaviour, ibc_lightclients_solomachine_v2_Misbehaviour, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_SignatureAndData, ibc_lightclients_solomachine_v2_SignatureAndData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_TimestampedSignatureData, ibc_lightclients_solomachine_v2_TimestampedSignatureData, + AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_SignBytes, ibc_lightclients_solomachine_v2_SignBytes, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_HeaderData, ibc_lightclients_solomachine_v2_HeaderData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_ClientStateData, ibc_lightclients_solomachine_v2_ClientStateData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_ConsensusStateData, ibc_lightclients_solomachine_v2_ConsensusStateData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_ConnectionStateData, ibc_lightclients_solomachine_v2_ConnectionStateData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_ChannelStateData, ibc_lightclients_solomachine_v2_ChannelStateData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_PacketCommitmentData, ibc_lightclients_solomachine_v2_PacketCommitmentData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_PacketAcknowledgementData, ibc_lightclients_solomachine_v2_PacketAcknowledgementData, + AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData, ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData, + AUTO) + +PB_BIND(ibc_lightclients_solomachine_v2_NextSequenceRecvData, ibc_lightclients_solomachine_v2_NextSequenceRecvData, AUTO) diff --git a/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.h b/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.h new file mode 100644 index 0000000..768f192 --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/solomachine/v2/solomachine.pb.h @@ -0,0 +1,523 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_LIGHTCLIENTS_SOLOMACHINE_V2_IBC_LIGHTCLIENTS_SOLOMACHINE_V2_SOLOMACHINE_PB_H_INCLUDED +#define PB_IBC_LIGHTCLIENTS_SOLOMACHINE_V2_IBC_LIGHTCLIENTS_SOLOMACHINE_V2_SOLOMACHINE_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" +#include "ibc/core/channel/v1/channel.pb.h" +#include "ibc/core/connection/v1/connection.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* DataType defines the type of solo machine proof being created. This is done + to preserve uniqueness of different data sign byte encodings. */ +typedef enum _ibc_lightclients_solomachine_v2_DataType { + /* Default State */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0, + /* Data type for client state verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_CLIENT_STATE = 1, + /* Data type for consensus state verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_CONSENSUS_STATE = 2, + /* Data type for connection state verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_CONNECTION_STATE = 3, + /* Data type for channel state verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_CHANNEL_STATE = 4, + /* Data type for packet commitment verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_PACKET_COMMITMENT = 5, + /* Data type for packet acknowledgement verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6, + /* Data type for packet receipt absence verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7, + /* Data type for next sequence recv verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_NEXT_SEQUENCE_RECV = 8, + /* Data type for header verification */ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_HEADER = 9 +} ibc_lightclients_solomachine_v2_DataType; + +/* Struct definitions */ +/* ConsensusState defines a solo machine consensus state. The sequence of a + consensus state is contained in the "height" key used in storing the + consensus state. */ +typedef struct _ibc_lightclients_solomachine_v2_ConsensusState { + /* public key of the solo machine */ + bool has_public_key; + google_protobuf_Any public_key; + /* diversifier allows the same public key to be re-used across different solo + machine clients (potentially on different chains) without being considered + misbehaviour. */ + pb_callback_t diversifier; + uint64_t timestamp; +} ibc_lightclients_solomachine_v2_ConsensusState; + +/* ClientState defines a solo machine client that tracks the current consensus + state and if the client is frozen. */ +typedef struct _ibc_lightclients_solomachine_v2_ClientState { + /* latest sequence of the client state */ + uint64_t sequence; + /* frozen sequence of the solo machine */ + bool is_frozen; + bool has_consensus_state; + ibc_lightclients_solomachine_v2_ConsensusState consensus_state; + /* when set to true, will allow governance to update a solo machine client. + The client will be unfrozen if it is frozen. */ + bool allow_update_after_proposal; +} ibc_lightclients_solomachine_v2_ClientState; + +/* Header defines a solo machine consensus header */ +typedef struct _ibc_lightclients_solomachine_v2_Header { + /* sequence to update solo machine public key at */ + uint64_t sequence; + uint64_t timestamp; + pb_callback_t signature; + bool has_new_public_key; + google_protobuf_Any new_public_key; + pb_callback_t new_diversifier; +} ibc_lightclients_solomachine_v2_Header; + +/* SignatureAndData contains a signature and the data signed over to create that + signature. */ +typedef struct _ibc_lightclients_solomachine_v2_SignatureAndData { + pb_callback_t signature; + ibc_lightclients_solomachine_v2_DataType data_type; + pb_callback_t data; + uint64_t timestamp; +} ibc_lightclients_solomachine_v2_SignatureAndData; + +/* Misbehaviour defines misbehaviour for a solo machine which consists + of a sequence and two signatures over different messages at that sequence. */ +typedef struct _ibc_lightclients_solomachine_v2_Misbehaviour { + pb_callback_t client_id; + uint64_t sequence; + bool has_signature_one; + ibc_lightclients_solomachine_v2_SignatureAndData signature_one; + bool has_signature_two; + ibc_lightclients_solomachine_v2_SignatureAndData signature_two; +} ibc_lightclients_solomachine_v2_Misbehaviour; + +/* TimestampedSignatureData contains the signature data and the timestamp of the + signature. */ +typedef struct _ibc_lightclients_solomachine_v2_TimestampedSignatureData { + pb_callback_t signature_data; + uint64_t timestamp; +} ibc_lightclients_solomachine_v2_TimestampedSignatureData; + +/* SignBytes defines the signed bytes used for signature verification. */ +typedef struct _ibc_lightclients_solomachine_v2_SignBytes { + uint64_t sequence; + uint64_t timestamp; + pb_callback_t diversifier; + /* type of the data used */ + ibc_lightclients_solomachine_v2_DataType data_type; + /* marshaled data */ + pb_callback_t data; +} ibc_lightclients_solomachine_v2_SignBytes; + +/* HeaderData returns the SignBytes data for update verification. */ +typedef struct _ibc_lightclients_solomachine_v2_HeaderData { + /* header public key */ + bool has_new_pub_key; + google_protobuf_Any new_pub_key; + /* header diversifier */ + pb_callback_t new_diversifier; +} ibc_lightclients_solomachine_v2_HeaderData; + +/* ClientStateData returns the SignBytes data for client state verification. */ +typedef struct _ibc_lightclients_solomachine_v2_ClientStateData { + pb_callback_t path; + bool has_client_state; + google_protobuf_Any client_state; +} ibc_lightclients_solomachine_v2_ClientStateData; + +/* ConsensusStateData returns the SignBytes data for consensus state + verification. */ +typedef struct _ibc_lightclients_solomachine_v2_ConsensusStateData { + pb_callback_t path; + bool has_consensus_state; + google_protobuf_Any consensus_state; +} ibc_lightclients_solomachine_v2_ConsensusStateData; + +/* ConnectionStateData returns the SignBytes data for connection state + verification. */ +typedef struct _ibc_lightclients_solomachine_v2_ConnectionStateData { + pb_callback_t path; + bool has_connection; + ibc_core_connection_v1_ConnectionEnd connection; +} ibc_lightclients_solomachine_v2_ConnectionStateData; + +/* ChannelStateData returns the SignBytes data for channel state + verification. */ +typedef struct _ibc_lightclients_solomachine_v2_ChannelStateData { + pb_callback_t path; + bool has_channel; + ibc_core_channel_v1_Channel channel; +} ibc_lightclients_solomachine_v2_ChannelStateData; + +/* PacketCommitmentData returns the SignBytes data for packet commitment + verification. */ +typedef struct _ibc_lightclients_solomachine_v2_PacketCommitmentData { + pb_callback_t path; + pb_callback_t commitment; +} ibc_lightclients_solomachine_v2_PacketCommitmentData; + +/* PacketAcknowledgementData returns the SignBytes data for acknowledgement + verification. */ +typedef struct _ibc_lightclients_solomachine_v2_PacketAcknowledgementData { + pb_callback_t path; + pb_callback_t acknowledgement; +} ibc_lightclients_solomachine_v2_PacketAcknowledgementData; + +/* PacketReceiptAbsenceData returns the SignBytes data for + packet receipt absence verification. */ +typedef struct _ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData { + pb_callback_t path; +} ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData; + +/* NextSequenceRecvData returns the SignBytes data for verification of the next + sequence to be received. */ +typedef struct _ibc_lightclients_solomachine_v2_NextSequenceRecvData { + pb_callback_t path; + uint64_t next_seq_recv; +} ibc_lightclients_solomachine_v2_NextSequenceRecvData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _ibc_lightclients_solomachine_v2_DataType_MIN \ + ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_UNINITIALIZED_UNSPECIFIED +#define _ibc_lightclients_solomachine_v2_DataType_MAX ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_HEADER +#define _ibc_lightclients_solomachine_v2_DataType_ARRAYSIZE \ + ((ibc_lightclients_solomachine_v2_DataType)(ibc_lightclients_solomachine_v2_DataType_DATA_TYPE_HEADER + 1)) + +#define ibc_lightclients_solomachine_v2_SignatureAndData_data_type_ENUMTYPE ibc_lightclients_solomachine_v2_DataType + +#define ibc_lightclients_solomachine_v2_SignBytes_data_type_ENUMTYPE ibc_lightclients_solomachine_v2_DataType + +/* Initializer values for message structs */ +#define ibc_lightclients_solomachine_v2_ClientState_init_default \ + { 0, 0, false, ibc_lightclients_solomachine_v2_ConsensusState_init_default, 0 } +#define ibc_lightclients_solomachine_v2_ConsensusState_init_default \ + { false, google_protobuf_Any_init_default, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_Header_init_default \ + { \ + 0, 0, {{NULL}, NULL}, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_Misbehaviour_init_default \ + { \ + {{NULL}, NULL}, 0, false, ibc_lightclients_solomachine_v2_SignatureAndData_init_default, false, \ + ibc_lightclients_solomachine_v2_SignatureAndData_init_default \ + } +#define ibc_lightclients_solomachine_v2_SignatureAndData_init_default \ + { {{NULL}, NULL}, _ibc_lightclients_solomachine_v2_DataType_MIN, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_init_default \ + { {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_SignBytes_init_default \ + { \ + 0, 0, {{NULL}, NULL}, _ibc_lightclients_solomachine_v2_DataType_MIN, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_HeaderData_init_default \ + { \ + false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_ClientStateData_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define ibc_lightclients_solomachine_v2_ConsensusStateData_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default } +#define ibc_lightclients_solomachine_v2_ConnectionStateData_init_default \ + { {{NULL}, NULL}, false, ibc_core_connection_v1_ConnectionEnd_init_default } +#define ibc_lightclients_solomachine_v2_ChannelStateData_init_default \ + { {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_default } +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_init_default \ + { \ + { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_init_default \ + { {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_ClientState_init_zero \ + { 0, 0, false, ibc_lightclients_solomachine_v2_ConsensusState_init_zero, 0 } +#define ibc_lightclients_solomachine_v2_ConsensusState_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_Header_init_zero \ + { \ + 0, 0, {{NULL}, NULL}, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_Misbehaviour_init_zero \ + { \ + {{NULL}, NULL}, 0, false, ibc_lightclients_solomachine_v2_SignatureAndData_init_zero, false, \ + ibc_lightclients_solomachine_v2_SignatureAndData_init_zero \ + } +#define ibc_lightclients_solomachine_v2_SignatureAndData_init_zero \ + { {{NULL}, NULL}, _ibc_lightclients_solomachine_v2_DataType_MIN, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_init_zero \ + { {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v2_SignBytes_init_zero \ + { \ + 0, 0, {{NULL}, NULL}, _ibc_lightclients_solomachine_v2_DataType_MIN, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_HeaderData_init_zero \ + { \ + false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_ClientStateData_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define ibc_lightclients_solomachine_v2_ConsensusStateData_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero } +#define ibc_lightclients_solomachine_v2_ConnectionStateData_init_zero \ + { {{NULL}, NULL}, false, ibc_core_connection_v1_ConnectionEnd_init_zero } +#define ibc_lightclients_solomachine_v2_ChannelStateData_init_zero \ + { {{NULL}, NULL}, false, ibc_core_channel_v1_Channel_init_zero } +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_init_zero \ + { {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_lightclients_solomachine_v2_ConsensusState_public_key_tag 1 +#define ibc_lightclients_solomachine_v2_ConsensusState_diversifier_tag 2 +#define ibc_lightclients_solomachine_v2_ConsensusState_timestamp_tag 3 +#define ibc_lightclients_solomachine_v2_ClientState_sequence_tag 1 +#define ibc_lightclients_solomachine_v2_ClientState_is_frozen_tag 2 +#define ibc_lightclients_solomachine_v2_ClientState_consensus_state_tag 3 +#define ibc_lightclients_solomachine_v2_ClientState_allow_update_after_proposal_tag 4 +#define ibc_lightclients_solomachine_v2_Header_sequence_tag 1 +#define ibc_lightclients_solomachine_v2_Header_timestamp_tag 2 +#define ibc_lightclients_solomachine_v2_Header_signature_tag 3 +#define ibc_lightclients_solomachine_v2_Header_new_public_key_tag 4 +#define ibc_lightclients_solomachine_v2_Header_new_diversifier_tag 5 +#define ibc_lightclients_solomachine_v2_SignatureAndData_signature_tag 1 +#define ibc_lightclients_solomachine_v2_SignatureAndData_data_type_tag 2 +#define ibc_lightclients_solomachine_v2_SignatureAndData_data_tag 3 +#define ibc_lightclients_solomachine_v2_SignatureAndData_timestamp_tag 4 +#define ibc_lightclients_solomachine_v2_Misbehaviour_client_id_tag 1 +#define ibc_lightclients_solomachine_v2_Misbehaviour_sequence_tag 2 +#define ibc_lightclients_solomachine_v2_Misbehaviour_signature_one_tag 3 +#define ibc_lightclients_solomachine_v2_Misbehaviour_signature_two_tag 4 +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_signature_data_tag 1 +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_timestamp_tag 2 +#define ibc_lightclients_solomachine_v2_SignBytes_sequence_tag 1 +#define ibc_lightclients_solomachine_v2_SignBytes_timestamp_tag 2 +#define ibc_lightclients_solomachine_v2_SignBytes_diversifier_tag 3 +#define ibc_lightclients_solomachine_v2_SignBytes_data_type_tag 4 +#define ibc_lightclients_solomachine_v2_SignBytes_data_tag 5 +#define ibc_lightclients_solomachine_v2_HeaderData_new_pub_key_tag 1 +#define ibc_lightclients_solomachine_v2_HeaderData_new_diversifier_tag 2 +#define ibc_lightclients_solomachine_v2_ClientStateData_path_tag 1 +#define ibc_lightclients_solomachine_v2_ClientStateData_client_state_tag 2 +#define ibc_lightclients_solomachine_v2_ConsensusStateData_path_tag 1 +#define ibc_lightclients_solomachine_v2_ConsensusStateData_consensus_state_tag 2 +#define ibc_lightclients_solomachine_v2_ConnectionStateData_path_tag 1 +#define ibc_lightclients_solomachine_v2_ConnectionStateData_connection_tag 2 +#define ibc_lightclients_solomachine_v2_ChannelStateData_path_tag 1 +#define ibc_lightclients_solomachine_v2_ChannelStateData_channel_tag 2 +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_path_tag 1 +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_commitment_tag 2 +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_path_tag 1 +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_acknowledgement_tag 2 +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_path_tag 1 +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_path_tag 1 +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_next_seq_recv_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_lightclients_solomachine_v2_ClientState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, SINGULAR, BOOL, is_frozen, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 3) \ + X(a, STATIC, SINGULAR, BOOL, allow_update_after_proposal, 4) +#define ibc_lightclients_solomachine_v2_ClientState_CALLBACK NULL +#define ibc_lightclients_solomachine_v2_ClientState_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ClientState_consensus_state_MSGTYPE ibc_lightclients_solomachine_v2_ConsensusState + +#define ibc_lightclients_solomachine_v2_ConsensusState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, public_key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, diversifier, 2) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 3) +#define ibc_lightclients_solomachine_v2_ConsensusState_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_ConsensusState_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ConsensusState_public_key_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v2_Header_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_public_key, 4) \ + X(a, CALLBACK, SINGULAR, STRING, new_diversifier, 5) +#define ibc_lightclients_solomachine_v2_Header_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_Header_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_Header_new_public_key_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v2_Misbehaviour_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, signature_one, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, signature_two, 4) +#define ibc_lightclients_solomachine_v2_Misbehaviour_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_Misbehaviour_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_Misbehaviour_signature_one_MSGTYPE ibc_lightclients_solomachine_v2_SignatureAndData +#define ibc_lightclients_solomachine_v2_Misbehaviour_signature_two_MSGTYPE ibc_lightclients_solomachine_v2_SignatureAndData + +#define ibc_lightclients_solomachine_v2_SignatureAndData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 1) \ + X(a, STATIC, SINGULAR, UENUM, data_type, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 3) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 4) +#define ibc_lightclients_solomachine_v2_SignatureAndData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_SignatureAndData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, signature_data, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_SignBytes_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) \ + X(a, CALLBACK, SINGULAR, STRING, diversifier, 3) \ + X(a, STATIC, SINGULAR, UENUM, data_type, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 5) +#define ibc_lightclients_solomachine_v2_SignBytes_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_SignBytes_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_HeaderData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_pub_key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, new_diversifier, 2) +#define ibc_lightclients_solomachine_v2_HeaderData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_HeaderData_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_HeaderData_new_pub_key_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v2_ClientStateData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 2) +#define ibc_lightclients_solomachine_v2_ClientStateData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_ClientStateData_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ClientStateData_client_state_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v2_ConsensusStateData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 2) +#define ibc_lightclients_solomachine_v2_ConsensusStateData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_ConsensusStateData_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ConsensusStateData_consensus_state_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v2_ConnectionStateData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, connection, 2) +#define ibc_lightclients_solomachine_v2_ConnectionStateData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_ConnectionStateData_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ConnectionStateData_connection_MSGTYPE ibc_core_connection_v1_ConnectionEnd + +#define ibc_lightclients_solomachine_v2_ChannelStateData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, channel, 2) +#define ibc_lightclients_solomachine_v2_ChannelStateData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_ChannelStateData_DEFAULT NULL +#define ibc_lightclients_solomachine_v2_ChannelStateData_channel_MSGTYPE ibc_core_channel_v1_Channel + +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, commitment, 2) +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, acknowledgement, 2) +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, path, 1) +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 1) \ + X(a, STATIC, SINGULAR, UINT64, next_seq_recv, 2) +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_DEFAULT NULL + +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ClientState_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ConsensusState_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_Header_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_Misbehaviour_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_SignatureAndData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_TimestampedSignatureData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_SignBytes_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_HeaderData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ClientStateData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ConsensusStateData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ConnectionStateData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_ChannelStateData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_PacketCommitmentData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_PacketAcknowledgementData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v2_NextSequenceRecvData_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_lightclients_solomachine_v2_ClientState_fields &ibc_lightclients_solomachine_v2_ClientState_msg +#define ibc_lightclients_solomachine_v2_ConsensusState_fields &ibc_lightclients_solomachine_v2_ConsensusState_msg +#define ibc_lightclients_solomachine_v2_Header_fields &ibc_lightclients_solomachine_v2_Header_msg +#define ibc_lightclients_solomachine_v2_Misbehaviour_fields &ibc_lightclients_solomachine_v2_Misbehaviour_msg +#define ibc_lightclients_solomachine_v2_SignatureAndData_fields &ibc_lightclients_solomachine_v2_SignatureAndData_msg +#define ibc_lightclients_solomachine_v2_TimestampedSignatureData_fields \ + &ibc_lightclients_solomachine_v2_TimestampedSignatureData_msg +#define ibc_lightclients_solomachine_v2_SignBytes_fields &ibc_lightclients_solomachine_v2_SignBytes_msg +#define ibc_lightclients_solomachine_v2_HeaderData_fields &ibc_lightclients_solomachine_v2_HeaderData_msg +#define ibc_lightclients_solomachine_v2_ClientStateData_fields &ibc_lightclients_solomachine_v2_ClientStateData_msg +#define ibc_lightclients_solomachine_v2_ConsensusStateData_fields &ibc_lightclients_solomachine_v2_ConsensusStateData_msg +#define ibc_lightclients_solomachine_v2_ConnectionStateData_fields &ibc_lightclients_solomachine_v2_ConnectionStateData_msg +#define ibc_lightclients_solomachine_v2_ChannelStateData_fields &ibc_lightclients_solomachine_v2_ChannelStateData_msg +#define ibc_lightclients_solomachine_v2_PacketCommitmentData_fields &ibc_lightclients_solomachine_v2_PacketCommitmentData_msg +#define ibc_lightclients_solomachine_v2_PacketAcknowledgementData_fields \ + &ibc_lightclients_solomachine_v2_PacketAcknowledgementData_msg +#define ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_fields \ + &ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_msg +#define ibc_lightclients_solomachine_v2_NextSequenceRecvData_fields &ibc_lightclients_solomachine_v2_NextSequenceRecvData_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_lightclients_solomachine_v2_ClientState_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_ConsensusState_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_Header_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_Misbehaviour_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_SignatureAndData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_TimestampedSignatureData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_SignBytes_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_HeaderData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_ClientStateData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_ConsensusStateData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_ConnectionStateData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_ChannelStateData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_PacketCommitmentData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_PacketAcknowledgementData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_PacketReceiptAbsenceData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v2_NextSequenceRecvData_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.c b/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.c new file mode 100644 index 0000000..71e5e7c --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.c @@ -0,0 +1,24 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/lightclients/solomachine/v3/solomachine.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_lightclients_solomachine_v3_ClientState, ibc_lightclients_solomachine_v3_ClientState, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_ConsensusState, ibc_lightclients_solomachine_v3_ConsensusState, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_Header, ibc_lightclients_solomachine_v3_Header, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_Misbehaviour, ibc_lightclients_solomachine_v3_Misbehaviour, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_SignatureAndData, ibc_lightclients_solomachine_v3_SignatureAndData, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_TimestampedSignatureData, ibc_lightclients_solomachine_v3_TimestampedSignatureData, + AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_SignBytes, ibc_lightclients_solomachine_v3_SignBytes, AUTO) + +PB_BIND(ibc_lightclients_solomachine_v3_HeaderData, ibc_lightclients_solomachine_v3_HeaderData, AUTO) diff --git a/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.h b/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.h new file mode 100644 index 0000000..e7130d3 --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/solomachine/v3/solomachine.pb.h @@ -0,0 +1,282 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_LIGHTCLIENTS_SOLOMACHINE_V3_IBC_LIGHTCLIENTS_SOLOMACHINE_V3_SOLOMACHINE_PB_H_INCLUDED +#define PB_IBC_LIGHTCLIENTS_SOLOMACHINE_V3_IBC_LIGHTCLIENTS_SOLOMACHINE_V3_SOLOMACHINE_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/any.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ConsensusState defines a solo machine consensus state. The sequence of a + consensus state is contained in the "height" key used in storing the + consensus state. */ +typedef struct _ibc_lightclients_solomachine_v3_ConsensusState { + /* public key of the solo machine */ + bool has_public_key; + google_protobuf_Any public_key; + /* diversifier allows the same public key to be re-used across different solo + machine clients (potentially on different chains) without being considered + misbehaviour. */ + pb_callback_t diversifier; + uint64_t timestamp; +} ibc_lightclients_solomachine_v3_ConsensusState; + +/* ClientState defines a solo machine client that tracks the current consensus + state and if the client is frozen. */ +typedef struct _ibc_lightclients_solomachine_v3_ClientState { + /* latest sequence of the client state */ + uint64_t sequence; + /* frozen sequence of the solo machine */ + bool is_frozen; + bool has_consensus_state; + ibc_lightclients_solomachine_v3_ConsensusState consensus_state; +} ibc_lightclients_solomachine_v3_ClientState; + +/* Header defines a solo machine consensus header */ +typedef struct _ibc_lightclients_solomachine_v3_Header { + uint64_t timestamp; + pb_callback_t signature; + bool has_new_public_key; + google_protobuf_Any new_public_key; + pb_callback_t new_diversifier; +} ibc_lightclients_solomachine_v3_Header; + +/* SignatureAndData contains a signature and the data signed over to create that + signature. */ +typedef struct _ibc_lightclients_solomachine_v3_SignatureAndData { + pb_callback_t signature; + pb_callback_t path; + pb_callback_t data; + uint64_t timestamp; +} ibc_lightclients_solomachine_v3_SignatureAndData; + +/* Misbehaviour defines misbehaviour for a solo machine which consists + of a sequence and two signatures over different messages at that sequence. */ +typedef struct _ibc_lightclients_solomachine_v3_Misbehaviour { + uint64_t sequence; + bool has_signature_one; + ibc_lightclients_solomachine_v3_SignatureAndData signature_one; + bool has_signature_two; + ibc_lightclients_solomachine_v3_SignatureAndData signature_two; +} ibc_lightclients_solomachine_v3_Misbehaviour; + +/* TimestampedSignatureData contains the signature data and the timestamp of the + signature. */ +typedef struct _ibc_lightclients_solomachine_v3_TimestampedSignatureData { + pb_callback_t signature_data; + uint64_t timestamp; +} ibc_lightclients_solomachine_v3_TimestampedSignatureData; + +/* SignBytes defines the signed bytes used for signature verification. */ +typedef struct _ibc_lightclients_solomachine_v3_SignBytes { + /* the sequence number */ + uint64_t sequence; + /* the proof timestamp */ + uint64_t timestamp; + /* the public key diversifier */ + pb_callback_t diversifier; + /* the standardised path bytes */ + pb_callback_t path; + /* the marshaled data bytes */ + pb_callback_t data; +} ibc_lightclients_solomachine_v3_SignBytes; + +/* HeaderData returns the SignBytes data for update verification. */ +typedef struct _ibc_lightclients_solomachine_v3_HeaderData { + /* header public key */ + bool has_new_pub_key; + google_protobuf_Any new_pub_key; + /* header diversifier */ + pb_callback_t new_diversifier; +} ibc_lightclients_solomachine_v3_HeaderData; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_lightclients_solomachine_v3_ClientState_init_default \ + { 0, 0, false, ibc_lightclients_solomachine_v3_ConsensusState_init_default } +#define ibc_lightclients_solomachine_v3_ConsensusState_init_default \ + { false, google_protobuf_Any_init_default, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_Header_init_default \ + { \ + 0, {{NULL}, NULL}, false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v3_Misbehaviour_init_default \ + { \ + 0, false, ibc_lightclients_solomachine_v3_SignatureAndData_init_default, false, \ + ibc_lightclients_solomachine_v3_SignatureAndData_init_default \ + } +#define ibc_lightclients_solomachine_v3_SignatureAndData_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_init_default \ + { {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_SignBytes_init_default \ + { \ + 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v3_HeaderData_init_default \ + { \ + false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v3_ClientState_init_zero \ + { 0, 0, false, ibc_lightclients_solomachine_v3_ConsensusState_init_zero } +#define ibc_lightclients_solomachine_v3_ConsensusState_init_zero \ + { false, google_protobuf_Any_init_zero, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_Header_init_zero \ + { \ + 0, {{NULL}, NULL}, false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v3_Misbehaviour_init_zero \ + { \ + 0, false, ibc_lightclients_solomachine_v3_SignatureAndData_init_zero, false, \ + ibc_lightclients_solomachine_v3_SignatureAndData_init_zero \ + } +#define ibc_lightclients_solomachine_v3_SignatureAndData_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_init_zero \ + { {{NULL}, NULL}, 0 } +#define ibc_lightclients_solomachine_v3_SignBytes_init_zero \ + { \ + 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define ibc_lightclients_solomachine_v3_HeaderData_init_zero \ + { \ + false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_lightclients_solomachine_v3_ConsensusState_public_key_tag 1 +#define ibc_lightclients_solomachine_v3_ConsensusState_diversifier_tag 2 +#define ibc_lightclients_solomachine_v3_ConsensusState_timestamp_tag 3 +#define ibc_lightclients_solomachine_v3_ClientState_sequence_tag 1 +#define ibc_lightclients_solomachine_v3_ClientState_is_frozen_tag 2 +#define ibc_lightclients_solomachine_v3_ClientState_consensus_state_tag 3 +#define ibc_lightclients_solomachine_v3_Header_timestamp_tag 1 +#define ibc_lightclients_solomachine_v3_Header_signature_tag 2 +#define ibc_lightclients_solomachine_v3_Header_new_public_key_tag 3 +#define ibc_lightclients_solomachine_v3_Header_new_diversifier_tag 4 +#define ibc_lightclients_solomachine_v3_SignatureAndData_signature_tag 1 +#define ibc_lightclients_solomachine_v3_SignatureAndData_path_tag 2 +#define ibc_lightclients_solomachine_v3_SignatureAndData_data_tag 3 +#define ibc_lightclients_solomachine_v3_SignatureAndData_timestamp_tag 4 +#define ibc_lightclients_solomachine_v3_Misbehaviour_sequence_tag 1 +#define ibc_lightclients_solomachine_v3_Misbehaviour_signature_one_tag 2 +#define ibc_lightclients_solomachine_v3_Misbehaviour_signature_two_tag 3 +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_signature_data_tag 1 +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_timestamp_tag 2 +#define ibc_lightclients_solomachine_v3_SignBytes_sequence_tag 1 +#define ibc_lightclients_solomachine_v3_SignBytes_timestamp_tag 2 +#define ibc_lightclients_solomachine_v3_SignBytes_diversifier_tag 3 +#define ibc_lightclients_solomachine_v3_SignBytes_path_tag 4 +#define ibc_lightclients_solomachine_v3_SignBytes_data_tag 5 +#define ibc_lightclients_solomachine_v3_HeaderData_new_pub_key_tag 1 +#define ibc_lightclients_solomachine_v3_HeaderData_new_diversifier_tag 2 + +/* Struct field encoding specification for nanopb */ +#define ibc_lightclients_solomachine_v3_ClientState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, SINGULAR, BOOL, is_frozen, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 3) +#define ibc_lightclients_solomachine_v3_ClientState_CALLBACK NULL +#define ibc_lightclients_solomachine_v3_ClientState_DEFAULT NULL +#define ibc_lightclients_solomachine_v3_ClientState_consensus_state_MSGTYPE ibc_lightclients_solomachine_v3_ConsensusState + +#define ibc_lightclients_solomachine_v3_ConsensusState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, public_key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, diversifier, 2) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 3) +#define ibc_lightclients_solomachine_v3_ConsensusState_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_ConsensusState_DEFAULT NULL +#define ibc_lightclients_solomachine_v3_ConsensusState_public_key_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v3_Header_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_public_key, 3) \ + X(a, CALLBACK, SINGULAR, STRING, new_diversifier, 4) +#define ibc_lightclients_solomachine_v3_Header_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_Header_DEFAULT NULL +#define ibc_lightclients_solomachine_v3_Header_new_public_key_MSGTYPE google_protobuf_Any + +#define ibc_lightclients_solomachine_v3_Misbehaviour_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, signature_one, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, signature_two, 3) +#define ibc_lightclients_solomachine_v3_Misbehaviour_CALLBACK NULL +#define ibc_lightclients_solomachine_v3_Misbehaviour_DEFAULT NULL +#define ibc_lightclients_solomachine_v3_Misbehaviour_signature_one_MSGTYPE ibc_lightclients_solomachine_v3_SignatureAndData +#define ibc_lightclients_solomachine_v3_Misbehaviour_signature_two_MSGTYPE ibc_lightclients_solomachine_v3_SignatureAndData + +#define ibc_lightclients_solomachine_v3_SignatureAndData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 3) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 4) +#define ibc_lightclients_solomachine_v3_SignatureAndData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_SignatureAndData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, signature_data, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_DEFAULT NULL + +#define ibc_lightclients_solomachine_v3_SignBytes_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 1) \ + X(a, STATIC, SINGULAR, UINT64, timestamp, 2) \ + X(a, CALLBACK, SINGULAR, STRING, diversifier, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, path, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 5) +#define ibc_lightclients_solomachine_v3_SignBytes_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_SignBytes_DEFAULT NULL + +#define ibc_lightclients_solomachine_v3_HeaderData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_pub_key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, new_diversifier, 2) +#define ibc_lightclients_solomachine_v3_HeaderData_CALLBACK pb_default_field_callback +#define ibc_lightclients_solomachine_v3_HeaderData_DEFAULT NULL +#define ibc_lightclients_solomachine_v3_HeaderData_new_pub_key_MSGTYPE google_protobuf_Any + +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_ClientState_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_ConsensusState_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_Header_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_Misbehaviour_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_SignatureAndData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_TimestampedSignatureData_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_SignBytes_msg; +extern const pb_msgdesc_t ibc_lightclients_solomachine_v3_HeaderData_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_lightclients_solomachine_v3_ClientState_fields &ibc_lightclients_solomachine_v3_ClientState_msg +#define ibc_lightclients_solomachine_v3_ConsensusState_fields &ibc_lightclients_solomachine_v3_ConsensusState_msg +#define ibc_lightclients_solomachine_v3_Header_fields &ibc_lightclients_solomachine_v3_Header_msg +#define ibc_lightclients_solomachine_v3_Misbehaviour_fields &ibc_lightclients_solomachine_v3_Misbehaviour_msg +#define ibc_lightclients_solomachine_v3_SignatureAndData_fields &ibc_lightclients_solomachine_v3_SignatureAndData_msg +#define ibc_lightclients_solomachine_v3_TimestampedSignatureData_fields \ + &ibc_lightclients_solomachine_v3_TimestampedSignatureData_msg +#define ibc_lightclients_solomachine_v3_SignBytes_fields &ibc_lightclients_solomachine_v3_SignBytes_msg +#define ibc_lightclients_solomachine_v3_HeaderData_fields &ibc_lightclients_solomachine_v3_HeaderData_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_lightclients_solomachine_v3_ClientState_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_ConsensusState_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_Header_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_Misbehaviour_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_SignatureAndData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_TimestampedSignatureData_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_SignBytes_size depends on runtime parameters */ +/* ibc_lightclients_solomachine_v3_HeaderData_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.c b/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.c new file mode 100644 index 0000000..354a348 --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "ibc/lightclients/tendermint/v1/tendermint.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(ibc_lightclients_tendermint_v1_ClientState, ibc_lightclients_tendermint_v1_ClientState, AUTO) + +PB_BIND(ibc_lightclients_tendermint_v1_ConsensusState, ibc_lightclients_tendermint_v1_ConsensusState, AUTO) + +PB_BIND(ibc_lightclients_tendermint_v1_Misbehaviour, ibc_lightclients_tendermint_v1_Misbehaviour, 2) + +PB_BIND(ibc_lightclients_tendermint_v1_Header, ibc_lightclients_tendermint_v1_Header, 2) + +PB_BIND(ibc_lightclients_tendermint_v1_Fraction, ibc_lightclients_tendermint_v1_Fraction, AUTO) diff --git a/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.h b/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.h new file mode 100644 index 0000000..497c48f --- /dev/null +++ b/app/src/protobuf/ibc/lightclients/tendermint/v1/tendermint.pb.h @@ -0,0 +1,281 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_IBC_LIGHTCLIENTS_TENDERMINT_V1_IBC_LIGHTCLIENTS_TENDERMINT_V1_TENDERMINT_PB_H_INCLUDED +#define PB_IBC_LIGHTCLIENTS_TENDERMINT_V1_IBC_LIGHTCLIENTS_TENDERMINT_V1_TENDERMINT_PB_H_INCLUDED +#include + +#include "cosmos/ics23/v1/proofs.pb.h" +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "ibc/core/client/v1/client.pb.h" +#include "ibc/core/commitment/v1/commitment.pb.h" +#include "tendermint/types/types.pb.h" +#include "tendermint/types/validator.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* ConsensusState defines the consensus state from Tendermint. */ +typedef struct _ibc_lightclients_tendermint_v1_ConsensusState { + /* timestamp that corresponds to the block height in which the ConsensusState + was stored. */ + bool has_timestamp; + google_protobuf_Timestamp timestamp; + /* commitment root (i.e app hash) */ + bool has_root; + ibc_core_commitment_v1_MerkleRoot root; + pb_callback_t next_validators_hash; +} ibc_lightclients_tendermint_v1_ConsensusState; + +/* Header defines the Tendermint client consensus Header. + It encapsulates all the information necessary to update from a trusted + Tendermint ConsensusState. The inclusion of TrustedHeight and + TrustedValidators allows this update to process correctly, so long as the + ConsensusState for the TrustedHeight exists, this removes race conditions + among relayers The SignedHeader and ValidatorSet are the new untrusted update + fields for the client. The TrustedHeight is the height of a stored + ConsensusState on the client that will be used to verify the new untrusted + header. The Trusted ConsensusState must be within the unbonding period of + current time in order to correctly verify, and the TrustedValidators must + hash to TrustedConsensusState.NextValidatorsHash since that is the last + trusted validator set at the TrustedHeight. */ +typedef struct _ibc_lightclients_tendermint_v1_Header { + bool has_signed_header; + tendermint_types_SignedHeader signed_header; + bool has_validator_set; + tendermint_types_ValidatorSet validator_set; + bool has_trusted_height; + ibc_core_client_v1_Height trusted_height; + bool has_trusted_validators; + tendermint_types_ValidatorSet trusted_validators; +} ibc_lightclients_tendermint_v1_Header; + +/* Misbehaviour is a wrapper over two conflicting Headers + that implements Misbehaviour interface expected by ICS-02 */ +typedef struct _ibc_lightclients_tendermint_v1_Misbehaviour { + /* ClientID is deprecated */ + pb_callback_t client_id; + bool has_header_1; + ibc_lightclients_tendermint_v1_Header header_1; + bool has_header_2; + ibc_lightclients_tendermint_v1_Header header_2; +} ibc_lightclients_tendermint_v1_Misbehaviour; + +/* Fraction defines the protobuf message type for tmmath.Fraction that only + supports positive values. */ +typedef struct _ibc_lightclients_tendermint_v1_Fraction { + uint64_t numerator; + uint64_t denominator; +} ibc_lightclients_tendermint_v1_Fraction; + +/* ClientState from Tendermint tracks the current validator set, latest height, + and a possible frozen height. */ +typedef struct _ibc_lightclients_tendermint_v1_ClientState { + pb_callback_t chain_id; + bool has_trust_level; + ibc_lightclients_tendermint_v1_Fraction trust_level; + /* duration of the period since the LastestTimestamp during which the + submitted headers are valid for upgrade */ + bool has_trusting_period; + google_protobuf_Duration trusting_period; + /* duration of the staking unbonding period */ + bool has_unbonding_period; + google_protobuf_Duration unbonding_period; + /* defines how much new (untrusted) header's Time can drift into the future. */ + bool has_max_clock_drift; + google_protobuf_Duration max_clock_drift; + /* Block height when the client was frozen due to a misbehaviour */ + bool has_frozen_height; + ibc_core_client_v1_Height frozen_height; + /* Latest height the client was updated to */ + bool has_latest_height; + ibc_core_client_v1_Height latest_height; + /* Proof specifications used in verifying counterparty state */ + pb_callback_t proof_specs; + /* Path at which next upgraded client will be committed. + Each element corresponds to the key for a single CommitmentProof in the + chained proof. NOTE: ClientState must stored under + `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored + under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using + the default upgrade module, upgrade_path should be []string{"upgrade", + "upgradedIBCState"}` */ + pb_callback_t upgrade_path; + /* allow_update_after_expiry is deprecated */ + bool allow_update_after_expiry; + /* allow_update_after_misbehaviour is deprecated */ + bool allow_update_after_misbehaviour; +} ibc_lightclients_tendermint_v1_ClientState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define ibc_lightclients_tendermint_v1_ClientState_init_default \ + { \ + {{NULL}, NULL}, false, ibc_lightclients_tendermint_v1_Fraction_init_default, false, \ + google_protobuf_Duration_init_default, false, google_protobuf_Duration_init_default, false, \ + google_protobuf_Duration_init_default, false, ibc_core_client_v1_Height_init_default, false, \ + ibc_core_client_v1_Height_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 \ + } +#define ibc_lightclients_tendermint_v1_ConsensusState_init_default \ + { \ + false, google_protobuf_Timestamp_init_default, false, ibc_core_commitment_v1_MerkleRoot_init_default, { \ + {NULL}, NULL \ + } \ + } +#define ibc_lightclients_tendermint_v1_Misbehaviour_init_default \ + { \ + {{NULL}, NULL}, false, ibc_lightclients_tendermint_v1_Header_init_default, false, \ + ibc_lightclients_tendermint_v1_Header_init_default \ + } +#define ibc_lightclients_tendermint_v1_Header_init_default \ + { \ + false, tendermint_types_SignedHeader_init_default, false, tendermint_types_ValidatorSet_init_default, false, \ + ibc_core_client_v1_Height_init_default, false, tendermint_types_ValidatorSet_init_default \ + } +#define ibc_lightclients_tendermint_v1_Fraction_init_default \ + { 0, 0 } +#define ibc_lightclients_tendermint_v1_ClientState_init_zero \ + { \ + {{NULL}, NULL}, false, ibc_lightclients_tendermint_v1_Fraction_init_zero, false, \ + google_protobuf_Duration_init_zero, false, google_protobuf_Duration_init_zero, false, \ + google_protobuf_Duration_init_zero, false, ibc_core_client_v1_Height_init_zero, false, \ + ibc_core_client_v1_Height_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 \ + } +#define ibc_lightclients_tendermint_v1_ConsensusState_init_zero \ + { \ + false, google_protobuf_Timestamp_init_zero, false, ibc_core_commitment_v1_MerkleRoot_init_zero, { {NULL}, NULL } \ + } +#define ibc_lightclients_tendermint_v1_Misbehaviour_init_zero \ + { \ + {{NULL}, NULL}, false, ibc_lightclients_tendermint_v1_Header_init_zero, false, \ + ibc_lightclients_tendermint_v1_Header_init_zero \ + } +#define ibc_lightclients_tendermint_v1_Header_init_zero \ + { \ + false, tendermint_types_SignedHeader_init_zero, false, tendermint_types_ValidatorSet_init_zero, false, \ + ibc_core_client_v1_Height_init_zero, false, tendermint_types_ValidatorSet_init_zero \ + } +#define ibc_lightclients_tendermint_v1_Fraction_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define ibc_lightclients_tendermint_v1_ConsensusState_timestamp_tag 1 +#define ibc_lightclients_tendermint_v1_ConsensusState_root_tag 2 +#define ibc_lightclients_tendermint_v1_ConsensusState_next_validators_hash_tag 3 +#define ibc_lightclients_tendermint_v1_Header_signed_header_tag 1 +#define ibc_lightclients_tendermint_v1_Header_validator_set_tag 2 +#define ibc_lightclients_tendermint_v1_Header_trusted_height_tag 3 +#define ibc_lightclients_tendermint_v1_Header_trusted_validators_tag 4 +#define ibc_lightclients_tendermint_v1_Misbehaviour_client_id_tag 1 +#define ibc_lightclients_tendermint_v1_Misbehaviour_header_1_tag 2 +#define ibc_lightclients_tendermint_v1_Misbehaviour_header_2_tag 3 +#define ibc_lightclients_tendermint_v1_Fraction_numerator_tag 1 +#define ibc_lightclients_tendermint_v1_Fraction_denominator_tag 2 +#define ibc_lightclients_tendermint_v1_ClientState_chain_id_tag 1 +#define ibc_lightclients_tendermint_v1_ClientState_trust_level_tag 2 +#define ibc_lightclients_tendermint_v1_ClientState_trusting_period_tag 3 +#define ibc_lightclients_tendermint_v1_ClientState_unbonding_period_tag 4 +#define ibc_lightclients_tendermint_v1_ClientState_max_clock_drift_tag 5 +#define ibc_lightclients_tendermint_v1_ClientState_frozen_height_tag 6 +#define ibc_lightclients_tendermint_v1_ClientState_latest_height_tag 7 +#define ibc_lightclients_tendermint_v1_ClientState_proof_specs_tag 8 +#define ibc_lightclients_tendermint_v1_ClientState_upgrade_path_tag 9 +#define ibc_lightclients_tendermint_v1_ClientState_allow_update_after_expiry_tag 10 +#define ibc_lightclients_tendermint_v1_ClientState_allow_update_after_misbehaviour_tag 11 + +/* Struct field encoding specification for nanopb */ +#define ibc_lightclients_tendermint_v1_ClientState_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, trust_level, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trusting_period, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonding_period, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_clock_drift, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, frozen_height, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, latest_height, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, proof_specs, 8) \ + X(a, CALLBACK, REPEATED, STRING, upgrade_path, 9) \ + X(a, STATIC, SINGULAR, BOOL, allow_update_after_expiry, 10) \ + X(a, STATIC, SINGULAR, BOOL, allow_update_after_misbehaviour, 11) +#define ibc_lightclients_tendermint_v1_ClientState_CALLBACK pb_default_field_callback +#define ibc_lightclients_tendermint_v1_ClientState_DEFAULT NULL +#define ibc_lightclients_tendermint_v1_ClientState_trust_level_MSGTYPE ibc_lightclients_tendermint_v1_Fraction +#define ibc_lightclients_tendermint_v1_ClientState_trusting_period_MSGTYPE google_protobuf_Duration +#define ibc_lightclients_tendermint_v1_ClientState_unbonding_period_MSGTYPE google_protobuf_Duration +#define ibc_lightclients_tendermint_v1_ClientState_max_clock_drift_MSGTYPE google_protobuf_Duration +#define ibc_lightclients_tendermint_v1_ClientState_frozen_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_lightclients_tendermint_v1_ClientState_latest_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_lightclients_tendermint_v1_ClientState_proof_specs_MSGTYPE cosmos_ics23_v1_ProofSpec + +#define ibc_lightclients_tendermint_v1_ConsensusState_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, root, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, next_validators_hash, 3) +#define ibc_lightclients_tendermint_v1_ConsensusState_CALLBACK pb_default_field_callback +#define ibc_lightclients_tendermint_v1_ConsensusState_DEFAULT NULL +#define ibc_lightclients_tendermint_v1_ConsensusState_timestamp_MSGTYPE google_protobuf_Timestamp +#define ibc_lightclients_tendermint_v1_ConsensusState_root_MSGTYPE ibc_core_commitment_v1_MerkleRoot + +#define ibc_lightclients_tendermint_v1_Misbehaviour_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, header_1, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, header_2, 3) +#define ibc_lightclients_tendermint_v1_Misbehaviour_CALLBACK pb_default_field_callback +#define ibc_lightclients_tendermint_v1_Misbehaviour_DEFAULT NULL +#define ibc_lightclients_tendermint_v1_Misbehaviour_header_1_MSGTYPE ibc_lightclients_tendermint_v1_Header +#define ibc_lightclients_tendermint_v1_Misbehaviour_header_2_MSGTYPE ibc_lightclients_tendermint_v1_Header + +#define ibc_lightclients_tendermint_v1_Header_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, signed_header, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_set, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trusted_height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, trusted_validators, 4) +#define ibc_lightclients_tendermint_v1_Header_CALLBACK NULL +#define ibc_lightclients_tendermint_v1_Header_DEFAULT NULL +#define ibc_lightclients_tendermint_v1_Header_signed_header_MSGTYPE tendermint_types_SignedHeader +#define ibc_lightclients_tendermint_v1_Header_validator_set_MSGTYPE tendermint_types_ValidatorSet +#define ibc_lightclients_tendermint_v1_Header_trusted_height_MSGTYPE ibc_core_client_v1_Height +#define ibc_lightclients_tendermint_v1_Header_trusted_validators_MSGTYPE tendermint_types_ValidatorSet + +#define ibc_lightclients_tendermint_v1_Fraction_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, numerator, 1) \ + X(a, STATIC, SINGULAR, UINT64, denominator, 2) +#define ibc_lightclients_tendermint_v1_Fraction_CALLBACK NULL +#define ibc_lightclients_tendermint_v1_Fraction_DEFAULT NULL + +extern const pb_msgdesc_t ibc_lightclients_tendermint_v1_ClientState_msg; +extern const pb_msgdesc_t ibc_lightclients_tendermint_v1_ConsensusState_msg; +extern const pb_msgdesc_t ibc_lightclients_tendermint_v1_Misbehaviour_msg; +extern const pb_msgdesc_t ibc_lightclients_tendermint_v1_Header_msg; +extern const pb_msgdesc_t ibc_lightclients_tendermint_v1_Fraction_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define ibc_lightclients_tendermint_v1_ClientState_fields &ibc_lightclients_tendermint_v1_ClientState_msg +#define ibc_lightclients_tendermint_v1_ConsensusState_fields &ibc_lightclients_tendermint_v1_ConsensusState_msg +#define ibc_lightclients_tendermint_v1_Misbehaviour_fields &ibc_lightclients_tendermint_v1_Misbehaviour_msg +#define ibc_lightclients_tendermint_v1_Header_fields &ibc_lightclients_tendermint_v1_Header_msg +#define ibc_lightclients_tendermint_v1_Fraction_fields &ibc_lightclients_tendermint_v1_Fraction_msg + +/* Maximum encoded size of messages (where known) */ +/* ibc_lightclients_tendermint_v1_ClientState_size depends on runtime parameters */ +/* ibc_lightclients_tendermint_v1_ConsensusState_size depends on runtime parameters */ +/* ibc_lightclients_tendermint_v1_Misbehaviour_size depends on runtime parameters */ +#if defined(tendermint_types_SignedHeader_size) && defined(tendermint_types_ValidatorSet_size) && \ + defined(tendermint_types_ValidatorSet_size) +#define IBC_LIGHTCLIENTS_TENDERMINT_V1_IBC_LIGHTCLIENTS_TENDERMINT_V1_TENDERMINT_PB_H_MAX_SIZE \ + ibc_lightclients_tendermint_v1_Header_size +#define ibc_lightclients_tendermint_v1_Header_size \ + (42 + tendermint_types_SignedHeader_size + tendermint_types_ValidatorSet_size + tendermint_types_ValidatorSet_size) +#endif +#define ibc_lightclients_tendermint_v1_Fraction_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.c b/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.c new file mode 100644 index 0000000..2ffd4f6 --- /dev/null +++ b/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.c @@ -0,0 +1,34 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/cnidarium/v1/cnidarium.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_cnidarium_v1_NonVerifiableKeyValueRequest, penumbra_cnidarium_v1_NonVerifiableKeyValueRequest, AUTO) + +PB_BIND(penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key, penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key, AUTO) + +PB_BIND(penumbra_cnidarium_v1_NonVerifiableKeyValueResponse, penumbra_cnidarium_v1_NonVerifiableKeyValueResponse, AUTO) + +PB_BIND(penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value, penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value, + AUTO) + +PB_BIND(penumbra_cnidarium_v1_KeyValueRequest, penumbra_cnidarium_v1_KeyValueRequest, AUTO) + +PB_BIND(penumbra_cnidarium_v1_KeyValueResponse, penumbra_cnidarium_v1_KeyValueResponse, AUTO) + +PB_BIND(penumbra_cnidarium_v1_KeyValueResponse_Value, penumbra_cnidarium_v1_KeyValueResponse_Value, AUTO) + +PB_BIND(penumbra_cnidarium_v1_PrefixValueRequest, penumbra_cnidarium_v1_PrefixValueRequest, AUTO) + +PB_BIND(penumbra_cnidarium_v1_PrefixValueResponse, penumbra_cnidarium_v1_PrefixValueResponse, AUTO) + +PB_BIND(penumbra_cnidarium_v1_WatchRequest, penumbra_cnidarium_v1_WatchRequest, AUTO) + +PB_BIND(penumbra_cnidarium_v1_WatchResponse, penumbra_cnidarium_v1_WatchResponse, AUTO) + +PB_BIND(penumbra_cnidarium_v1_WatchResponse_KeyValue, penumbra_cnidarium_v1_WatchResponse_KeyValue, AUTO) + +PB_BIND(penumbra_cnidarium_v1_WatchResponse_NvKeyValue, penumbra_cnidarium_v1_WatchResponse_NvKeyValue, AUTO) diff --git a/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.h b/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.h new file mode 100644 index 0000000..638c45b --- /dev/null +++ b/app/src/protobuf/penumbra/cnidarium/v1/cnidarium.pb.h @@ -0,0 +1,356 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CNIDARIUM_V1_PENUMBRA_CNIDARIUM_V1_CNIDARIUM_PB_H_INCLUDED +#define PB_PENUMBRA_CNIDARIUM_V1_PENUMBRA_CNIDARIUM_V1_CNIDARIUM_PB_H_INCLUDED +#include + +#include "ibc/core/commitment/v1/commitment.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key { + pb_callback_t inner; +} penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key; + +/* Performs a key-value query against the nonverifiable storage, + using a byte-encoded key. */ +typedef struct _penumbra_cnidarium_v1_NonVerifiableKeyValueRequest { + bool has_key; + penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key key; +} penumbra_cnidarium_v1_NonVerifiableKeyValueRequest; + +typedef struct _penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value { + pb_callback_t value; +} penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value; + +typedef struct _penumbra_cnidarium_v1_NonVerifiableKeyValueResponse { + /* The value corresponding to the specified key, if it was found. */ + bool has_value; + penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value value; +} penumbra_cnidarium_v1_NonVerifiableKeyValueResponse; + +/* Performs a key-value query against the JMT, either by key or by key hash. + + Proofs are only supported by key. */ +typedef struct _penumbra_cnidarium_v1_KeyValueRequest { + /* If set, the key to fetch from storage. */ + pb_callback_t key; + /* whether to return a proof */ + bool proof; +} penumbra_cnidarium_v1_KeyValueRequest; + +typedef struct _penumbra_cnidarium_v1_KeyValueResponse_Value { + pb_callback_t value; +} penumbra_cnidarium_v1_KeyValueResponse_Value; + +typedef struct _penumbra_cnidarium_v1_KeyValueResponse { + /* The value corresponding to the specified key, if it was found. */ + bool has_value; + penumbra_cnidarium_v1_KeyValueResponse_Value value; + /* A proof of existence or non-existence. */ + bool has_proof; + ibc_core_commitment_v1_MerkleProof proof; +} penumbra_cnidarium_v1_KeyValueResponse; + +/* Performs a prefixed key-value query, by string prefix. */ +typedef struct _penumbra_cnidarium_v1_PrefixValueRequest { + /* The prefix to fetch subkeys from storage. */ + pb_callback_t prefix; +} penumbra_cnidarium_v1_PrefixValueRequest; + +typedef struct _penumbra_cnidarium_v1_PrefixValueResponse { + pb_callback_t key; + pb_callback_t value; +} penumbra_cnidarium_v1_PrefixValueResponse; + +/* Requests a stream of new key-value pairs that have been committed to the state. */ +typedef struct _penumbra_cnidarium_v1_WatchRequest { + /* A regex for keys in the verifiable storage. + + Only key-value updates whose keys match this regex will be returned. + Note that the empty string matches all keys. + To exclude all keys, use the regex "$^", which matches no strings. */ + pb_callback_t key_regex; + /* A regex for keys in the nonverifiable storage. + + Only key-value updates whose keys match this regex will be returned. + Note that the empty string matches all keys. + To exclude all keys, use the regex "$^", which matches no strings. */ + pb_callback_t nv_key_regex; +} penumbra_cnidarium_v1_WatchRequest; + +/* Elements of the verifiable storage have string keys. */ +typedef struct _penumbra_cnidarium_v1_WatchResponse_KeyValue { + pb_callback_t key; + pb_callback_t value; + /* If set to true, the key-value pair was deleted. + This allows distinguishing a deleted key-value pair from a key-value pair whose value is empty. */ + bool deleted; +} penumbra_cnidarium_v1_WatchResponse_KeyValue; + +/* Elements of the nonverifiable storage have byte keys. */ +typedef struct _penumbra_cnidarium_v1_WatchResponse_NvKeyValue { + pb_callback_t key; + pb_callback_t value; + /* If set to true, the key-value pair was deleted. + This allows distinguishing a deleted key-value pair from a key-value pair whose value is empty. */ + bool deleted; +} penumbra_cnidarium_v1_WatchResponse_NvKeyValue; + +/* A key-value pair that has been committed to the state. */ +typedef struct _penumbra_cnidarium_v1_WatchResponse { + /* The state version the key-value pair was committed at. */ + uint64_t version; + pb_size_t which_entry; + union { + penumbra_cnidarium_v1_WatchResponse_KeyValue kv; + penumbra_cnidarium_v1_WatchResponse_NvKeyValue nv_kv; + } entry; +} penumbra_cnidarium_v1_WatchResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_init_default \ + { false, penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_init_default } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_init_default \ + { false, penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_init_default } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_KeyValueRequest_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_cnidarium_v1_KeyValueResponse_init_default \ + { \ + false, penumbra_cnidarium_v1_KeyValueResponse_Value_init_default, false, \ + ibc_core_commitment_v1_MerkleProof_init_default \ + } +#define penumbra_cnidarium_v1_KeyValueResponse_Value_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_PrefixValueRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_PrefixValueResponse_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_WatchRequest_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_WatchResponse_init_default \ + { \ + 0, 0, { penumbra_cnidarium_v1_WatchResponse_KeyValue_init_default } \ + } +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_init_zero \ + { false, penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_init_zero } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_init_zero \ + { false, penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_init_zero } +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_KeyValueRequest_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_cnidarium_v1_KeyValueResponse_init_zero \ + { false, penumbra_cnidarium_v1_KeyValueResponse_Value_init_zero, false, ibc_core_commitment_v1_MerkleProof_init_zero } +#define penumbra_cnidarium_v1_KeyValueResponse_Value_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_PrefixValueRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_PrefixValueResponse_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_WatchRequest_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_cnidarium_v1_WatchResponse_init_zero \ + { \ + 0, 0, { penumbra_cnidarium_v1_WatchResponse_KeyValue_init_zero } \ + } +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_inner_tag 1 +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_key_tag 1 +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_value_tag 1 +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_value_tag 1 +#define penumbra_cnidarium_v1_KeyValueRequest_key_tag 2 +#define penumbra_cnidarium_v1_KeyValueRequest_proof_tag 3 +#define penumbra_cnidarium_v1_KeyValueResponse_Value_value_tag 1 +#define penumbra_cnidarium_v1_KeyValueResponse_value_tag 1 +#define penumbra_cnidarium_v1_KeyValueResponse_proof_tag 2 +#define penumbra_cnidarium_v1_PrefixValueRequest_prefix_tag 2 +#define penumbra_cnidarium_v1_PrefixValueResponse_key_tag 1 +#define penumbra_cnidarium_v1_PrefixValueResponse_value_tag 2 +#define penumbra_cnidarium_v1_WatchRequest_key_regex_tag 1 +#define penumbra_cnidarium_v1_WatchRequest_nv_key_regex_tag 2 +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_key_tag 1 +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_value_tag 2 +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_deleted_tag 3 +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_key_tag 1 +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_value_tag 2 +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_deleted_tag 3 +#define penumbra_cnidarium_v1_WatchResponse_version_tag 1 +#define penumbra_cnidarium_v1_WatchResponse_kv_tag 5 +#define penumbra_cnidarium_v1_WatchResponse_nv_kv_tag 6 + +/* Struct field encoding specification for nanopb */ +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, key, 1) +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_CALLBACK NULL +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_DEFAULT NULL +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_key_MSGTYPE penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key + +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_DEFAULT NULL + +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, value, 1) +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_CALLBACK NULL +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_DEFAULT NULL +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_value_MSGTYPE \ + penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value + +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, value, 1) +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_DEFAULT NULL + +#define penumbra_cnidarium_v1_KeyValueRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 2) \ + X(a, STATIC, SINGULAR, BOOL, proof, 3) +#define penumbra_cnidarium_v1_KeyValueRequest_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_KeyValueRequest_DEFAULT NULL + +#define penumbra_cnidarium_v1_KeyValueResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 2) +#define penumbra_cnidarium_v1_KeyValueResponse_CALLBACK NULL +#define penumbra_cnidarium_v1_KeyValueResponse_DEFAULT NULL +#define penumbra_cnidarium_v1_KeyValueResponse_value_MSGTYPE penumbra_cnidarium_v1_KeyValueResponse_Value +#define penumbra_cnidarium_v1_KeyValueResponse_proof_MSGTYPE ibc_core_commitment_v1_MerkleProof + +#define penumbra_cnidarium_v1_KeyValueResponse_Value_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, value, 1) +#define penumbra_cnidarium_v1_KeyValueResponse_Value_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_KeyValueResponse_Value_DEFAULT NULL + +#define penumbra_cnidarium_v1_PrefixValueRequest_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, prefix, 2) +#define penumbra_cnidarium_v1_PrefixValueRequest_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_PrefixValueRequest_DEFAULT NULL + +#define penumbra_cnidarium_v1_PrefixValueResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) +#define penumbra_cnidarium_v1_PrefixValueResponse_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_PrefixValueResponse_DEFAULT NULL + +#define penumbra_cnidarium_v1_WatchRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key_regex, 1) \ + X(a, CALLBACK, SINGULAR, STRING, nv_key_regex, 2) +#define penumbra_cnidarium_v1_WatchRequest_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_WatchRequest_DEFAULT NULL + +#define penumbra_cnidarium_v1_WatchResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, version, 1) \ + X(a, STATIC, ONEOF, MESSAGE, (entry, kv, entry.kv), 5) \ + X(a, STATIC, ONEOF, MESSAGE, (entry, nv_kv, entry.nv_kv), 6) +#define penumbra_cnidarium_v1_WatchResponse_CALLBACK NULL +#define penumbra_cnidarium_v1_WatchResponse_DEFAULT NULL +#define penumbra_cnidarium_v1_WatchResponse_entry_kv_MSGTYPE penumbra_cnidarium_v1_WatchResponse_KeyValue +#define penumbra_cnidarium_v1_WatchResponse_entry_nv_kv_MSGTYPE penumbra_cnidarium_v1_WatchResponse_NvKeyValue + +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, SINGULAR, BOOL, deleted, 3) +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_DEFAULT NULL + +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, SINGULAR, BOOL, deleted, 3) +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_CALLBACK pb_default_field_callback +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_KeyValueRequest_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_KeyValueResponse_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_KeyValueResponse_Value_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_PrefixValueRequest_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_PrefixValueResponse_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_WatchRequest_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_WatchResponse_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_WatchResponse_KeyValue_msg; +extern const pb_msgdesc_t penumbra_cnidarium_v1_WatchResponse_NvKeyValue_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_fields &penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_msg +#define penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_fields \ + &penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_msg +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_fields &penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_msg +#define penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_fields \ + &penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_msg +#define penumbra_cnidarium_v1_KeyValueRequest_fields &penumbra_cnidarium_v1_KeyValueRequest_msg +#define penumbra_cnidarium_v1_KeyValueResponse_fields &penumbra_cnidarium_v1_KeyValueResponse_msg +#define penumbra_cnidarium_v1_KeyValueResponse_Value_fields &penumbra_cnidarium_v1_KeyValueResponse_Value_msg +#define penumbra_cnidarium_v1_PrefixValueRequest_fields &penumbra_cnidarium_v1_PrefixValueRequest_msg +#define penumbra_cnidarium_v1_PrefixValueResponse_fields &penumbra_cnidarium_v1_PrefixValueResponse_msg +#define penumbra_cnidarium_v1_WatchRequest_fields &penumbra_cnidarium_v1_WatchRequest_msg +#define penumbra_cnidarium_v1_WatchResponse_fields &penumbra_cnidarium_v1_WatchResponse_msg +#define penumbra_cnidarium_v1_WatchResponse_KeyValue_fields &penumbra_cnidarium_v1_WatchResponse_KeyValue_msg +#define penumbra_cnidarium_v1_WatchResponse_NvKeyValue_fields &penumbra_cnidarium_v1_WatchResponse_NvKeyValue_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_NonVerifiableKeyValueRequest_Key_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_NonVerifiableKeyValueResponse_Value_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_KeyValueRequest_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_KeyValueResponse_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_KeyValueResponse_Value_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_PrefixValueRequest_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_PrefixValueResponse_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_WatchRequest_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_WatchResponse_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_WatchResponse_KeyValue_size depends on runtime parameters */ +/* penumbra_cnidarium_v1_WatchResponse_NvKeyValue_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/app/v1/app.pb.c b/app/src/protobuf/penumbra/core/app/v1/app.pb.c new file mode 100644 index 0000000..da50722 --- /dev/null +++ b/app/src/protobuf/penumbra/core/app/v1/app.pb.c @@ -0,0 +1,21 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/app/v1/app.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_app_v1_TransactionsByHeightRequest, penumbra_core_app_v1_TransactionsByHeightRequest, AUTO) + +PB_BIND(penumbra_core_app_v1_TransactionsByHeightResponse, penumbra_core_app_v1_TransactionsByHeightResponse, AUTO) + +PB_BIND(penumbra_core_app_v1_AppParameters, penumbra_core_app_v1_AppParameters, 2) + +PB_BIND(penumbra_core_app_v1_AppParametersRequest, penumbra_core_app_v1_AppParametersRequest, AUTO) + +PB_BIND(penumbra_core_app_v1_AppParametersResponse, penumbra_core_app_v1_AppParametersResponse, 2) + +PB_BIND(penumbra_core_app_v1_GenesisAppState, penumbra_core_app_v1_GenesisAppState, 2) + +PB_BIND(penumbra_core_app_v1_GenesisContent, penumbra_core_app_v1_GenesisContent, 2) diff --git a/app/src/protobuf/penumbra/core/app/v1/app.pb.h b/app/src/protobuf/penumbra/core/app/v1/app.pb.h new file mode 100644 index 0000000..0fd1712 --- /dev/null +++ b/app/src/protobuf/penumbra/core/app/v1/app.pb.h @@ -0,0 +1,373 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_APP_V1_PENUMBRA_CORE_APP_V1_APP_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_APP_V1_PENUMBRA_CORE_APP_V1_APP_PB_H_INCLUDED +#include + +#include "penumbra/core/component/auction/v1/auction.pb.h" +#include "penumbra/core/component/community_pool/v1/community_pool.pb.h" +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/component/distributions/v1/distributions.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/funding/v1/funding.pb.h" +#include "penumbra/core/component/governance/v1/governance.pb.h" +#include "penumbra/core/component/ibc/v1/ibc.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/transaction/v1/transaction.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Requests the list of all transactions that occurred within a given block. */ +typedef struct _penumbra_core_app_v1_TransactionsByHeightRequest { + /* The block height to retrieve. */ + uint64_t block_height; +} penumbra_core_app_v1_TransactionsByHeightRequest; + +/* A transaction that appeared within a given block. */ +typedef struct _penumbra_core_app_v1_TransactionsByHeightResponse { + /* The transactions. */ + pb_callback_t transactions; + /* The block height. */ + uint64_t block_height; +} penumbra_core_app_v1_TransactionsByHeightResponse; + +typedef struct _penumbra_core_app_v1_AppParameters { + /* The chain identifier. */ + pb_callback_t chain_id; + /* Sct module parameters. */ + bool has_sct_params; + penumbra_core_component_sct_v1_SctParameters sct_params; + /* Community Pool module parameters. */ + bool has_community_pool_params; + penumbra_core_component_community_pool_v1_CommunityPoolParameters community_pool_params; + /* Governance module parameters. */ + bool has_governance_params; + penumbra_core_component_governance_v1_GovernanceParameters governance_params; + /* IBC module parameters. */ + bool has_ibc_params; + penumbra_core_component_ibc_v1_IbcParameters ibc_params; + /* Stake module parameters. */ + bool has_stake_params; + penumbra_core_component_stake_v1_StakeParameters stake_params; + /* Fee module parameters. */ + bool has_fee_params; + penumbra_core_component_fee_v1_FeeParameters fee_params; + /* Distributions module parameters. */ + bool has_distributions_params; + penumbra_core_component_distributions_v1_DistributionsParameters distributions_params; + /* Funding module parameters. */ + bool has_funding_params; + penumbra_core_component_funding_v1_FundingParameters funding_params; + /* Shielded pool module parameters. */ + bool has_shielded_pool_params; + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters shielded_pool_params; + /* DEX module parameters. */ + bool has_dex_params; + penumbra_core_component_dex_v1_DexParameters dex_params; + /* Auction module parameters. */ + bool has_auction_params; + penumbra_core_component_auction_v1_AuctionParameters auction_params; +} penumbra_core_app_v1_AppParameters; + +/* Requests the global configuration data for the app. */ +typedef struct _penumbra_core_app_v1_AppParametersRequest { + char dummy_field; +} penumbra_core_app_v1_AppParametersRequest; + +typedef struct _penumbra_core_app_v1_AppParametersResponse { + bool has_app_parameters; + penumbra_core_app_v1_AppParameters app_parameters; +} penumbra_core_app_v1_AppParametersResponse; + +typedef struct _penumbra_core_app_v1_GenesisContent { + /* The initial chain identifier. */ + pb_callback_t chain_id; + /* Stake module genesis state. */ + bool has_stake_content; + penumbra_core_component_stake_v1_GenesisContent stake_content; + /* Shielded pool module genesis state. */ + bool has_shielded_pool_content; + penumbra_core_component_shielded_pool_v1_GenesisContent shielded_pool_content; + /* Governance module genesis state. */ + bool has_governance_content; + penumbra_core_component_governance_v1_GenesisContent governance_content; + /* IBC module genesis state. */ + bool has_ibc_content; + penumbra_core_component_ibc_v1_GenesisContent ibc_content; + /* Sct module genesis state. */ + bool has_sct_content; + penumbra_core_component_sct_v1_GenesisContent sct_content; + /* Community Pool module genesis state. */ + bool has_community_pool_content; + penumbra_core_component_community_pool_v1_GenesisContent community_pool_content; + /* Fee module genesis state. */ + bool has_fee_content; + penumbra_core_component_fee_v1_GenesisContent fee_content; + /* Distributions module genesis state. */ + bool has_distributions_content; + penumbra_core_component_distributions_v1_GenesisContent distributions_content; + /* Funding module genesis state. */ + bool has_funding_content; + penumbra_core_component_funding_v1_GenesisContent funding_content; + /* DEX component genesis state. */ + bool has_dex_content; + penumbra_core_component_dex_v1_GenesisContent dex_content; + /* Auction component genesis state. */ + bool has_auction_content; + penumbra_core_component_auction_v1_GenesisContent auction_content; +} penumbra_core_app_v1_GenesisContent; + +typedef struct _penumbra_core_app_v1_GenesisAppState { + pb_size_t which_genesis_app_state; + union { + penumbra_core_app_v1_GenesisContent genesis_content; + pb_callback_t genesis_checkpoint; + } genesis_app_state; +} penumbra_core_app_v1_GenesisAppState; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_app_v1_TransactionsByHeightRequest_init_default \ + { 0 } +#define penumbra_core_app_v1_TransactionsByHeightResponse_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_app_v1_AppParameters_init_default \ + { \ + {{NULL}, NULL}, false, penumbra_core_component_sct_v1_SctParameters_init_default, false, \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_default, false, \ + penumbra_core_component_governance_v1_GovernanceParameters_init_default, false, \ + penumbra_core_component_ibc_v1_IbcParameters_init_default, false, \ + penumbra_core_component_stake_v1_StakeParameters_init_default, false, \ + penumbra_core_component_fee_v1_FeeParameters_init_default, false, \ + penumbra_core_component_distributions_v1_DistributionsParameters_init_default, false, \ + penumbra_core_component_funding_v1_FundingParameters_init_default, false, \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_default, false, \ + penumbra_core_component_dex_v1_DexParameters_init_default, false, \ + penumbra_core_component_auction_v1_AuctionParameters_init_default \ + } +#define penumbra_core_app_v1_AppParametersRequest_init_default \ + { 0 } +#define penumbra_core_app_v1_AppParametersResponse_init_default \ + { false, penumbra_core_app_v1_AppParameters_init_default } +#define penumbra_core_app_v1_GenesisAppState_init_default \ + { \ + 0, { penumbra_core_app_v1_GenesisContent_init_default } \ + } +#define penumbra_core_app_v1_GenesisContent_init_default \ + { \ + {{NULL}, NULL}, false, penumbra_core_component_stake_v1_GenesisContent_init_default, false, \ + penumbra_core_component_shielded_pool_v1_GenesisContent_init_default, false, \ + penumbra_core_component_governance_v1_GenesisContent_init_default, false, \ + penumbra_core_component_ibc_v1_GenesisContent_init_default, false, \ + penumbra_core_component_sct_v1_GenesisContent_init_default, false, \ + penumbra_core_component_community_pool_v1_GenesisContent_init_default, false, \ + penumbra_core_component_fee_v1_GenesisContent_init_default, false, \ + penumbra_core_component_distributions_v1_GenesisContent_init_default, false, \ + penumbra_core_component_funding_v1_GenesisContent_init_default, false, \ + penumbra_core_component_dex_v1_GenesisContent_init_default, false, \ + penumbra_core_component_auction_v1_GenesisContent_init_default \ + } +#define penumbra_core_app_v1_TransactionsByHeightRequest_init_zero \ + { 0 } +#define penumbra_core_app_v1_TransactionsByHeightResponse_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_app_v1_AppParameters_init_zero \ + { \ + {{NULL}, NULL}, false, penumbra_core_component_sct_v1_SctParameters_init_zero, false, \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_zero, false, \ + penumbra_core_component_governance_v1_GovernanceParameters_init_zero, false, \ + penumbra_core_component_ibc_v1_IbcParameters_init_zero, false, \ + penumbra_core_component_stake_v1_StakeParameters_init_zero, false, \ + penumbra_core_component_fee_v1_FeeParameters_init_zero, false, \ + penumbra_core_component_distributions_v1_DistributionsParameters_init_zero, false, \ + penumbra_core_component_funding_v1_FundingParameters_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_zero, false, \ + penumbra_core_component_dex_v1_DexParameters_init_zero, false, \ + penumbra_core_component_auction_v1_AuctionParameters_init_zero \ + } +#define penumbra_core_app_v1_AppParametersRequest_init_zero \ + { 0 } +#define penumbra_core_app_v1_AppParametersResponse_init_zero \ + { false, penumbra_core_app_v1_AppParameters_init_zero } +#define penumbra_core_app_v1_GenesisAppState_init_zero \ + { \ + 0, { penumbra_core_app_v1_GenesisContent_init_zero } \ + } +#define penumbra_core_app_v1_GenesisContent_init_zero \ + { \ + {{NULL}, NULL}, false, penumbra_core_component_stake_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_governance_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_ibc_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_sct_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_community_pool_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_fee_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_distributions_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_funding_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_dex_v1_GenesisContent_init_zero, false, \ + penumbra_core_component_auction_v1_GenesisContent_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_app_v1_TransactionsByHeightRequest_block_height_tag 2 +#define penumbra_core_app_v1_TransactionsByHeightResponse_transactions_tag 1 +#define penumbra_core_app_v1_TransactionsByHeightResponse_block_height_tag 2 +#define penumbra_core_app_v1_AppParameters_chain_id_tag 1 +#define penumbra_core_app_v1_AppParameters_sct_params_tag 2 +#define penumbra_core_app_v1_AppParameters_community_pool_params_tag 3 +#define penumbra_core_app_v1_AppParameters_governance_params_tag 4 +#define penumbra_core_app_v1_AppParameters_ibc_params_tag 5 +#define penumbra_core_app_v1_AppParameters_stake_params_tag 6 +#define penumbra_core_app_v1_AppParameters_fee_params_tag 7 +#define penumbra_core_app_v1_AppParameters_distributions_params_tag 8 +#define penumbra_core_app_v1_AppParameters_funding_params_tag 9 +#define penumbra_core_app_v1_AppParameters_shielded_pool_params_tag 10 +#define penumbra_core_app_v1_AppParameters_dex_params_tag 11 +#define penumbra_core_app_v1_AppParameters_auction_params_tag 12 +#define penumbra_core_app_v1_AppParametersResponse_app_parameters_tag 1 +#define penumbra_core_app_v1_GenesisContent_chain_id_tag 1 +#define penumbra_core_app_v1_GenesisContent_stake_content_tag 2 +#define penumbra_core_app_v1_GenesisContent_shielded_pool_content_tag 3 +#define penumbra_core_app_v1_GenesisContent_governance_content_tag 4 +#define penumbra_core_app_v1_GenesisContent_ibc_content_tag 5 +#define penumbra_core_app_v1_GenesisContent_sct_content_tag 6 +#define penumbra_core_app_v1_GenesisContent_community_pool_content_tag 7 +#define penumbra_core_app_v1_GenesisContent_fee_content_tag 8 +#define penumbra_core_app_v1_GenesisContent_distributions_content_tag 9 +#define penumbra_core_app_v1_GenesisContent_funding_content_tag 10 +#define penumbra_core_app_v1_GenesisContent_dex_content_tag 11 +#define penumbra_core_app_v1_GenesisContent_auction_content_tag 12 +#define penumbra_core_app_v1_GenesisAppState_genesis_content_tag 1 +#define penumbra_core_app_v1_GenesisAppState_genesis_checkpoint_tag 2 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_app_v1_TransactionsByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, block_height, 2) +#define penumbra_core_app_v1_TransactionsByHeightRequest_CALLBACK NULL +#define penumbra_core_app_v1_TransactionsByHeightRequest_DEFAULT NULL + +#define penumbra_core_app_v1_TransactionsByHeightResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, transactions, 1) \ + X(a, STATIC, SINGULAR, UINT64, block_height, 2) +#define penumbra_core_app_v1_TransactionsByHeightResponse_CALLBACK pb_default_field_callback +#define penumbra_core_app_v1_TransactionsByHeightResponse_DEFAULT NULL +#define penumbra_core_app_v1_TransactionsByHeightResponse_transactions_MSGTYPE penumbra_core_transaction_v1_Transaction + +#define penumbra_core_app_v1_AppParameters_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, sct_params, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, community_pool_params, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_params, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, ibc_params, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, stake_params, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee_params, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, distributions_params, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, funding_params, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, shielded_pool_params, 10) \ + X(a, STATIC, OPTIONAL, MESSAGE, dex_params, 11) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_params, 12) +#define penumbra_core_app_v1_AppParameters_CALLBACK pb_default_field_callback +#define penumbra_core_app_v1_AppParameters_DEFAULT NULL +#define penumbra_core_app_v1_AppParameters_sct_params_MSGTYPE penumbra_core_component_sct_v1_SctParameters +#define penumbra_core_app_v1_AppParameters_community_pool_params_MSGTYPE \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters +#define penumbra_core_app_v1_AppParameters_governance_params_MSGTYPE \ + penumbra_core_component_governance_v1_GovernanceParameters +#define penumbra_core_app_v1_AppParameters_ibc_params_MSGTYPE penumbra_core_component_ibc_v1_IbcParameters +#define penumbra_core_app_v1_AppParameters_stake_params_MSGTYPE penumbra_core_component_stake_v1_StakeParameters +#define penumbra_core_app_v1_AppParameters_fee_params_MSGTYPE penumbra_core_component_fee_v1_FeeParameters +#define penumbra_core_app_v1_AppParameters_distributions_params_MSGTYPE \ + penumbra_core_component_distributions_v1_DistributionsParameters +#define penumbra_core_app_v1_AppParameters_funding_params_MSGTYPE penumbra_core_component_funding_v1_FundingParameters +#define penumbra_core_app_v1_AppParameters_shielded_pool_params_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters +#define penumbra_core_app_v1_AppParameters_dex_params_MSGTYPE penumbra_core_component_dex_v1_DexParameters +#define penumbra_core_app_v1_AppParameters_auction_params_MSGTYPE penumbra_core_component_auction_v1_AuctionParameters + +#define penumbra_core_app_v1_AppParametersRequest_FIELDLIST(X, a) + +#define penumbra_core_app_v1_AppParametersRequest_CALLBACK NULL +#define penumbra_core_app_v1_AppParametersRequest_DEFAULT NULL + +#define penumbra_core_app_v1_AppParametersResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, app_parameters, 1) +#define penumbra_core_app_v1_AppParametersResponse_CALLBACK NULL +#define penumbra_core_app_v1_AppParametersResponse_DEFAULT NULL +#define penumbra_core_app_v1_AppParametersResponse_app_parameters_MSGTYPE penumbra_core_app_v1_AppParameters + +#define penumbra_core_app_v1_GenesisAppState_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (genesis_app_state, genesis_content, genesis_app_state.genesis_content), 1) \ + X(a, CALLBACK, ONEOF, BYTES, (genesis_app_state, genesis_checkpoint, genesis_app_state.genesis_checkpoint), 2) +#define penumbra_core_app_v1_GenesisAppState_CALLBACK pb_default_field_callback +#define penumbra_core_app_v1_GenesisAppState_DEFAULT NULL +#define penumbra_core_app_v1_GenesisAppState_genesis_app_state_genesis_content_MSGTYPE penumbra_core_app_v1_GenesisContent + +#define penumbra_core_app_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, stake_content, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, shielded_pool_content, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_content, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, ibc_content, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, sct_content, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, community_pool_content, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee_content, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, distributions_content, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, funding_content, 10) \ + X(a, STATIC, OPTIONAL, MESSAGE, dex_content, 11) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_content, 12) +#define penumbra_core_app_v1_GenesisContent_CALLBACK pb_default_field_callback +#define penumbra_core_app_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_app_v1_GenesisContent_stake_content_MSGTYPE penumbra_core_component_stake_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_shielded_pool_content_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_governance_content_MSGTYPE penumbra_core_component_governance_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_ibc_content_MSGTYPE penumbra_core_component_ibc_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_sct_content_MSGTYPE penumbra_core_component_sct_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_community_pool_content_MSGTYPE \ + penumbra_core_component_community_pool_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_fee_content_MSGTYPE penumbra_core_component_fee_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_distributions_content_MSGTYPE \ + penumbra_core_component_distributions_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_funding_content_MSGTYPE penumbra_core_component_funding_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_dex_content_MSGTYPE penumbra_core_component_dex_v1_GenesisContent +#define penumbra_core_app_v1_GenesisContent_auction_content_MSGTYPE penumbra_core_component_auction_v1_GenesisContent + +extern const pb_msgdesc_t penumbra_core_app_v1_TransactionsByHeightRequest_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_TransactionsByHeightResponse_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_AppParameters_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_AppParametersRequest_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_AppParametersResponse_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_GenesisAppState_msg; +extern const pb_msgdesc_t penumbra_core_app_v1_GenesisContent_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_app_v1_TransactionsByHeightRequest_fields &penumbra_core_app_v1_TransactionsByHeightRequest_msg +#define penumbra_core_app_v1_TransactionsByHeightResponse_fields &penumbra_core_app_v1_TransactionsByHeightResponse_msg +#define penumbra_core_app_v1_AppParameters_fields &penumbra_core_app_v1_AppParameters_msg +#define penumbra_core_app_v1_AppParametersRequest_fields &penumbra_core_app_v1_AppParametersRequest_msg +#define penumbra_core_app_v1_AppParametersResponse_fields &penumbra_core_app_v1_AppParametersResponse_msg +#define penumbra_core_app_v1_GenesisAppState_fields &penumbra_core_app_v1_GenesisAppState_msg +#define penumbra_core_app_v1_GenesisContent_fields &penumbra_core_app_v1_GenesisContent_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_app_v1_TransactionsByHeightResponse_size depends on runtime parameters */ +/* penumbra_core_app_v1_AppParameters_size depends on runtime parameters */ +/* penumbra_core_app_v1_AppParametersResponse_size depends on runtime parameters */ +/* penumbra_core_app_v1_GenesisAppState_size depends on runtime parameters */ +/* penumbra_core_app_v1_GenesisContent_size depends on runtime parameters */ +#define PENUMBRA_CORE_APP_V1_PENUMBRA_CORE_APP_V1_APP_PB_H_MAX_SIZE penumbra_core_app_v1_TransactionsByHeightRequest_size +#define penumbra_core_app_v1_AppParametersRequest_size 0 +#define penumbra_core_app_v1_TransactionsByHeightRequest_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/asset/v1/asset.pb.c b/app/src/protobuf/penumbra/core/asset/v1/asset.pb.c new file mode 100644 index 0000000..a71658e --- /dev/null +++ b/app/src/protobuf/penumbra/core/asset/v1/asset.pb.c @@ -0,0 +1,41 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/asset/v1/asset.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_asset_v1_BalanceCommitment, penumbra_core_asset_v1_BalanceCommitment, AUTO) + +PB_BIND(penumbra_core_asset_v1_AssetId, penumbra_core_asset_v1_AssetId, AUTO) + +PB_BIND(penumbra_core_asset_v1_Denom, penumbra_core_asset_v1_Denom, AUTO) + +PB_BIND(penumbra_core_asset_v1_Metadata, penumbra_core_asset_v1_Metadata, 4) + +PB_BIND(penumbra_core_asset_v1_DenomUnit, penumbra_core_asset_v1_DenomUnit, AUTO) + +PB_BIND(penumbra_core_asset_v1_Value, penumbra_core_asset_v1_Value, AUTO) + +PB_BIND(penumbra_core_asset_v1_ValueView, penumbra_core_asset_v1_ValueView, 2) + +PB_BIND(penumbra_core_asset_v1_ValueView_KnownAssetId, penumbra_core_asset_v1_ValueView_KnownAssetId, 2) + +PB_BIND(penumbra_core_asset_v1_ValueView_UnknownAssetId, penumbra_core_asset_v1_ValueView_UnknownAssetId, AUTO) + +PB_BIND(penumbra_core_asset_v1_AssetImage, penumbra_core_asset_v1_AssetImage, AUTO) + +PB_BIND(penumbra_core_asset_v1_AssetImage_Theme, penumbra_core_asset_v1_AssetImage_Theme, AUTO) + +PB_BIND(penumbra_core_asset_v1_EstimatedPrice, penumbra_core_asset_v1_EstimatedPrice, AUTO) + +PB_BIND(penumbra_core_asset_v1_EquivalentValue, penumbra_core_asset_v1_EquivalentValue, AUTO) + +#ifndef PB_CONVERT_DOUBLE_FLOAT +/* On some platforms (such as AVR), double is really float. + * To be able to encode/decode double on these platforms, you need. + * to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. + */ +PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) +#endif diff --git a/app/src/protobuf/penumbra/core/asset/v1/asset.pb.h b/app/src/protobuf/penumbra/core/asset/v1/asset.pb.h new file mode 100644 index 0000000..546e176 --- /dev/null +++ b/app/src/protobuf/penumbra/core/asset/v1/asset.pb.h @@ -0,0 +1,470 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_ASSET_V1_PENUMBRA_CORE_ASSET_V1_ASSET_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_ASSET_V1_PENUMBRA_CORE_ASSET_V1_ASSET_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_core_asset_v1_BalanceCommitment { + pb_callback_t inner; +} penumbra_core_asset_v1_BalanceCommitment; + +/* A Penumbra asset ID. */ +typedef struct _penumbra_core_asset_v1_AssetId { + /* The bytes of the asset ID. */ + pb_callback_t inner; + /* Alternatively, a Bech32m-encoded string representation of the `inner` + bytes. + + NOTE: implementations are not required to support parsing this field. + Implementations should prefer to encode the `inner` bytes in all messages they + produce. Implementations must not accept messages with both `inner` and + `alt_bech32m` set. This field exists for convenience of RPC users. */ + pb_callback_t alt_bech32m; + /* Alternatively, a base denomination string which should be hashed to obtain the asset ID. + + NOTE: implementations are not required to support parsing this field. + Implementations should prefer to encode the bytes in all messages they + produce. Implementations must not accept messages with both `inner` and + `alt_base_denom` set. This field exists for convenience of RPC users. */ + pb_callback_t alt_base_denom; +} penumbra_core_asset_v1_AssetId; + +typedef struct _penumbra_core_asset_v1_Denom { + pb_callback_t denom; +} penumbra_core_asset_v1_Denom; + +/* Describes metadata about a given asset. */ +typedef struct _penumbra_core_asset_v1_Metadata { + pb_callback_t description; + /* denom_units represents the list of DenomUnit's for a given coin */ + pb_callback_t denom_units; + /* base represents the base denom (should be the DenomUnit with exponent = 0). */ + pb_callback_t base; + /* display indicates the suggested denom that should be + displayed in clients. */ + pb_callback_t display; + /* name defines the name of the token (eg: Cosmos Atom) */ + pb_callback_t name; + /* symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + be the same as the display. */ + pb_callback_t symbol; + /* the asset ID on Penumbra for this denomination. */ + bool has_penumbra_asset_id; + penumbra_core_asset_v1_AssetId penumbra_asset_id; + pb_callback_t images; + /* An optional "score" used to prioritize token lists. + + This is solely for use in client-side registries. */ + uint64_t priority_score; +} penumbra_core_asset_v1_Metadata; + +/* DenomUnit represents a struct that describes a given denomination unit of the basic token. */ +typedef struct _penumbra_core_asset_v1_DenomUnit { + /* denom represents the string name of the given denom unit (e.g uatom). */ + pb_callback_t denom; + /* exponent represents power of 10 exponent that one must + raise the base_denom to in order to equal the given DenomUnit's denom + 1 denom = 10^exponent base_denom + (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + exponent = 6, thus: 1 atom = 10^6 uatom). */ + uint32_t exponent; + /* aliases is a list of string aliases for the given denom */ + pb_callback_t aliases; +} penumbra_core_asset_v1_DenomUnit; + +typedef struct _penumbra_core_asset_v1_Value { + bool has_amount; + penumbra_core_num_v1_Amount amount; + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_core_asset_v1_Value; + +/* A value whose asset ID is known and has metadata. */ +typedef struct _penumbra_core_asset_v1_ValueView_KnownAssetId { + /* The amount of the value. */ + bool has_amount; + penumbra_core_num_v1_Amount amount; + /* The asset metadata describing the asset of the value. */ + bool has_metadata; + penumbra_core_asset_v1_Metadata metadata; + /* Optionally, a list of equivalent values in other numeraires. */ + pb_callback_t equivalent_values; + /* Optionally, extended, dynamically-typed metadata about the object this + token represents. + + This is left flexible to allow future extensions. For instance, a view + server could augment an LPNFT with a message describing the current state + of the position and its reserves, allowing a frontend to render LPNFTs + with their position information (trading pair, etc). However, because + this is in an extension, a frontend that does not have special handling + logic would fall back on the ordinary asset metadata. */ + bool has_extended_metadata; + google_protobuf_Any extended_metadata; +} penumbra_core_asset_v1_ValueView_KnownAssetId; + +/* A value whose asset ID is unknown, with no metadata. */ +typedef struct _penumbra_core_asset_v1_ValueView_UnknownAssetId { + bool has_amount; + penumbra_core_num_v1_Amount amount; + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_core_asset_v1_ValueView_UnknownAssetId; + +/* Represents a value of a known or unknown denomination. */ +typedef struct _penumbra_core_asset_v1_ValueView { + pb_size_t which_value_view; + union { + penumbra_core_asset_v1_ValueView_KnownAssetId known_asset_id; + penumbra_core_asset_v1_ValueView_UnknownAssetId unknown_asset_id; + } value_view; +} penumbra_core_asset_v1_ValueView; + +typedef struct _penumbra_core_asset_v1_AssetImage_Theme { + /* Should be in hex format, `^#[0-9a-fA-F]{6}$`. */ + pb_callback_t primary_color_hex; + bool circle; + bool dark_mode; +} penumbra_core_asset_v1_AssetImage_Theme; + +/* An image related to an asset. */ +typedef struct _penumbra_core_asset_v1_AssetImage { + /* The URI of the image in PNG format. */ + pb_callback_t png; + /* The URI of the image in SVG format. */ + pb_callback_t svg; + bool has_theme; + penumbra_core_asset_v1_AssetImage_Theme theme; +} penumbra_core_asset_v1_AssetImage; + +/* The estimated price of one asset in terms of a numeraire. + + This is used for generating "equivalent values" in ValueViews. */ +typedef struct _penumbra_core_asset_v1_EstimatedPrice { + bool has_priced_asset; + penumbra_core_asset_v1_AssetId priced_asset; + bool has_numeraire; + penumbra_core_asset_v1_AssetId numeraire; + /* Multiply units of the priced asset by this value to get the value in the numeraire. + + This is a floating-point number since the price is approximate. */ + double numeraire_per_unit; + /* If set, gives some idea of when the price was estimated. */ + uint64_t as_of_height; +} penumbra_core_asset_v1_EstimatedPrice; + +/* An "equivalent" value to a given value, in terms of a numeraire. + + For instance, this can provide a USD-equivalent value relative to a + stablecoin, or an amount of the staking token, etc. A view server can + optionally include this information to assist a frontend in displaying + information about the value in a user-friendly way. */ +typedef struct _penumbra_core_asset_v1_EquivalentValue { + /* The equivalent amount of the parent Value in terms of the numeraire. */ + bool has_equivalent_amount; + penumbra_core_num_v1_Amount equivalent_amount; + /* Metadata describing the numeraire. */ + bool has_numeraire; + penumbra_core_asset_v1_Metadata numeraire; + /* If set, gives some idea of when the price/equivalence was estimated. */ + uint64_t as_of_height; +} penumbra_core_asset_v1_EquivalentValue; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_asset_v1_BalanceCommitment_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_AssetId_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Denom_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Metadata_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + penumbra_core_asset_v1_AssetId_init_default, {{NULL}, NULL}, 0 \ + } +#define penumbra_core_asset_v1_DenomUnit_init_default \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Value_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_asset_v1_ValueView_init_default \ + { \ + 0, { penumbra_core_asset_v1_ValueView_KnownAssetId_init_default } \ + } +#define penumbra_core_asset_v1_ValueView_KnownAssetId_init_default \ + { \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_Metadata_init_default, \ + {{NULL}, NULL}, false, google_protobuf_Any_init_default \ + } +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_asset_v1_AssetImage_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, penumbra_core_asset_v1_AssetImage_Theme_init_default } +#define penumbra_core_asset_v1_AssetImage_Theme_init_default \ + { {{NULL}, NULL}, 0, 0 } +#define penumbra_core_asset_v1_EstimatedPrice_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_asset_v1_AssetId_init_default, 0, 0 } +#define penumbra_core_asset_v1_EquivalentValue_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_Metadata_init_default, 0 } +#define penumbra_core_asset_v1_BalanceCommitment_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_AssetId_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Denom_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Metadata_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + penumbra_core_asset_v1_AssetId_init_zero, {{NULL}, NULL}, 0 \ + } +#define penumbra_core_asset_v1_DenomUnit_init_zero \ + { \ + {{NULL}, NULL}, 0, { {NULL}, NULL } \ + } +#define penumbra_core_asset_v1_Value_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_asset_v1_ValueView_init_zero \ + { \ + 0, { penumbra_core_asset_v1_ValueView_KnownAssetId_init_zero } \ + } +#define penumbra_core_asset_v1_ValueView_KnownAssetId_init_zero \ + { \ + false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_Metadata_init_zero, {{NULL}, NULL}, \ + false, google_protobuf_Any_init_zero \ + } +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_asset_v1_AssetImage_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, penumbra_core_asset_v1_AssetImage_Theme_init_zero } +#define penumbra_core_asset_v1_AssetImage_Theme_init_zero \ + { {{NULL}, NULL}, 0, 0 } +#define penumbra_core_asset_v1_EstimatedPrice_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero, 0, 0 } +#define penumbra_core_asset_v1_EquivalentValue_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_Metadata_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_asset_v1_BalanceCommitment_inner_tag 1 +#define penumbra_core_asset_v1_AssetId_inner_tag 1 +#define penumbra_core_asset_v1_AssetId_alt_bech32m_tag 2 +#define penumbra_core_asset_v1_AssetId_alt_base_denom_tag 3 +#define penumbra_core_asset_v1_Denom_denom_tag 1 +#define penumbra_core_asset_v1_Metadata_description_tag 1 +#define penumbra_core_asset_v1_Metadata_denom_units_tag 2 +#define penumbra_core_asset_v1_Metadata_base_tag 3 +#define penumbra_core_asset_v1_Metadata_display_tag 4 +#define penumbra_core_asset_v1_Metadata_name_tag 5 +#define penumbra_core_asset_v1_Metadata_symbol_tag 6 +#define penumbra_core_asset_v1_Metadata_penumbra_asset_id_tag 1984 +#define penumbra_core_asset_v1_Metadata_images_tag 1985 +#define penumbra_core_asset_v1_Metadata_priority_score_tag 1986 +#define penumbra_core_asset_v1_DenomUnit_denom_tag 1 +#define penumbra_core_asset_v1_DenomUnit_exponent_tag 2 +#define penumbra_core_asset_v1_DenomUnit_aliases_tag 3 +#define penumbra_core_asset_v1_Value_amount_tag 1 +#define penumbra_core_asset_v1_Value_asset_id_tag 2 +#define penumbra_core_asset_v1_ValueView_KnownAssetId_amount_tag 1 +#define penumbra_core_asset_v1_ValueView_KnownAssetId_metadata_tag 2 +#define penumbra_core_asset_v1_ValueView_KnownAssetId_equivalent_values_tag 3 +#define penumbra_core_asset_v1_ValueView_KnownAssetId_extended_metadata_tag 4 +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_amount_tag 1 +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_asset_id_tag 2 +#define penumbra_core_asset_v1_ValueView_known_asset_id_tag 1 +#define penumbra_core_asset_v1_ValueView_unknown_asset_id_tag 2 +#define penumbra_core_asset_v1_AssetImage_Theme_primary_color_hex_tag 1 +#define penumbra_core_asset_v1_AssetImage_Theme_circle_tag 2 +#define penumbra_core_asset_v1_AssetImage_Theme_dark_mode_tag 3 +#define penumbra_core_asset_v1_AssetImage_png_tag 1 +#define penumbra_core_asset_v1_AssetImage_svg_tag 2 +#define penumbra_core_asset_v1_AssetImage_theme_tag 3 +#define penumbra_core_asset_v1_EstimatedPrice_priced_asset_tag 1 +#define penumbra_core_asset_v1_EstimatedPrice_numeraire_tag 2 +#define penumbra_core_asset_v1_EstimatedPrice_numeraire_per_unit_tag 3 +#define penumbra_core_asset_v1_EstimatedPrice_as_of_height_tag 4 +#define penumbra_core_asset_v1_EquivalentValue_equivalent_amount_tag 1 +#define penumbra_core_asset_v1_EquivalentValue_numeraire_tag 2 +#define penumbra_core_asset_v1_EquivalentValue_as_of_height_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_asset_v1_BalanceCommitment_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_asset_v1_BalanceCommitment_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_BalanceCommitment_DEFAULT NULL + +#define penumbra_core_asset_v1_AssetId_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, inner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, alt_bech32m, 2) \ + X(a, CALLBACK, SINGULAR, STRING, alt_base_denom, 3) +#define penumbra_core_asset_v1_AssetId_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_AssetId_DEFAULT NULL + +#define penumbra_core_asset_v1_Denom_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, denom, 1) +#define penumbra_core_asset_v1_Denom_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_Denom_DEFAULT NULL + +#define penumbra_core_asset_v1_Metadata_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, description, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, denom_units, 2) \ + X(a, CALLBACK, SINGULAR, STRING, base, 3) \ + X(a, CALLBACK, SINGULAR, STRING, display, 4) \ + X(a, CALLBACK, SINGULAR, STRING, name, 5) \ + X(a, CALLBACK, SINGULAR, STRING, symbol, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, penumbra_asset_id, 1984) \ + X(a, CALLBACK, REPEATED, MESSAGE, images, 1985) \ + X(a, STATIC, SINGULAR, UINT64, priority_score, 1986) +#define penumbra_core_asset_v1_Metadata_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_Metadata_DEFAULT NULL +#define penumbra_core_asset_v1_Metadata_denom_units_MSGTYPE penumbra_core_asset_v1_DenomUnit +#define penumbra_core_asset_v1_Metadata_penumbra_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_asset_v1_Metadata_images_MSGTYPE penumbra_core_asset_v1_AssetImage + +#define penumbra_core_asset_v1_DenomUnit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, STATIC, SINGULAR, UINT32, exponent, 2) \ + X(a, CALLBACK, REPEATED, STRING, aliases, 3) +#define penumbra_core_asset_v1_DenomUnit_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_DenomUnit_DEFAULT NULL + +#define penumbra_core_asset_v1_Value_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 2) +#define penumbra_core_asset_v1_Value_CALLBACK NULL +#define penumbra_core_asset_v1_Value_DEFAULT NULL +#define penumbra_core_asset_v1_Value_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_asset_v1_Value_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_asset_v1_ValueView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (value_view, known_asset_id, value_view.known_asset_id), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (value_view, unknown_asset_id, value_view.unknown_asset_id), 2) +#define penumbra_core_asset_v1_ValueView_CALLBACK NULL +#define penumbra_core_asset_v1_ValueView_DEFAULT NULL +#define penumbra_core_asset_v1_ValueView_value_view_known_asset_id_MSGTYPE penumbra_core_asset_v1_ValueView_KnownAssetId +#define penumbra_core_asset_v1_ValueView_value_view_unknown_asset_id_MSGTYPE penumbra_core_asset_v1_ValueView_UnknownAssetId + +#define penumbra_core_asset_v1_ValueView_KnownAssetId_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, metadata, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, equivalent_values, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, extended_metadata, 4) +#define penumbra_core_asset_v1_ValueView_KnownAssetId_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_ValueView_KnownAssetId_DEFAULT NULL +#define penumbra_core_asset_v1_ValueView_KnownAssetId_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_asset_v1_ValueView_KnownAssetId_metadata_MSGTYPE penumbra_core_asset_v1_Metadata +#define penumbra_core_asset_v1_ValueView_KnownAssetId_equivalent_values_MSGTYPE penumbra_core_asset_v1_EquivalentValue +#define penumbra_core_asset_v1_ValueView_KnownAssetId_extended_metadata_MSGTYPE google_protobuf_Any + +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 2) +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_CALLBACK NULL +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_DEFAULT NULL +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_asset_v1_AssetImage_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, png, 1) \ + X(a, CALLBACK, SINGULAR, STRING, svg, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, theme, 3) +#define penumbra_core_asset_v1_AssetImage_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_AssetImage_DEFAULT NULL +#define penumbra_core_asset_v1_AssetImage_theme_MSGTYPE penumbra_core_asset_v1_AssetImage_Theme + +#define penumbra_core_asset_v1_AssetImage_Theme_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, primary_color_hex, 1) \ + X(a, STATIC, SINGULAR, BOOL, circle, 2) \ + X(a, STATIC, SINGULAR, BOOL, dark_mode, 3) +#define penumbra_core_asset_v1_AssetImage_Theme_CALLBACK pb_default_field_callback +#define penumbra_core_asset_v1_AssetImage_Theme_DEFAULT NULL + +#define penumbra_core_asset_v1_EstimatedPrice_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, priced_asset, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, numeraire, 2) \ + X(a, STATIC, SINGULAR, DOUBLE, numeraire_per_unit, 3) \ + X(a, STATIC, SINGULAR, UINT64, as_of_height, 4) +#define penumbra_core_asset_v1_EstimatedPrice_CALLBACK NULL +#define penumbra_core_asset_v1_EstimatedPrice_DEFAULT NULL +#define penumbra_core_asset_v1_EstimatedPrice_priced_asset_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_asset_v1_EstimatedPrice_numeraire_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_asset_v1_EquivalentValue_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, equivalent_amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, numeraire, 2) \ + X(a, STATIC, SINGULAR, UINT64, as_of_height, 3) +#define penumbra_core_asset_v1_EquivalentValue_CALLBACK NULL +#define penumbra_core_asset_v1_EquivalentValue_DEFAULT NULL +#define penumbra_core_asset_v1_EquivalentValue_equivalent_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_asset_v1_EquivalentValue_numeraire_MSGTYPE penumbra_core_asset_v1_Metadata + +extern const pb_msgdesc_t penumbra_core_asset_v1_BalanceCommitment_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_AssetId_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_Denom_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_Metadata_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_DenomUnit_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_Value_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_ValueView_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_ValueView_KnownAssetId_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_ValueView_UnknownAssetId_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_AssetImage_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_AssetImage_Theme_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_EstimatedPrice_msg; +extern const pb_msgdesc_t penumbra_core_asset_v1_EquivalentValue_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_asset_v1_BalanceCommitment_fields &penumbra_core_asset_v1_BalanceCommitment_msg +#define penumbra_core_asset_v1_AssetId_fields &penumbra_core_asset_v1_AssetId_msg +#define penumbra_core_asset_v1_Denom_fields &penumbra_core_asset_v1_Denom_msg +#define penumbra_core_asset_v1_Metadata_fields &penumbra_core_asset_v1_Metadata_msg +#define penumbra_core_asset_v1_DenomUnit_fields &penumbra_core_asset_v1_DenomUnit_msg +#define penumbra_core_asset_v1_Value_fields &penumbra_core_asset_v1_Value_msg +#define penumbra_core_asset_v1_ValueView_fields &penumbra_core_asset_v1_ValueView_msg +#define penumbra_core_asset_v1_ValueView_KnownAssetId_fields &penumbra_core_asset_v1_ValueView_KnownAssetId_msg +#define penumbra_core_asset_v1_ValueView_UnknownAssetId_fields &penumbra_core_asset_v1_ValueView_UnknownAssetId_msg +#define penumbra_core_asset_v1_AssetImage_fields &penumbra_core_asset_v1_AssetImage_msg +#define penumbra_core_asset_v1_AssetImage_Theme_fields &penumbra_core_asset_v1_AssetImage_Theme_msg +#define penumbra_core_asset_v1_EstimatedPrice_fields &penumbra_core_asset_v1_EstimatedPrice_msg +#define penumbra_core_asset_v1_EquivalentValue_fields &penumbra_core_asset_v1_EquivalentValue_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_asset_v1_BalanceCommitment_size depends on runtime parameters */ +/* penumbra_core_asset_v1_AssetId_size depends on runtime parameters */ +/* penumbra_core_asset_v1_Denom_size depends on runtime parameters */ +/* penumbra_core_asset_v1_Metadata_size depends on runtime parameters */ +/* penumbra_core_asset_v1_DenomUnit_size depends on runtime parameters */ +/* penumbra_core_asset_v1_Value_size depends on runtime parameters */ +/* penumbra_core_asset_v1_ValueView_size depends on runtime parameters */ +/* penumbra_core_asset_v1_ValueView_KnownAssetId_size depends on runtime parameters */ +/* penumbra_core_asset_v1_ValueView_UnknownAssetId_size depends on runtime parameters */ +/* penumbra_core_asset_v1_AssetImage_size depends on runtime parameters */ +/* penumbra_core_asset_v1_AssetImage_Theme_size depends on runtime parameters */ +/* penumbra_core_asset_v1_EstimatedPrice_size depends on runtime parameters */ +/* penumbra_core_asset_v1_EquivalentValue_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.c b/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.c new file mode 100644 index 0000000..0c187bf --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.c @@ -0,0 +1,70 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/auction/v1/auction.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_auction_v1_AuctionParameters, penumbra_core_component_auction_v1_AuctionParameters, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_GenesisContent, penumbra_core_component_auction_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionStateByIdRequest, + penumbra_core_component_auction_v1_AuctionStateByIdRequest, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionStateByIdResponse, + penumbra_core_component_auction_v1_AuctionStateByIdResponse, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionStateByIdsRequest, + penumbra_core_component_auction_v1_AuctionStateByIdsRequest, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionStateByIdsResponse, + penumbra_core_component_auction_v1_AuctionStateByIdsResponse, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionId, penumbra_core_component_auction_v1_AuctionId, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_AuctionNft, penumbra_core_component_auction_v1_AuctionNft, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_DutchAuctionDescription, + penumbra_core_component_auction_v1_DutchAuctionDescription, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_DutchAuctionState, penumbra_core_component_auction_v1_DutchAuctionState, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_DutchAuction, penumbra_core_component_auction_v1_DutchAuction, 2) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionSchedule, + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionEnd, penumbra_core_component_auction_v1_ActionDutchAuctionEnd, + AUTO) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw, + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan, + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView, + penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView, 2) + +PB_BIND(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView, + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_EventDutchAuctionScheduled, + penumbra_core_component_auction_v1_EventDutchAuctionScheduled, 2) + +PB_BIND(penumbra_core_component_auction_v1_EventDutchAuctionUpdated, + penumbra_core_component_auction_v1_EventDutchAuctionUpdated, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_EventDutchAuctionEnded, penumbra_core_component_auction_v1_EventDutchAuctionEnded, + AUTO) + +PB_BIND(penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn, + penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit, + penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit, AUTO) + +PB_BIND(penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit, + penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.h b/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.h new file mode 100644 index 0000000..7d027ef --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/auction/v1/auction.pb.h @@ -0,0 +1,864 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_AUCTION_V1_PENUMBRA_CORE_COMPONENT_AUCTION_V1_AUCTION_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_AUCTION_V1_PENUMBRA_CORE_COMPONENT_AUCTION_V1_AUCTION_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* The reason the auction ended. */ +typedef enum _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason { + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_UNSPECIFIED = 0, + /* The auction ended due to reaching its terminal height. */ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_EXPIRED = 1, + /* The auction ran out of reserves. */ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_FILLED = 2, + /* The auction ended was terminated by the initiator. */ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_CLOSED_BY_OWNER = 3 +} penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason; + +/* Struct definitions */ +/* The configuration parameters for the auction component. */ +typedef struct _penumbra_core_component_auction_v1_AuctionParameters { + char dummy_field; +} penumbra_core_component_auction_v1_AuctionParameters; + +/* Genesis data for the auction component. */ +typedef struct _penumbra_core_component_auction_v1_GenesisContent { + /* The configuration parameters for the auction component at genesis. */ + bool has_params; + penumbra_core_component_auction_v1_AuctionParameters params; +} penumbra_core_component_auction_v1_GenesisContent; + +typedef struct _penumbra_core_component_auction_v1_AuctionStateByIdResponse { + /* If present, the state of the auction. If not present, no such auction is known. */ + bool has_auction; + google_protobuf_Any auction; + /* The state of any DEX positions relevant to the returned auction. + + Could be empty, depending on the auction state. */ + pb_callback_t positions; +} penumbra_core_component_auction_v1_AuctionStateByIdResponse; + +typedef struct _penumbra_core_component_auction_v1_AuctionStateByIdsRequest { + /* The auction IDs to request. Only known IDs will be returned in the response. */ + pb_callback_t id; +} penumbra_core_component_auction_v1_AuctionStateByIdsRequest; + +/* A unique identifier for an auction, obtained from hashing a domain separator + along with the immutable part of an auction description. */ +typedef struct _penumbra_core_component_auction_v1_AuctionId { + pb_callback_t inner; +} penumbra_core_component_auction_v1_AuctionId; + +typedef struct _penumbra_core_component_auction_v1_AuctionStateByIdRequest { + bool has_id; + penumbra_core_component_auction_v1_AuctionId id; +} penumbra_core_component_auction_v1_AuctionStateByIdRequest; + +/* A bearer NFT tracking ownership of an auction and its proceeds. */ +typedef struct _penumbra_core_component_auction_v1_AuctionNft { + bool has_id; + penumbra_core_component_auction_v1_AuctionId id; + uint64_t seq; +} penumbra_core_component_auction_v1_AuctionNft; + +/* Describes a Dutch auction using programmatic liquidity on the DEX. */ +typedef struct _penumbra_core_component_auction_v1_DutchAuctionDescription { + /* The value the seller wishes to auction. */ + bool has_input; + penumbra_core_asset_v1_Value input; + /* The asset ID of the target asset the seller wishes to acquire. */ + bool has_output_id; + penumbra_core_asset_v1_AssetId output_id; + /* The maximum output the seller can receive. + + This implicitly defines the starting price for the auction. */ + bool has_max_output; + penumbra_core_num_v1_Amount max_output; + /* The minimum output the seller is willing to receive. + + This implicitly defines the ending price for the auction. */ + bool has_min_output; + penumbra_core_num_v1_Amount min_output; + /* The block height at which the auction begins. + + This allows the seller to schedule an auction at a future time. */ + uint64_t start_height; + /* The block height at which the auction ends. + + Together with `start_height`, `max_output`, and `min_output`, + this implicitly defines the speed of the auction. */ + uint64_t end_height; + /* The number of discrete price steps to use for the auction. + + `end_height - start_height` must be a multiple of `step_count`. */ + uint64_t step_count; + /* A random nonce used to allow identical auctions to have + distinct auction IDs. */ + pb_callback_t nonce; +} penumbra_core_component_auction_v1_DutchAuctionDescription; + +typedef struct _penumbra_core_component_auction_v1_DutchAuctionState { + /* The sequence number of the auction state. + + Dutch auctions move from: + 0 (opened) => 1 (closed) => n (withdrawn) */ + uint64_t seq; + /* If present, the current position controlled by this auction. */ + bool has_current_position; + penumbra_core_component_dex_v1_PositionId current_position; + /* If present, the next trigger height to step down the price. */ + uint64_t next_trigger; + /* The amount of the input asset directly owned by the auction. + + The auction may also own the input asset indirectly, + via the reserves of `current_position` if it exists. */ + bool has_input_reserves; + penumbra_core_num_v1_Amount input_reserves; + /* The amount of the output asset directly owned by the auction. + + The auction may also own the output asset indirectly, + via the reserves of `current_position` if it exists. */ + bool has_output_reserves; + penumbra_core_num_v1_Amount output_reserves; +} penumbra_core_component_auction_v1_DutchAuctionState; + +typedef struct _penumbra_core_component_auction_v1_AuctionStateByIdsResponse { + /* The auction ID of the returned auction. */ + bool has_id; + penumbra_core_component_auction_v1_AuctionId id; + /* The state of the returned auction. */ + bool has_auction; + penumbra_core_component_auction_v1_DutchAuctionState auction; + /* The state of any DEX positions relevant to the returned auction. + + Could be empty, depending on the auction state. */ + pb_callback_t positions; +} penumbra_core_component_auction_v1_AuctionStateByIdsResponse; + +typedef struct _penumbra_core_component_auction_v1_DutchAuction { + /* The immutable data describing the auction and its auction ID. */ + bool has_description; + penumbra_core_component_auction_v1_DutchAuctionDescription description; + /* The mutable data describing the auction's execution. */ + bool has_state; + penumbra_core_component_auction_v1_DutchAuctionState state; +} penumbra_core_component_auction_v1_DutchAuction; + +/* Initiates a Dutch auction using protocol-controlled liquidity. */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionSchedule { + bool has_description; + penumbra_core_component_auction_v1_DutchAuctionDescription description; +} penumbra_core_component_auction_v1_ActionDutchAuctionSchedule; + +/* Terminate the auction associated with the specified `auction_id` */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionEnd { + /* The auction to end. */ + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; +} penumbra_core_component_auction_v1_ActionDutchAuctionEnd; + +/* Withdraw funds from the ended auction associated with the specified `auction_id` */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw { + /* The auction to withdraw funds from. */ + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + /* The sequence number of the withdrawal. */ + uint64_t seq; + /* A transparent (zero blinding factor) commitment to the + auction's final reserves. + + The chain will check this commitment by recomputing it + with the on-chain state. */ + bool has_reserves_commitment; + penumbra_core_asset_v1_BalanceCommitment reserves_commitment; +} penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw; + +/* A plan to a `ActionDutchAuctionWithdraw` which contains both private and public data. */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan { + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + uint64_t seq; + bool has_reserves_input; + penumbra_core_asset_v1_Value reserves_input; + bool has_reserves_output; + penumbra_core_asset_v1_Value reserves_output; +} penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan; + +/* An `ActionDutchAuctionSchedule` augmented with additional metadata. */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView { + bool has_action; + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule action; + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + bool has_input_metadata; + penumbra_core_asset_v1_Metadata input_metadata; + bool has_output_metadata; + penumbra_core_asset_v1_Metadata output_metadata; +} penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView; + +/* An `ActionDutchAuctionWithdraw` augmented with additional metadata. */ +typedef struct _penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView { + bool has_action; + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw action; + /* A sequence of values that sum together to the provided + reserves commitment. */ + pb_callback_t reserves; +} penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView; + +typedef struct _penumbra_core_component_auction_v1_EventDutchAuctionScheduled { + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + bool has_description; + penumbra_core_component_auction_v1_DutchAuctionDescription description; +} penumbra_core_component_auction_v1_EventDutchAuctionScheduled; + +typedef struct _penumbra_core_component_auction_v1_EventDutchAuctionUpdated { + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + bool has_state; + penumbra_core_component_auction_v1_DutchAuctionState state; +} penumbra_core_component_auction_v1_EventDutchAuctionUpdated; + +typedef struct _penumbra_core_component_auction_v1_EventDutchAuctionEnded { + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + bool has_state; + penumbra_core_component_auction_v1_DutchAuctionState state; + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason reason; +} penumbra_core_component_auction_v1_EventDutchAuctionEnded; + +typedef struct _penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn { + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + bool has_state; + penumbra_core_component_auction_v1_DutchAuctionState state; +} penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn; + +/* A message emitted when value flows *into* the auction component. */ +typedef struct _penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit { + /* The asset ID being deposited into the Auction component. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + /* The previous balance of the asset in the Auction component. */ + bool has_previous_balance; + penumbra_core_num_v1_Amount previous_balance; + /* The new balance of the asset in the Auction component. */ + bool has_new_balance; + penumbra_core_num_v1_Amount new_balance; +} penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit; + +/* A message emitted when value flows *out* of the auction component. */ +typedef struct _penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit { + /* The asset ID being deposited into the Auction component. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + /* The previous balance of the asset in the Auction component. */ + bool has_previous_balance; + penumbra_core_num_v1_Amount previous_balance; + /* The new balance of the asset in the Auction component. */ + bool has_new_balance; + penumbra_core_num_v1_Amount new_balance; +} penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_MIN \ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_UNSPECIFIED +#define _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_MAX \ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_CLOSED_BY_OWNER +#define _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_ARRAYSIZE \ + ((penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason)(penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_REASON_CLOSED_BY_OWNER + \ + 1)) + +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_reason_ENUMTYPE \ + penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason + +/* Initializer values for message structs */ +#define penumbra_core_component_auction_v1_AuctionParameters_init_default \ + { 0 } +#define penumbra_core_component_auction_v1_GenesisContent_init_default \ + { false, penumbra_core_component_auction_v1_AuctionParameters_init_default } +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_init_default \ + { false, penumbra_core_component_auction_v1_AuctionId_init_default } +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_init_default \ + { \ + false, google_protobuf_Any_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_default, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_auction_v1_AuctionId_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionNft_init_default \ + { false, penumbra_core_component_auction_v1_AuctionId_init_default, 0 } +#define penumbra_core_component_auction_v1_DutchAuctionDescription_init_default \ + { \ + false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_asset_v1_AssetId_init_default, false, \ + penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default, 0, 0, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_auction_v1_DutchAuctionState_init_default \ + { \ + 0, false, penumbra_core_component_dex_v1_PositionId_init_default, 0, false, \ + penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_auction_v1_DutchAuction_init_default \ + { \ + false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_default \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_init_default \ + { false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_default } +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_init_default \ + { false, penumbra_core_component_auction_v1_AuctionId_init_default } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, 0, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_default \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, 0, false, \ + penumbra_core_asset_v1_Value_init_default, false, penumbra_core_asset_v1_Value_init_default \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_init_default \ + { \ + false, penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_init_default, false, \ + penumbra_core_component_auction_v1_AuctionId_init_default, false, penumbra_core_asset_v1_Metadata_init_default, \ + false, penumbra_core_asset_v1_Metadata_init_default \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_init_default \ + { \ + false, penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionDescription_init_default \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_default \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_default, \ + _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_MIN \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_default \ + } +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_init_default \ + { \ + false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_init_default \ + { \ + false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_auction_v1_AuctionParameters_init_zero \ + { 0 } +#define penumbra_core_component_auction_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionParameters_init_zero } +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionId_init_zero } +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_init_zero \ + { \ + false, google_protobuf_Any_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_auction_v1_AuctionId_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_AuctionNft_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionId_init_zero, 0 } +#define penumbra_core_component_auction_v1_DutchAuctionDescription_init_zero \ + { \ + false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero, 0, 0, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_auction_v1_DutchAuctionState_init_zero \ + { \ + 0, false, penumbra_core_component_dex_v1_PositionId_init_zero, 0, false, penumbra_core_num_v1_Amount_init_zero, \ + false, penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_auction_v1_DutchAuction_init_zero \ + { \ + false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_zero \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_init_zero \ + { false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_zero } +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionId_init_zero } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, 0, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_zero \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, 0, false, penumbra_core_asset_v1_Value_init_zero, \ + false, penumbra_core_asset_v1_Value_init_zero \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_init_zero \ + { \ + false, penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_init_zero, false, \ + penumbra_core_component_auction_v1_AuctionId_init_zero, false, penumbra_core_asset_v1_Metadata_init_zero, \ + false, penumbra_core_asset_v1_Metadata_init_zero \ + } +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_init_zero \ + { \ + false, penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionDescription_init_zero \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_zero \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_zero, \ + _penumbra_core_component_auction_v1_EventDutchAuctionEnded_Reason_MIN \ + } +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, \ + penumbra_core_component_auction_v1_DutchAuctionState_init_zero \ + } +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_init_zero \ + { \ + false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_init_zero \ + { \ + false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_auction_v1_GenesisContent_params_tag 1 +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_auction_tag 2 +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_positions_tag 3 +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_id_tag 1 +#define penumbra_core_component_auction_v1_AuctionId_inner_tag 1 +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_id_tag 1 +#define penumbra_core_component_auction_v1_AuctionNft_id_tag 1 +#define penumbra_core_component_auction_v1_AuctionNft_seq_tag 2 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_input_tag 1 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_output_id_tag 2 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_max_output_tag 3 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_min_output_tag 4 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_start_height_tag 5 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_end_height_tag 6 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_step_count_tag 7 +#define penumbra_core_component_auction_v1_DutchAuctionDescription_nonce_tag 8 +#define penumbra_core_component_auction_v1_DutchAuctionState_seq_tag 1 +#define penumbra_core_component_auction_v1_DutchAuctionState_current_position_tag 2 +#define penumbra_core_component_auction_v1_DutchAuctionState_next_trigger_tag 3 +#define penumbra_core_component_auction_v1_DutchAuctionState_input_reserves_tag 4 +#define penumbra_core_component_auction_v1_DutchAuctionState_output_reserves_tag 5 +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_id_tag 1 +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_auction_tag 2 +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_positions_tag 3 +#define penumbra_core_component_auction_v1_DutchAuction_description_tag 1 +#define penumbra_core_component_auction_v1_DutchAuction_state_tag 2 +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_description_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_auction_id_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_auction_id_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_seq_tag 2 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_reserves_commitment_tag 3 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_auction_id_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_seq_tag 2 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_reserves_input_tag 3 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_reserves_output_tag 4 +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_action_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_auction_id_tag 2 +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_input_metadata_tag 3 +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_output_metadata_tag 4 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_action_tag 1 +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_reserves_tag 2 +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_auction_id_tag 1 +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_description_tag 2 +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_auction_id_tag 1 +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_state_tag 2 +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_auction_id_tag 1 +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_state_tag 2 +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_reason_tag 3 +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_auction_id_tag 1 +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_state_tag 2 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_asset_id_tag 1 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_previous_balance_tag 2 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_new_balance_tag 3 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_asset_id_tag 1 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_previous_balance_tag 2 +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_new_balance_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_auction_v1_AuctionParameters_FIELDLIST(X, a) + +#define penumbra_core_component_auction_v1_AuctionParameters_CALLBACK NULL +#define penumbra_core_component_auction_v1_AuctionParameters_DEFAULT NULL + +#define penumbra_core_component_auction_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, params, 1) +#define penumbra_core_component_auction_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_auction_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_auction_v1_GenesisContent_params_MSGTYPE penumbra_core_component_auction_v1_AuctionParameters + +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, id, 1) +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_CALLBACK NULL +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_DEFAULT NULL +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_id_MSGTYPE penumbra_core_component_auction_v1_AuctionId + +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, positions, 3) +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_DEFAULT NULL +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_auction_MSGTYPE google_protobuf_Any +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_positions_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, id, 1) +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_DEFAULT NULL +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_id_MSGTYPE penumbra_core_component_auction_v1_AuctionId + +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, positions, 3) +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_DEFAULT NULL +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_id_MSGTYPE penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_auction_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionState +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_positions_MSGTYPE \ + penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_auction_v1_AuctionId_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_auction_v1_AuctionId_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_AuctionId_DEFAULT NULL + +#define penumbra_core_component_auction_v1_AuctionNft_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ + X(a, STATIC, SINGULAR, UINT64, seq, 2) +#define penumbra_core_component_auction_v1_AuctionNft_CALLBACK NULL +#define penumbra_core_component_auction_v1_AuctionNft_DEFAULT NULL +#define penumbra_core_component_auction_v1_AuctionNft_id_MSGTYPE penumbra_core_component_auction_v1_AuctionId + +#define penumbra_core_component_auction_v1_DutchAuctionDescription_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, input, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_output, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, min_output, 4) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 5) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 6) \ + X(a, STATIC, SINGULAR, UINT64, step_count, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, nonce, 8) +#define penumbra_core_component_auction_v1_DutchAuctionDescription_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_DutchAuctionDescription_DEFAULT NULL +#define penumbra_core_component_auction_v1_DutchAuctionDescription_input_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_auction_v1_DutchAuctionDescription_output_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_auction_v1_DutchAuctionDescription_max_output_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_auction_v1_DutchAuctionDescription_min_output_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_auction_v1_DutchAuctionState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, seq, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, current_position, 2) \ + X(a, STATIC, SINGULAR, UINT64, next_trigger, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, input_reserves, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_reserves, 5) +#define penumbra_core_component_auction_v1_DutchAuctionState_CALLBACK NULL +#define penumbra_core_component_auction_v1_DutchAuctionState_DEFAULT NULL +#define penumbra_core_component_auction_v1_DutchAuctionState_current_position_MSGTYPE \ + penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_auction_v1_DutchAuctionState_input_reserves_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_auction_v1_DutchAuctionState_output_reserves_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_auction_v1_DutchAuction_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) +#define penumbra_core_component_auction_v1_DutchAuction_CALLBACK NULL +#define penumbra_core_component_auction_v1_DutchAuction_DEFAULT NULL +#define penumbra_core_component_auction_v1_DutchAuction_description_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionDescription +#define penumbra_core_component_auction_v1_DutchAuction_state_MSGTYPE penumbra_core_component_auction_v1_DutchAuctionState + +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 1) +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_CALLBACK NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_description_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionDescription + +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_CALLBACK NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId + +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, seq, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_commitment, 3) +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_CALLBACK NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_reserves_commitment_MSGTYPE \ + penumbra_core_asset_v1_BalanceCommitment + +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, seq, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_input, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_output, 4) +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_CALLBACK NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_reserves_input_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_reserves_output_MSGTYPE \ + penumbra_core_asset_v1_Value + +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, action, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, input_metadata, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_metadata, 4) +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_CALLBACK NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_action_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_input_metadata_MSGTYPE \ + penumbra_core_asset_v1_Metadata +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_output_metadata_MSGTYPE \ + penumbra_core_asset_v1_Metadata + +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, action, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, reserves, 2) +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_CALLBACK pb_default_field_callback +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_DEFAULT NULL +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_action_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_reserves_MSGTYPE penumbra_core_asset_v1_ValueView + +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 2) +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_description_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionDescription + +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_state_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionState + +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) \ + X(a, STATIC, SINGULAR, UENUM, reason, 3) +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_state_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionState + +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_state_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionState + +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, previous_balance, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_balance, 3) +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_previous_balance_MSGTYPE \ + penumbra_core_num_v1_Amount +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_new_balance_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, previous_balance, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_balance, 3) +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_CALLBACK NULL +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_DEFAULT NULL +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_previous_balance_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_new_balance_MSGTYPE penumbra_core_num_v1_Amount + +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionStateByIdRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionStateByIdResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionStateByIdsRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionStateByIdsResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionId_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_AuctionNft_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_DutchAuctionDescription_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_DutchAuctionState_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_DutchAuction_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionEnd_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventDutchAuctionScheduled_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventDutchAuctionUpdated_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventDutchAuctionEnded_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_msg; +extern const pb_msgdesc_t penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_auction_v1_AuctionParameters_fields &penumbra_core_component_auction_v1_AuctionParameters_msg +#define penumbra_core_component_auction_v1_GenesisContent_fields &penumbra_core_component_auction_v1_GenesisContent_msg +#define penumbra_core_component_auction_v1_AuctionStateByIdRequest_fields \ + &penumbra_core_component_auction_v1_AuctionStateByIdRequest_msg +#define penumbra_core_component_auction_v1_AuctionStateByIdResponse_fields \ + &penumbra_core_component_auction_v1_AuctionStateByIdResponse_msg +#define penumbra_core_component_auction_v1_AuctionStateByIdsRequest_fields \ + &penumbra_core_component_auction_v1_AuctionStateByIdsRequest_msg +#define penumbra_core_component_auction_v1_AuctionStateByIdsResponse_fields \ + &penumbra_core_component_auction_v1_AuctionStateByIdsResponse_msg +#define penumbra_core_component_auction_v1_AuctionId_fields &penumbra_core_component_auction_v1_AuctionId_msg +#define penumbra_core_component_auction_v1_AuctionNft_fields &penumbra_core_component_auction_v1_AuctionNft_msg +#define penumbra_core_component_auction_v1_DutchAuctionDescription_fields \ + &penumbra_core_component_auction_v1_DutchAuctionDescription_msg +#define penumbra_core_component_auction_v1_DutchAuctionState_fields &penumbra_core_component_auction_v1_DutchAuctionState_msg +#define penumbra_core_component_auction_v1_DutchAuction_fields &penumbra_core_component_auction_v1_DutchAuction_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionEnd_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionEnd_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_msg +#define penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_fields \ + &penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_msg +#define penumbra_core_component_auction_v1_EventDutchAuctionScheduled_fields \ + &penumbra_core_component_auction_v1_EventDutchAuctionScheduled_msg +#define penumbra_core_component_auction_v1_EventDutchAuctionUpdated_fields \ + &penumbra_core_component_auction_v1_EventDutchAuctionUpdated_msg +#define penumbra_core_component_auction_v1_EventDutchAuctionEnded_fields \ + &penumbra_core_component_auction_v1_EventDutchAuctionEnded_msg +#define penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_fields \ + &penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_msg +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_fields \ + &penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_msg +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_fields \ + &penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_auction_v1_AuctionStateByIdRequest_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_AuctionStateByIdResponse_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_AuctionStateByIdsRequest_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_AuctionStateByIdsResponse_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_AuctionId_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_AuctionNft_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_DutchAuctionDescription_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_DutchAuction_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_EventDutchAuctionScheduled_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_EventDutchAuctionUpdated_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_EventDutchAuctionEnded_size depends on runtime parameters */ +/* penumbra_core_component_auction_v1_EventDutchAuctionWithdrawn_size depends on runtime parameters */ +#define penumbra_core_component_auction_v1_AuctionParameters_size 0 +#define penumbra_core_component_auction_v1_GenesisContent_size 2 +#if defined(penumbra_core_component_dex_v1_PositionId_size) +#define PENUMBRA_CORE_COMPONENT_AUCTION_V1_PENUMBRA_CORE_COMPONENT_AUCTION_V1_AUCTION_PB_H_MAX_SIZE \ + penumbra_core_component_auction_v1_DutchAuctionState_size +#define penumbra_core_component_auction_v1_DutchAuctionState_size (76 + penumbra_core_component_dex_v1_PositionId_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerCredit_size (54 + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_auction_v1_EventValueCircuitBreakerDebit_size (54 + penumbra_core_asset_v1_AssetId_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.c b/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.c new file mode 100644 index 0000000..b0f32d1 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/community_pool/v1/community_pool.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_community_pool_v1_CommunityPoolParameters, + penumbra_core_component_community_pool_v1_CommunityPoolParameters, AUTO) + +PB_BIND(penumbra_core_component_community_pool_v1_GenesisContent, penumbra_core_component_community_pool_v1_GenesisContent, + AUTO) + +PB_BIND(penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest, + penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest, AUTO) + +PB_BIND(penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse, + penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.h b/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.h new file mode 100644 index 0000000..8fc4b18 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/community_pool/v1/community_pool.pb.h @@ -0,0 +1,142 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_COMMUNITY_POOL_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_COMMUNITY_POOL_PB_H_INCLUDED +#include + +#include "penumbra/core/asset/v1/asset.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* CommunityPool parameter data. */ +typedef struct _penumbra_core_component_community_pool_v1_CommunityPoolParameters { + /* Whether Community Pool spend proposals are enabled. */ + bool community_pool_spend_proposals_enabled; +} penumbra_core_component_community_pool_v1_CommunityPoolParameters; + +/* CommunityPool genesis state. */ +typedef struct _penumbra_core_component_community_pool_v1_GenesisContent { + /* CommunityPool parameters. */ + bool has_community_pool_params; + penumbra_core_component_community_pool_v1_CommunityPoolParameters community_pool_params; + /* The initial balance of the Community Pool. */ + bool has_initial_balance; + penumbra_core_asset_v1_Value initial_balance; +} penumbra_core_component_community_pool_v1_GenesisContent; + +/* Requests the list of all asset balances associated with the Community Pool. */ +typedef struct _penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest { + /* (Optional): The specific asset balances to retrieve, if excluded all will be returned. */ + pb_callback_t asset_ids; +} penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest; + +/* The Community Pool's balance of a single asset. */ +typedef struct _penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse { + /* The balance for a single asset. */ + bool has_balance; + penumbra_core_asset_v1_Value balance; +} penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_default \ + { 0 } +#define penumbra_core_component_community_pool_v1_GenesisContent_init_default \ + { \ + false, penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_default, false, \ + penumbra_core_asset_v1_Value_init_default \ + } +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_init_default \ + { false, penumbra_core_asset_v1_Value_init_default } +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_zero \ + { 0 } +#define penumbra_core_component_community_pool_v1_GenesisContent_init_zero \ + { \ + false, penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_zero, false, \ + penumbra_core_asset_v1_Value_init_zero \ + } +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_community_pool_spend_proposals_enabled_tag 1 +#define penumbra_core_component_community_pool_v1_GenesisContent_community_pool_params_tag 1 +#define penumbra_core_component_community_pool_v1_GenesisContent_initial_balance_tag 2 +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_asset_ids_tag 2 +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_balance_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, community_pool_spend_proposals_enabled, 1) +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_CALLBACK NULL +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_DEFAULT NULL + +#define penumbra_core_component_community_pool_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, community_pool_params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, initial_balance, 2) +#define penumbra_core_component_community_pool_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_community_pool_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_community_pool_v1_GenesisContent_community_pool_params_MSGTYPE \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters +#define penumbra_core_component_community_pool_v1_GenesisContent_initial_balance_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, asset_ids, 2) +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_CALLBACK pb_default_field_callback +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_DEFAULT NULL +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_asset_ids_MSGTYPE \ + penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance, 1) +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_CALLBACK NULL +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_DEFAULT NULL +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_balance_MSGTYPE \ + penumbra_core_asset_v1_Value + +extern const pb_msgdesc_t penumbra_core_component_community_pool_v1_CommunityPoolParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_community_pool_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_fields \ + &penumbra_core_component_community_pool_v1_CommunityPoolParameters_msg +#define penumbra_core_component_community_pool_v1_GenesisContent_fields \ + &penumbra_core_component_community_pool_v1_GenesisContent_msg +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_fields \ + &penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_msg +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_fields \ + &penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesRequest_size depends on runtime parameters */ +#define penumbra_core_component_community_pool_v1_CommunityPoolParameters_size 2 +#if defined(penumbra_core_asset_v1_Value_size) +#define PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_PENUMBRA_CORE_COMPONENT_COMMUNITY_POOL_V1_COMMUNITY_POOL_PB_H_MAX_SIZE \ + penumbra_core_component_community_pool_v1_GenesisContent_size +#define penumbra_core_component_community_pool_v1_CommunityPoolAssetBalancesResponse_size \ + (6 + penumbra_core_asset_v1_Value_size) +#define penumbra_core_component_community_pool_v1_GenesisContent_size (10 + penumbra_core_asset_v1_Value_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.c b/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.c new file mode 100644 index 0000000..c82c77b --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.c @@ -0,0 +1,32 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/compact_block/v1/compact_block.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_compact_block_v1_CompactBlock, penumbra_core_component_compact_block_v1_CompactBlock, 2) + +PB_BIND(penumbra_core_component_compact_block_v1_StatePayload, penumbra_core_component_compact_block_v1_StatePayload, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_StatePayload_RolledUp, + penumbra_core_component_compact_block_v1_StatePayload_RolledUp, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_StatePayload_Note, + penumbra_core_component_compact_block_v1_StatePayload_Note, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_StatePayload_Swap, + penumbra_core_component_compact_block_v1_StatePayload_Swap, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_CompactBlockRangeRequest, + penumbra_core_component_compact_block_v1_CompactBlockRangeRequest, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_CompactBlockRangeResponse, + penumbra_core_component_compact_block_v1_CompactBlockRangeResponse, 2) + +PB_BIND(penumbra_core_component_compact_block_v1_CompactBlockRequest, + penumbra_core_component_compact_block_v1_CompactBlockRequest, AUTO) + +PB_BIND(penumbra_core_component_compact_block_v1_CompactBlockResponse, + penumbra_core_component_compact_block_v1_CompactBlockResponse, 2) diff --git a/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.h b/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.h new file mode 100644 index 0000000..3be4b06 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/compact_block/v1/compact_block.pb.h @@ -0,0 +1,351 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_COMPACT_BLOCK_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_COMPACT_BLOCK_PB_H_INCLUDED +#include + +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Contains the minimum data needed to update client state. */ +typedef struct _penumbra_core_component_compact_block_v1_CompactBlock { + uint64_t height; + /* State payloads describing new state fragments. */ + pb_callback_t state_payloads; + /* Nullifiers identifying spent notes. */ + pb_callback_t nullifiers; + /* The block root of this block. */ + bool has_block_root; + penumbra_crypto_tct_v1_MerkleRoot block_root; + /* The epoch root of this epoch (only present when the block is the last in an epoch). */ + bool has_epoch_root; + penumbra_crypto_tct_v1_MerkleRoot epoch_root; + /* If a proposal started voting in this block, this is set to `true`. */ + bool proposal_started; + /* Latest Fuzzy Message Detection parameters. */ + bool has_fmd_parameters; + penumbra_core_component_shielded_pool_v1_FmdParameters fmd_parameters; + /* Price data for swaps executed in this block. */ + pb_callback_t swap_outputs; + /* Indicates updated app parameters. */ + bool app_parameters_updated; + /* Updated gas prices, if they have changed. */ + bool has_gas_prices; + penumbra_core_component_fee_v1_GasPrices gas_prices; + /* The epoch index */ + uint64_t epoch_index; + /* Updated gas prices for alternative fee tokens, if they have changed. */ + pb_callback_t alt_gas_prices; +} penumbra_core_component_compact_block_v1_CompactBlock; + +typedef struct _penumbra_core_component_compact_block_v1_StatePayload_RolledUp { + bool has_commitment; + penumbra_crypto_tct_v1_StateCommitment commitment; +} penumbra_core_component_compact_block_v1_StatePayload_RolledUp; + +typedef struct _penumbra_core_component_compact_block_v1_StatePayload_Note { + bool has_note; + penumbra_core_component_shielded_pool_v1_NotePayload note; +} penumbra_core_component_compact_block_v1_StatePayload_Note; + +typedef struct _penumbra_core_component_compact_block_v1_StatePayload_Swap { + bool has_swap; + penumbra_core_component_dex_v1_SwapPayload swap; +} penumbra_core_component_compact_block_v1_StatePayload_Swap; + +/* An encrypted payload, corresponding to a single commitment in the state commitment tree. */ +typedef struct _penumbra_core_component_compact_block_v1_StatePayload { + /* The source of the payload, if known. */ + bool has_source; + penumbra_core_component_sct_v1_CommitmentSource source; + pb_size_t which_state_payload; + union { + penumbra_core_component_compact_block_v1_StatePayload_RolledUp rolled_up; + penumbra_core_component_compact_block_v1_StatePayload_Note note; + penumbra_core_component_compact_block_v1_StatePayload_Swap swap; + } state_payload; +} penumbra_core_component_compact_block_v1_StatePayload; + +/* Requests a range of compact block data. */ +typedef struct _penumbra_core_component_compact_block_v1_CompactBlockRangeRequest { + /* The start height of the range. */ + uint64_t start_height; + /* The end height of the range, defaults to the latest block height. */ + uint64_t end_height; + /* If set, keeps the connection alive past `end_height`, + streaming new compact blocks as they are created. */ + bool keep_alive; +} penumbra_core_component_compact_block_v1_CompactBlockRangeRequest; + +typedef struct _penumbra_core_component_compact_block_v1_CompactBlockRangeResponse { + bool has_compact_block; + penumbra_core_component_compact_block_v1_CompactBlock compact_block; +} penumbra_core_component_compact_block_v1_CompactBlockRangeResponse; + +typedef struct _penumbra_core_component_compact_block_v1_CompactBlockRequest { + uint64_t height; +} penumbra_core_component_compact_block_v1_CompactBlockRequest; + +typedef struct _penumbra_core_component_compact_block_v1_CompactBlockResponse { + bool has_compact_block; + penumbra_core_component_compact_block_v1_CompactBlock compact_block; +} penumbra_core_component_compact_block_v1_CompactBlockResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_compact_block_v1_CompactBlock_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, false, penumbra_crypto_tct_v1_MerkleRoot_init_default, false, \ + penumbra_crypto_tct_v1_MerkleRoot_init_default, 0, false, \ + penumbra_core_component_shielded_pool_v1_FmdParameters_init_default, {{NULL}, NULL}, 0, false, \ + penumbra_core_component_fee_v1_GasPrices_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_compact_block_v1_StatePayload_init_default \ + { \ + false, penumbra_core_component_sct_v1_CommitmentSource_init_default, 0, { \ + penumbra_core_component_compact_block_v1_StatePayload_RolledUp_init_default \ + } \ + } +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default } +#define penumbra_core_component_compact_block_v1_StatePayload_Note_init_default \ + { false, penumbra_core_component_shielded_pool_v1_NotePayload_init_default } +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_init_default \ + { false, penumbra_core_component_dex_v1_SwapPayload_init_default } +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_init_default \ + { 0, 0, 0 } +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_init_default \ + { false, penumbra_core_component_compact_block_v1_CompactBlock_init_default } +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_init_default \ + { 0 } +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_init_default \ + { false, penumbra_core_component_compact_block_v1_CompactBlock_init_default } +#define penumbra_core_component_compact_block_v1_CompactBlock_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, false, penumbra_crypto_tct_v1_MerkleRoot_init_zero, false, \ + penumbra_crypto_tct_v1_MerkleRoot_init_zero, 0, false, \ + penumbra_core_component_shielded_pool_v1_FmdParameters_init_zero, {{NULL}, NULL}, 0, false, \ + penumbra_core_component_fee_v1_GasPrices_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_compact_block_v1_StatePayload_init_zero \ + { \ + false, penumbra_core_component_sct_v1_CommitmentSource_init_zero, 0, { \ + penumbra_core_component_compact_block_v1_StatePayload_RolledUp_init_zero \ + } \ + } +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero } +#define penumbra_core_component_compact_block_v1_StatePayload_Note_init_zero \ + { false, penumbra_core_component_shielded_pool_v1_NotePayload_init_zero } +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_init_zero \ + { false, penumbra_core_component_dex_v1_SwapPayload_init_zero } +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_init_zero \ + { 0, 0, 0 } +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_init_zero \ + { false, penumbra_core_component_compact_block_v1_CompactBlock_init_zero } +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_init_zero \ + { 0 } +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_init_zero \ + { false, penumbra_core_component_compact_block_v1_CompactBlock_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_compact_block_v1_CompactBlock_height_tag 1 +#define penumbra_core_component_compact_block_v1_CompactBlock_state_payloads_tag 2 +#define penumbra_core_component_compact_block_v1_CompactBlock_nullifiers_tag 3 +#define penumbra_core_component_compact_block_v1_CompactBlock_block_root_tag 4 +#define penumbra_core_component_compact_block_v1_CompactBlock_epoch_root_tag 5 +#define penumbra_core_component_compact_block_v1_CompactBlock_proposal_started_tag 6 +#define penumbra_core_component_compact_block_v1_CompactBlock_fmd_parameters_tag 7 +#define penumbra_core_component_compact_block_v1_CompactBlock_swap_outputs_tag 8 +#define penumbra_core_component_compact_block_v1_CompactBlock_app_parameters_updated_tag 9 +#define penumbra_core_component_compact_block_v1_CompactBlock_gas_prices_tag 10 +#define penumbra_core_component_compact_block_v1_CompactBlock_epoch_index_tag 11 +#define penumbra_core_component_compact_block_v1_CompactBlock_alt_gas_prices_tag 100 +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_commitment_tag 1 +#define penumbra_core_component_compact_block_v1_StatePayload_Note_note_tag 2 +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_swap_tag 2 +#define penumbra_core_component_compact_block_v1_StatePayload_source_tag 1 +#define penumbra_core_component_compact_block_v1_StatePayload_rolled_up_tag 2 +#define penumbra_core_component_compact_block_v1_StatePayload_note_tag 3 +#define penumbra_core_component_compact_block_v1_StatePayload_swap_tag 4 +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_start_height_tag 2 +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_end_height_tag 3 +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_keep_alive_tag 4 +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_compact_block_tag 1 +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_height_tag 1 +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_compact_block_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_compact_block_v1_CompactBlock_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, state_payloads, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, nullifiers, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_root, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, epoch_root, 5) \ + X(a, STATIC, SINGULAR, BOOL, proposal_started, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, fmd_parameters, 7) \ + X(a, CALLBACK, REPEATED, MESSAGE, swap_outputs, 8) \ + X(a, STATIC, SINGULAR, BOOL, app_parameters_updated, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_prices, 10) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 11) \ + X(a, CALLBACK, REPEATED, MESSAGE, alt_gas_prices, 100) +#define penumbra_core_component_compact_block_v1_CompactBlock_CALLBACK pb_default_field_callback +#define penumbra_core_component_compact_block_v1_CompactBlock_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_CompactBlock_state_payloads_MSGTYPE \ + penumbra_core_component_compact_block_v1_StatePayload +#define penumbra_core_component_compact_block_v1_CompactBlock_nullifiers_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_core_component_compact_block_v1_CompactBlock_block_root_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_component_compact_block_v1_CompactBlock_epoch_root_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_component_compact_block_v1_CompactBlock_fmd_parameters_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdParameters +#define penumbra_core_component_compact_block_v1_CompactBlock_swap_outputs_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData +#define penumbra_core_component_compact_block_v1_CompactBlock_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices +#define penumbra_core_component_compact_block_v1_CompactBlock_alt_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices + +#define penumbra_core_component_compact_block_v1_StatePayload_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, source, 1) \ + X(a, STATIC, ONEOF, MESSAGE, (state_payload, rolled_up, state_payload.rolled_up), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (state_payload, note, state_payload.note), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (state_payload, swap, state_payload.swap), 4) +#define penumbra_core_component_compact_block_v1_StatePayload_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_StatePayload_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_StatePayload_source_MSGTYPE penumbra_core_component_sct_v1_CommitmentSource +#define penumbra_core_component_compact_block_v1_StatePayload_state_payload_rolled_up_MSGTYPE \ + penumbra_core_component_compact_block_v1_StatePayload_RolledUp +#define penumbra_core_component_compact_block_v1_StatePayload_state_payload_note_MSGTYPE \ + penumbra_core_component_compact_block_v1_StatePayload_Note +#define penumbra_core_component_compact_block_v1_StatePayload_state_payload_swap_MSGTYPE \ + penumbra_core_component_compact_block_v1_StatePayload_Swap + +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 1) +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_commitment_MSGTYPE \ + penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_core_component_compact_block_v1_StatePayload_Note_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, note, 2) +#define penumbra_core_component_compact_block_v1_StatePayload_Note_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_StatePayload_Note_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_StatePayload_Note_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NotePayload + +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, swap, 2) +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_swap_MSGTYPE penumbra_core_component_dex_v1_SwapPayload + +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 3) \ + X(a, STATIC, SINGULAR, BOOL, keep_alive, 4) +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_DEFAULT NULL + +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, compact_block, 1) +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_compact_block_MSGTYPE \ + penumbra_core_component_compact_block_v1_CompactBlock + +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_DEFAULT NULL + +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, compact_block, 1) +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_CALLBACK NULL +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_DEFAULT NULL +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_compact_block_MSGTYPE \ + penumbra_core_component_compact_block_v1_CompactBlock + +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_CompactBlock_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_StatePayload_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_StatePayload_RolledUp_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_StatePayload_Note_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_StatePayload_Swap_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_CompactBlockRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_compact_block_v1_CompactBlockResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_compact_block_v1_CompactBlock_fields \ + &penumbra_core_component_compact_block_v1_CompactBlock_msg +#define penumbra_core_component_compact_block_v1_StatePayload_fields \ + &penumbra_core_component_compact_block_v1_StatePayload_msg +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_fields \ + &penumbra_core_component_compact_block_v1_StatePayload_RolledUp_msg +#define penumbra_core_component_compact_block_v1_StatePayload_Note_fields \ + &penumbra_core_component_compact_block_v1_StatePayload_Note_msg +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_fields \ + &penumbra_core_component_compact_block_v1_StatePayload_Swap_msg +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_fields \ + &penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_msg +#define penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_fields \ + &penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_msg +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_fields \ + &penumbra_core_component_compact_block_v1_CompactBlockRequest_msg +#define penumbra_core_component_compact_block_v1_CompactBlockResponse_fields \ + &penumbra_core_component_compact_block_v1_CompactBlockResponse_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) && \ + defined(penumbra_core_component_shielded_pool_v1_NotePayload_size) && \ + defined(penumbra_core_component_dex_v1_SwapPayload_size) +union penumbra_core_component_compact_block_v1_StatePayload_state_payload_size_union { + char f2[(12 + penumbra_crypto_tct_v1_StateCommitment_size)]; + char f3[(12 + penumbra_core_component_shielded_pool_v1_NotePayload_size)]; + char f4[(12 + penumbra_core_component_dex_v1_SwapPayload_size)]; +}; +#endif +/* penumbra_core_component_compact_block_v1_CompactBlock_size depends on runtime parameters */ +/* penumbra_core_component_compact_block_v1_CompactBlockRangeResponse_size depends on runtime parameters */ +/* penumbra_core_component_compact_block_v1_CompactBlockResponse_size depends on runtime parameters */ +#if defined(penumbra_core_component_sct_v1_CommitmentSource_size) && \ + defined(penumbra_crypto_tct_v1_StateCommitment_size) && \ + defined(penumbra_core_component_shielded_pool_v1_NotePayload_size) && \ + defined(penumbra_core_component_dex_v1_SwapPayload_size) +#define penumbra_core_component_compact_block_v1_StatePayload_size \ + (6 + penumbra_core_component_sct_v1_CommitmentSource_size + \ + sizeof(union penumbra_core_component_compact_block_v1_StatePayload_state_payload_size_union)) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_core_component_compact_block_v1_StatePayload_RolledUp_size (6 + penumbra_crypto_tct_v1_StateCommitment_size) +#endif +#if defined(penumbra_core_component_shielded_pool_v1_NotePayload_size) +#define penumbra_core_component_compact_block_v1_StatePayload_Note_size \ + (6 + penumbra_core_component_shielded_pool_v1_NotePayload_size) +#endif +#if defined(penumbra_core_component_dex_v1_SwapPayload_size) +#define penumbra_core_component_compact_block_v1_StatePayload_Swap_size (6 + penumbra_core_component_dex_v1_SwapPayload_size) +#endif +#define PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_PENUMBRA_CORE_COMPONENT_COMPACT_BLOCK_V1_COMPACT_BLOCK_PB_H_MAX_SIZE \ + penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_size +#define penumbra_core_component_compact_block_v1_CompactBlockRangeRequest_size 24 +#define penumbra_core_component_compact_block_v1_CompactBlockRequest_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.c b/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.c new file mode 100644 index 0000000..2938f62 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.c @@ -0,0 +1,186 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/dex/v1/dex.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_dex_v1_ZKSwapProof, penumbra_core_component_dex_v1_ZKSwapProof, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_ZKSwapClaimProof, penumbra_core_component_dex_v1_ZKSwapClaimProof, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_Swap, penumbra_core_component_dex_v1_Swap, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaim, penumbra_core_component_dex_v1_SwapClaim, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaimBody, penumbra_core_component_dex_v1_SwapClaimBody, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapBody, penumbra_core_component_dex_v1_SwapBody, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapPayload, penumbra_core_component_dex_v1_SwapPayload, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapPlaintext, penumbra_core_component_dex_v1_SwapPlaintext, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapPlan, penumbra_core_component_dex_v1_SwapPlan, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaimPlan, penumbra_core_component_dex_v1_SwapClaimPlan, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapView, penumbra_core_component_dex_v1_SwapView, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapView_Visible, penumbra_core_component_dex_v1_SwapView_Visible, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapView_Opaque, penumbra_core_component_dex_v1_SwapView_Opaque, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaimView, penumbra_core_component_dex_v1_SwapClaimView, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaimView_Visible, penumbra_core_component_dex_v1_SwapClaimView_Visible, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapClaimView_Opaque, penumbra_core_component_dex_v1_SwapClaimView_Opaque, 2) + +PB_BIND(penumbra_core_component_dex_v1_TradingPair, penumbra_core_component_dex_v1_TradingPair, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_DirectedTradingPair, penumbra_core_component_dex_v1_DirectedTradingPair, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_BatchSwapOutputData, penumbra_core_component_dex_v1_BatchSwapOutputData, 2) + +PB_BIND(penumbra_core_component_dex_v1_TradingFunction, penumbra_core_component_dex_v1_TradingFunction, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_BareTradingFunction, penumbra_core_component_dex_v1_BareTradingFunction, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_Reserves, penumbra_core_component_dex_v1_Reserves, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_Position, penumbra_core_component_dex_v1_Position, 2) + +PB_BIND(penumbra_core_component_dex_v1_PositionId, penumbra_core_component_dex_v1_PositionId, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionState, penumbra_core_component_dex_v1_PositionState, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LpNft, penumbra_core_component_dex_v1_LpNft, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionOpen, penumbra_core_component_dex_v1_PositionOpen, 2) + +PB_BIND(penumbra_core_component_dex_v1_PositionClose, penumbra_core_component_dex_v1_PositionClose, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionWithdraw, penumbra_core_component_dex_v1_PositionWithdraw, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionRewardClaim, penumbra_core_component_dex_v1_PositionRewardClaim, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecution, penumbra_core_component_dex_v1_SwapExecution, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecution_Trace, penumbra_core_component_dex_v1_SwapExecution_Trace, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionWithdrawPlan, penumbra_core_component_dex_v1_PositionWithdrawPlan, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_PositionRewardClaimPlan, penumbra_core_component_dex_v1_PositionRewardClaimPlan, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_BatchSwapOutputDataRequest, penumbra_core_component_dex_v1_BatchSwapOutputDataRequest, + AUTO) + +PB_BIND(penumbra_core_component_dex_v1_BatchSwapOutputDataResponse, + penumbra_core_component_dex_v1_BatchSwapOutputDataResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecutionRequest, penumbra_core_component_dex_v1_SwapExecutionRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecutionResponse, penumbra_core_component_dex_v1_SwapExecutionResponse, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_ArbExecutionRequest, penumbra_core_component_dex_v1_ArbExecutionRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_ArbExecutionResponse, penumbra_core_component_dex_v1_ArbExecutionResponse, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecutionsRequest, penumbra_core_component_dex_v1_SwapExecutionsRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SwapExecutionsResponse, penumbra_core_component_dex_v1_SwapExecutionsResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_ArbExecutionsRequest, penumbra_core_component_dex_v1_ArbExecutionsRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_ArbExecutionsResponse, penumbra_core_component_dex_v1_ArbExecutionsResponse, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsRequest, penumbra_core_component_dex_v1_LiquidityPositionsRequest, + AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsResponse, penumbra_core_component_dex_v1_LiquidityPositionsResponse, + 2) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionByIdRequest, + penumbra_core_component_dex_v1_LiquidityPositionByIdRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionByIdResponse, + penumbra_core_component_dex_v1_LiquidityPositionByIdResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest, + penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse, + penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest, + penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse, + penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_SpreadRequest, penumbra_core_component_dex_v1_SpreadRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SpreadResponse, penumbra_core_component_dex_v1_SpreadResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_SimulateTradeRequest, penumbra_core_component_dex_v1_SimulateTradeRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SimulateTradeRequest_Routing, + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop, + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default, + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_SimulateTradeResponse, penumbra_core_component_dex_v1_SimulateTradeResponse, 2) + +PB_BIND(penumbra_core_component_dex_v1_EventSwap, penumbra_core_component_dex_v1_EventSwap, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventSwapClaim, penumbra_core_component_dex_v1_EventSwapClaim, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventPositionOpen, penumbra_core_component_dex_v1_EventPositionOpen, 2) + +PB_BIND(penumbra_core_component_dex_v1_EventPositionClose, penumbra_core_component_dex_v1_EventPositionClose, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventQueuePositionClose, penumbra_core_component_dex_v1_EventQueuePositionClose, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventPositionWithdraw, penumbra_core_component_dex_v1_EventPositionWithdraw, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventPositionExecution, penumbra_core_component_dex_v1_EventPositionExecution, 2) + +PB_BIND(penumbra_core_component_dex_v1_EventBatchSwap, penumbra_core_component_dex_v1_EventBatchSwap, 2) + +PB_BIND(penumbra_core_component_dex_v1_EventArbExecution, penumbra_core_component_dex_v1_EventArbExecution, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit, + penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit, + penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_DexParameters, penumbra_core_component_dex_v1_DexParameters, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_GenesisContent, penumbra_core_component_dex_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_CandlestickData, penumbra_core_component_dex_v1_CandlestickData, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_CandlestickDataRequest, penumbra_core_component_dex_v1_CandlestickDataRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_CandlestickDataResponse, penumbra_core_component_dex_v1_CandlestickDataResponse, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_CandlestickDataStreamRequest, + penumbra_core_component_dex_v1_CandlestickDataStreamRequest, AUTO) + +PB_BIND(penumbra_core_component_dex_v1_CandlestickDataStreamResponse, + penumbra_core_component_dex_v1_CandlestickDataStreamResponse, AUTO) + +#ifndef PB_CONVERT_DOUBLE_FLOAT +/* On some platforms (such as AVR), double is really float. + * To be able to encode/decode double on these platforms, you need. + * to define PB_CONVERT_DOUBLE_FLOAT in pb.h or compiler command line. + */ +PB_STATIC_ASSERT(sizeof(double) == 8, DOUBLE_MUST_BE_8_BYTES) +#endif diff --git a/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.h b/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.h new file mode 100644 index 0000000..71f4c8d --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/dex/v1/dex.pb.h @@ -0,0 +1,2700 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_DEX_V1_PENUMBRA_CORE_COMPONENT_DEX_V1_DEX_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_DEX_V1_PENUMBRA_CORE_COMPONENT_DEX_V1_DEX_PB_H_INCLUDED +#include + +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" +#include "penumbra/core/txhash/v1/txhash.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _penumbra_core_component_dex_v1_PositionState_PositionStateEnum { + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_UNSPECIFIED = 0, + /* The position has been opened, is active, has reserves and accumulated + fees, and can be traded against. */ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_OPENED = 1, + /* The position has been closed, is inactive and can no longer be traded + against, but still has reserves and accumulated fees. */ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_CLOSED = 2, + /* The final reserves and accumulated fees have been withdrawn, leaving an + empty, inactive position awaiting (possible) retroactive rewards. + + Positions can be withdrawn from multiple times, incrementing a sequence + number each time. */ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_WITHDRAWN = 3, + /* Deprecated. */ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_CLAIMED = 4 +} penumbra_core_component_dex_v1_PositionState_PositionStateEnum; + +/* Struct definitions */ +/* A Penumbra ZK swap proof. */ +typedef struct _penumbra_core_component_dex_v1_ZKSwapProof { + pb_callback_t inner; +} penumbra_core_component_dex_v1_ZKSwapProof; + +/* A Penumbra ZK swap claim proof. */ +typedef struct _penumbra_core_component_dex_v1_ZKSwapClaimProof { + pb_callback_t inner; +} penumbra_core_component_dex_v1_ZKSwapClaimProof; + +typedef struct _penumbra_core_component_dex_v1_SwapPayload { + bool has_commitment; + penumbra_crypto_tct_v1_StateCommitment commitment; + pb_callback_t encrypted_swap; +} penumbra_core_component_dex_v1_SwapPayload; + +/* Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we + require `asset_1 < asset_2` as field elements, to ensure a canonical + representation of an unordered pair. */ +typedef struct _penumbra_core_component_dex_v1_TradingPair { + /* The first asset of the pair. */ + bool has_asset_1; + penumbra_core_asset_v1_AssetId asset_1; + /* The second asset of the pair. */ + bool has_asset_2; + penumbra_core_asset_v1_AssetId asset_2; +} penumbra_core_component_dex_v1_TradingPair; + +/* The authorized data of a Swap transaction. */ +typedef struct _penumbra_core_component_dex_v1_SwapBody { + /* The trading pair to swap. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The amount for asset 1. */ + bool has_delta_1_i; + penumbra_core_num_v1_Amount delta_1_i; + /* The amount for asset 2. */ + bool has_delta_2_i; + penumbra_core_num_v1_Amount delta_2_i; + /* A commitment to a prepaid fee for the future SwapClaim. + This is recorded separately from delta_j_i because it's shielded; + in the future we'll want separate commitments to each delta_j_i + anyways in order to prove consistency with flow encryption. */ + bool has_fee_commitment; + penumbra_core_asset_v1_BalanceCommitment fee_commitment; + /* The swap commitment and encryption of the swap data. */ + bool has_payload; + penumbra_core_component_dex_v1_SwapPayload payload; +} penumbra_core_component_dex_v1_SwapBody; + +/* A transaction action that submits a swap to the dex. */ +typedef struct _penumbra_core_component_dex_v1_Swap { + /* Contains the Swap proof. */ + bool has_proof; + penumbra_core_component_dex_v1_ZKSwapProof proof; + /* Encapsulates the authorized fields of the Swap action, used in signing. */ + bool has_body; + penumbra_core_component_dex_v1_SwapBody body; +} penumbra_core_component_dex_v1_Swap; + +typedef struct _penumbra_core_component_dex_v1_SwapPlaintext { + /* The trading pair to swap. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* Input amount of asset 1 */ + bool has_delta_1_i; + penumbra_core_num_v1_Amount delta_1_i; + /* Input amount of asset 2 */ + bool has_delta_2_i; + penumbra_core_num_v1_Amount delta_2_i; + /* Pre-paid fee to claim the swap */ + bool has_claim_fee; + penumbra_core_component_fee_v1_Fee claim_fee; + /* Address that will claim the swap outputs via SwapClaim. */ + bool has_claim_address; + penumbra_core_keys_v1_Address claim_address; + /* Swap rseed (blinding factors are derived from this) */ + pb_callback_t rseed; +} penumbra_core_component_dex_v1_SwapPlaintext; + +typedef struct _penumbra_core_component_dex_v1_SwapPlan { + /* The plaintext version of the swap to be performed. */ + bool has_swap_plaintext; + penumbra_core_component_dex_v1_SwapPlaintext swap_plaintext; + /* The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the + * SwapClaim. */ + pb_callback_t fee_blinding; + /* The first blinding factor to use for the ZK swap proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK swap proof. */ + pb_callback_t proof_blinding_s; +} penumbra_core_component_dex_v1_SwapPlan; + +/* Encodes a trading pair starting from asset `start` + and ending on asset `end`. */ +typedef struct _penumbra_core_component_dex_v1_DirectedTradingPair { + /* The start asset of the pair. */ + bool has_start; + penumbra_core_asset_v1_AssetId start; + /* The end asset of the pair. */ + bool has_end; + penumbra_core_asset_v1_AssetId end; +} penumbra_core_component_dex_v1_DirectedTradingPair; + +/* Records the result of a batch swap on-chain. + + Used as a public input to a swap claim proof, as it implies the effective + clearing price for the batch. */ +typedef struct _penumbra_core_component_dex_v1_BatchSwapOutputData { + /* The total amount of asset 1 that was input to the batch swap. */ + bool has_delta_1; + penumbra_core_num_v1_Amount delta_1; + /* The total amount of asset 2 that was input to the batch swap. */ + bool has_delta_2; + penumbra_core_num_v1_Amount delta_2; + /* The total amount of asset 1 that was output from the batch swap for 2=>1 trades. */ + bool has_lambda_1; + penumbra_core_num_v1_Amount lambda_1; + /* The total amount of asset 2 that was output from the batch swap for 1=>2 trades. */ + bool has_lambda_2; + penumbra_core_num_v1_Amount lambda_2; + /* The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. */ + bool has_unfilled_1; + penumbra_core_num_v1_Amount unfilled_1; + /* The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. */ + bool has_unfilled_2; + penumbra_core_num_v1_Amount unfilled_2; + /* The height for which the batch swap data is valid. */ + uint64_t height; + /* The trading pair associated with the batch swap. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The starting block height of the epoch for which the batch swap data is valid. */ + uint64_t epoch_starting_height; + /* The prefix (epoch, block) of the position where this batch swap occurred. */ + uint64_t sct_position_prefix; +} penumbra_core_component_dex_v1_BatchSwapOutputData; + +/* Encapsulates the authorized fields of the SwapClaim action, used in signing. */ +typedef struct _penumbra_core_component_dex_v1_SwapClaimBody { + /* The nullifier for the Swap commitment to be consumed. */ + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + /* The fee allows `SwapClaim` without an additional `Spend`. */ + bool has_fee; + penumbra_core_component_fee_v1_Fee fee; + /* Note output for asset 1. */ + bool has_output_1_commitment; + penumbra_crypto_tct_v1_StateCommitment output_1_commitment; + /* Note output for asset 2. */ + bool has_output_2_commitment; + penumbra_crypto_tct_v1_StateCommitment output_2_commitment; + /* Input and output amounts, and asset IDs for the assets in the swap. */ + bool has_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData output_data; +} penumbra_core_component_dex_v1_SwapClaimBody; + +/* A transaction action that obtains assets previously confirmed + via a Swap transaction. Does not include a spend authorization + signature, as it is only capable of consuming the NFT from a + Swap transaction. */ +typedef struct _penumbra_core_component_dex_v1_SwapClaim { + /* Contains the SwapClaim proof. */ + bool has_proof; + penumbra_core_component_dex_v1_ZKSwapClaimProof proof; + /* Encapsulates the authorized fields of the SwapClaim action, used in signing. */ + bool has_body; + penumbra_core_component_dex_v1_SwapClaimBody body; + /* The epoch duration of the chain when the swap claim took place. */ + uint64_t epoch_duration; +} penumbra_core_component_dex_v1_SwapClaim; + +typedef struct _penumbra_core_component_dex_v1_SwapClaimPlan { + /* The plaintext version of the swap to be performed. */ + bool has_swap_plaintext; + penumbra_core_component_dex_v1_SwapPlaintext swap_plaintext; + /* The position of the swap commitment. */ + uint64_t position; + /* Input and output amounts for the Swap. */ + bool has_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData output_data; + /* The epoch duration, used in proving. */ + uint64_t epoch_duration; + /* The first blinding factor to use for the ZK swap claim proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK swap claim proof. */ + pb_callback_t proof_blinding_s; +} penumbra_core_component_dex_v1_SwapClaimPlan; + +typedef struct _penumbra_core_component_dex_v1_SwapView_Visible { + /* The underlying Swap action being viewed. */ + bool has_swap; + penumbra_core_component_dex_v1_Swap swap; + /* The plaintext of the encrypted swap. */ + bool has_swap_plaintext; + penumbra_core_component_dex_v1_SwapPlaintext swap_plaintext; + /* Optionally, a transaction hash for the transaction that claimed this + swap. + + Presence of this field signals that the swap outputs have been claimed + and that the claim transaction is known to the view server. Absence of + this field does not indicate anything about the state of the swap. + + This field allows frontends to more easily crossreference the sequence of + Swap/SwapClaim actions. */ + bool has_claim_tx; + penumbra_core_txhash_v1_TransactionId claim_tx; + /* Optionally, if the swap has been confirmed, the batch price it received. + + As soon as the swap is detected, the view server can in principle record + the relevant BSOD and provide it as part of the view. This allows providing + info about the execution of the swap. */ + bool has_batch_swap_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData batch_swap_output_data; + /* Optionally, if the swap has been confirmed, the output note of asset 1. + + This is the note that will be minted by the SwapClaim action. */ + bool has_output_1; + penumbra_core_component_shielded_pool_v1_NoteView output_1; + /* Optionally, if the swap has been confirmed, the output note of asset 2. + + This is the note that will be minted by the SwapClaim action. */ + bool has_output_2; + penumbra_core_component_shielded_pool_v1_NoteView output_2; + /* Optionally, metadata about asset 1 in the `swap`'s trading pair. */ + bool has_asset_1_metadata; + penumbra_core_asset_v1_Metadata asset_1_metadata; + /* Optionally, metadata about asset 2 in the `swap`'s trading pair. */ + bool has_asset_2_metadata; + penumbra_core_asset_v1_Metadata asset_2_metadata; +} penumbra_core_component_dex_v1_SwapView_Visible; + +typedef struct _penumbra_core_component_dex_v1_SwapView_Opaque { + bool has_swap; + penumbra_core_component_dex_v1_Swap swap; + /* Optionally, if the swap has been confirmed, the batch price it received. + + As soon as the swap is detected, the view server can in principle record + the relevant BSOD and provide it as part of the view. This allows providing + info about the execution of the swap. */ + bool has_batch_swap_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData batch_swap_output_data; + /* Optionally, if the swap has been confirmed, the output value of asset 1. + + This is the value of the note that will be minted by the SwapClaim action. + Note that unlike the `Visible` variant, this is only a `ValueView` since + the details of the note (in particular the claim address) are not publicly known. */ + bool has_output_1_value; + penumbra_core_asset_v1_ValueView output_1_value; + /* Optionally, if the swap has been confirmed, the output value of asset 2. + + This is the note that will be minted by the SwapClaim action. + Note that unlike the `Visible` variant, this is only a `ValueView` since + the details of the note (in particular the claim address) are not publicly known. */ + bool has_output_2_value; + penumbra_core_asset_v1_ValueView output_2_value; + /* Optionally, metadata about asset 1 in the `swap`'s trading pair. */ + bool has_asset_1_metadata; + penumbra_core_asset_v1_Metadata asset_1_metadata; + /* Optionally, metadata about asset 2 in the `swap`'s trading pair. */ + bool has_asset_2_metadata; + penumbra_core_asset_v1_Metadata asset_2_metadata; +} penumbra_core_component_dex_v1_SwapView_Opaque; + +typedef struct _penumbra_core_component_dex_v1_SwapView { + pb_size_t which_swap_view; + union { + penumbra_core_component_dex_v1_SwapView_Visible visible; + penumbra_core_component_dex_v1_SwapView_Opaque opaque; + } swap_view; +} penumbra_core_component_dex_v1_SwapView; + +typedef struct _penumbra_core_component_dex_v1_SwapClaimView_Visible { + bool has_swap_claim; + penumbra_core_component_dex_v1_SwapClaim swap_claim; + bool has_output_1; + penumbra_core_component_shielded_pool_v1_NoteView output_1; + bool has_output_2; + penumbra_core_component_shielded_pool_v1_NoteView output_2; + /* Optionally, a transaction hash for the transaction that created the swap + this action claims. + + This field allows frontends to more easily crossreference the sequence of + Swap/SwapClaim actions. */ + bool has_swap_tx; + penumbra_core_txhash_v1_TransactionId swap_tx; +} penumbra_core_component_dex_v1_SwapClaimView_Visible; + +typedef struct _penumbra_core_component_dex_v1_SwapClaimView_Opaque { + bool has_swap_claim; + penumbra_core_component_dex_v1_SwapClaim swap_claim; +} penumbra_core_component_dex_v1_SwapClaimView_Opaque; + +typedef struct _penumbra_core_component_dex_v1_SwapClaimView { + pb_size_t which_swap_claim_view; + union { + penumbra_core_component_dex_v1_SwapClaimView_Visible visible; + penumbra_core_component_dex_v1_SwapClaimView_Opaque opaque; + } swap_claim_view; +} penumbra_core_component_dex_v1_SwapClaimView; + +/* The minimum amount of data describing a trading function. + + This implicitly treats the trading function as being between assets 1 and 2, + without specifying what those assets are, to avoid duplicating data (each + asset ID alone is twice the size of the trading function). */ +typedef struct _penumbra_core_component_dex_v1_BareTradingFunction { + uint32_t fee; + /* This is not actually an amount, it's an integer the same width as an amount */ + bool has_p; + penumbra_core_num_v1_Amount p; + /* This is not actually an amount, it's an integer the same width as an amount */ + bool has_q; + penumbra_core_num_v1_Amount q; +} penumbra_core_component_dex_v1_BareTradingFunction; + +/* The trading function for a specific pair. + For a pair (asset_1, asset_2), a trading function is defined by: + `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. + The trading function is frequently referred to as "phi". */ +typedef struct _penumbra_core_component_dex_v1_TradingFunction { + bool has_component; + penumbra_core_component_dex_v1_BareTradingFunction component; + bool has_pair; + penumbra_core_component_dex_v1_TradingPair pair; +} penumbra_core_component_dex_v1_TradingFunction; + +/* The reserves of a position. + + Like a position, this implicitly treats the trading function as being + between assets 1 and 2, without specifying what those assets are, to avoid + duplicating data (each asset ID alone is four times the size of the + reserves). */ +typedef struct _penumbra_core_component_dex_v1_Reserves { + bool has_r1; + penumbra_core_num_v1_Amount r1; + bool has_r2; + penumbra_core_num_v1_Amount r2; +} penumbra_core_component_dex_v1_Reserves; + +/* A hash of a `Position`. */ +typedef struct _penumbra_core_component_dex_v1_PositionId { + /* The bytes of the position ID. */ + pb_callback_t inner; + /* Alternatively, a Bech32m-encoded string representation of the `inner` + bytes. + + NOTE: implementations are not required to support parsing this field. + Implementations should prefer to encode the bytes in all messages they + produce. Implementations must not accept messages with both `inner` and + `alt_bech32m` set. */ + pb_callback_t alt_bech32m; +} penumbra_core_component_dex_v1_PositionId; + +/* The state of a position. */ +typedef struct _penumbra_core_component_dex_v1_PositionState { + penumbra_core_component_dex_v1_PositionState_PositionStateEnum state; + /* Only meaningful if `state` is `POSITION_STATE_ENUM_WITHDRAWN`. + + The sequence number allows multiple withdrawals from the same position. */ + uint64_t sequence; +} penumbra_core_component_dex_v1_PositionState; + +/* Data identifying a position. */ +typedef struct _penumbra_core_component_dex_v1_Position { + bool has_phi; + penumbra_core_component_dex_v1_TradingFunction phi; + /* A random value used to disambiguate different positions with the exact same + trading function. The chain should reject newly created positions with the + same nonce as an existing position. This ensures that `PositionId`s will + be unique, and allows us to track position ownership with a + sequence of stateful NFTs based on the `PositionId`. */ + pb_callback_t nonce; + bool has_state; + penumbra_core_component_dex_v1_PositionState state; + bool has_reserves; + penumbra_core_component_dex_v1_Reserves reserves; + /* / If set to true, the position is a limit-order and will be closed +/ immediately after being filled. */ + bool close_on_fill; +} penumbra_core_component_dex_v1_Position; + +/* An LPNFT tracking both ownership and state of a position. + + Tracking the state as part of the LPNFT means that all LP-related actions can + be authorized by spending funds: a state transition (e.g., closing a + position) is modeled as spending an "open position LPNFT" and minting a + "closed position LPNFT" for the same (globally unique) position ID. + + This means that the LP mechanics can be agnostic to the mechanism used to + record custody and spend authorization. For instance, they can be recorded + in the shielded pool, where custody is based on off-chain keys, or they could + be recorded in a programmatic on-chain account (in the future, e.g., to + support interchain accounts). This also means that LP-related actions don't + require any cryptographic implementation (proofs, signatures, etc), other + than hooking into the value commitment mechanism used for transaction + balances. */ +typedef struct _penumbra_core_component_dex_v1_LpNft { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + bool has_state; + penumbra_core_component_dex_v1_PositionState state; +} penumbra_core_component_dex_v1_LpNft; + +/* A transaction action that opens a new position. + + This action's contribution to the transaction's value balance is to consume + the initial reserves and contribute an opened position NFT. */ +typedef struct _penumbra_core_component_dex_v1_PositionOpen { + /* Contains the data defining the position, sufficient to compute its `PositionId`. + + Positions are immutable, so the `PositionData` (and hence the `PositionId`) + are unchanged over the entire lifetime of the position. */ + bool has_position; + penumbra_core_component_dex_v1_Position position; +} penumbra_core_component_dex_v1_PositionOpen; + +/* A transaction action that closes a position. + + This action's contribution to the transaction's value balance is to consume + an opened position NFT and contribute a closed position NFT. + + Closing a position does not immediately withdraw funds, because Penumbra + transactions (like any ZK transaction model) are early-binding: the prover + must know the state transition they prove knowledge of, and they cannot know + the final reserves with certainty until after the position has been deactivated. */ +typedef struct _penumbra_core_component_dex_v1_PositionClose { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_core_component_dex_v1_PositionClose; + +/* A transaction action that withdraws funds from a closed position. + + This action's contribution to the transaction's value balance is to consume a + closed position NFT and contribute a withdrawn position NFT, as well as all + of the funds that were in the position at the time of closing. */ +typedef struct _penumbra_core_component_dex_v1_PositionWithdraw { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + /* A transparent (zero blinding factor) commitment to the position's final reserves and fees. + + The chain will check this commitment by recomputing it with the on-chain state. */ + bool has_reserves_commitment; + penumbra_core_asset_v1_BalanceCommitment reserves_commitment; + /* The sequence number of the withdrawal. + + This allows multiple withdrawals from the same position, rather than a single reward claim. */ + uint64_t sequence; +} penumbra_core_component_dex_v1_PositionWithdraw; + +/* Deprecated. */ +typedef struct _penumbra_core_component_dex_v1_PositionRewardClaim { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + bool has_rewards_commitment; + penumbra_core_asset_v1_BalanceCommitment rewards_commitment; +} penumbra_core_component_dex_v1_PositionRewardClaim; + +/* Contains the entire execution of a particular swap. */ +typedef struct _penumbra_core_component_dex_v1_SwapExecution { + pb_callback_t traces; + /* The total input amount for this execution. */ + bool has_input; + penumbra_core_asset_v1_Value input; + /* The total output amount for this execution. */ + bool has_output; + penumbra_core_asset_v1_Value output; +} penumbra_core_component_dex_v1_SwapExecution; + +/* Contains all individual steps consisting of a trade trace. */ +typedef struct _penumbra_core_component_dex_v1_SwapExecution_Trace { + /* Each step in the trade trace. */ + pb_callback_t value; +} penumbra_core_component_dex_v1_SwapExecution_Trace; + +/* Contains private and public data for withdrawing funds from a closed position. */ +typedef struct _penumbra_core_component_dex_v1_PositionWithdrawPlan { + bool has_reserves; + penumbra_core_component_dex_v1_Reserves reserves; + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + bool has_pair; + penumbra_core_component_dex_v1_TradingPair pair; + /* The sequence number of the withdrawal. */ + uint64_t sequence; + /* Any accumulated rewards assigned to this position. */ + pb_callback_t rewards; +} penumbra_core_component_dex_v1_PositionWithdrawPlan; + +/* Deprecated. */ +typedef struct _penumbra_core_component_dex_v1_PositionRewardClaimPlan { + bool has_reserves; + penumbra_core_component_dex_v1_Reserves reserves; +} penumbra_core_component_dex_v1_PositionRewardClaimPlan; + +/* Requests batch swap data associated with a given height and trading pair from the view service. */ +typedef struct _penumbra_core_component_dex_v1_BatchSwapOutputDataRequest { + uint64_t height; + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; +} penumbra_core_component_dex_v1_BatchSwapOutputDataRequest; + +typedef struct _penumbra_core_component_dex_v1_BatchSwapOutputDataResponse { + bool has_data; + penumbra_core_component_dex_v1_BatchSwapOutputData data; +} penumbra_core_component_dex_v1_BatchSwapOutputDataResponse; + +typedef struct _penumbra_core_component_dex_v1_SwapExecutionRequest { + uint64_t height; + bool has_trading_pair; + penumbra_core_component_dex_v1_DirectedTradingPair trading_pair; +} penumbra_core_component_dex_v1_SwapExecutionRequest; + +typedef struct _penumbra_core_component_dex_v1_SwapExecutionResponse { + bool has_swap_execution; + penumbra_core_component_dex_v1_SwapExecution swap_execution; +} penumbra_core_component_dex_v1_SwapExecutionResponse; + +typedef struct _penumbra_core_component_dex_v1_ArbExecutionRequest { + uint64_t height; +} penumbra_core_component_dex_v1_ArbExecutionRequest; + +typedef struct _penumbra_core_component_dex_v1_ArbExecutionResponse { + bool has_swap_execution; + penumbra_core_component_dex_v1_SwapExecution swap_execution; + uint64_t height; +} penumbra_core_component_dex_v1_ArbExecutionResponse; + +typedef struct _penumbra_core_component_dex_v1_SwapExecutionsRequest { + /* If present, only return swap executions occurring after the given height. */ + uint64_t start_height; + /* If present, only return swap executions occurring before the given height. */ + uint64_t end_height; + /* If present, filter swap executions by the given trading pair. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_DirectedTradingPair trading_pair; +} penumbra_core_component_dex_v1_SwapExecutionsRequest; + +typedef struct _penumbra_core_component_dex_v1_SwapExecutionsResponse { + bool has_swap_execution; + penumbra_core_component_dex_v1_SwapExecution swap_execution; + uint64_t height; + bool has_trading_pair; + penumbra_core_component_dex_v1_DirectedTradingPair trading_pair; +} penumbra_core_component_dex_v1_SwapExecutionsResponse; + +typedef struct _penumbra_core_component_dex_v1_ArbExecutionsRequest { + /* If present, only return arb executions occurring after the given height. */ + uint64_t start_height; + /* If present, only return arb executions occurring before the given height. */ + uint64_t end_height; +} penumbra_core_component_dex_v1_ArbExecutionsRequest; + +typedef struct _penumbra_core_component_dex_v1_ArbExecutionsResponse { + bool has_swap_execution; + penumbra_core_component_dex_v1_SwapExecution swap_execution; + uint64_t height; +} penumbra_core_component_dex_v1_ArbExecutionsResponse; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsRequest { + /* If true, include closed and withdrawn positions. */ + bool include_closed; +} penumbra_core_component_dex_v1_LiquidityPositionsRequest; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsResponse { + bool has_data; + penumbra_core_component_dex_v1_Position data; +} penumbra_core_component_dex_v1_LiquidityPositionsResponse; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionByIdRequest { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_core_component_dex_v1_LiquidityPositionByIdRequest; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionByIdResponse { + bool has_data; + penumbra_core_component_dex_v1_Position data; +} penumbra_core_component_dex_v1_LiquidityPositionByIdResponse; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest { + pb_callback_t position_id; +} penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse { + bool has_data; + penumbra_core_component_dex_v1_Position data; +} penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest { + /* The directed trading pair to request positions for */ + bool has_trading_pair; + penumbra_core_component_dex_v1_DirectedTradingPair trading_pair; + /* The maximum number of positions to return. */ + uint64_t limit; +} penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest; + +typedef struct _penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse { + bool has_data; + penumbra_core_component_dex_v1_Position data; + bool has_id; + penumbra_core_component_dex_v1_PositionId id; +} penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse; + +typedef struct _penumbra_core_component_dex_v1_SpreadRequest { + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; +} penumbra_core_component_dex_v1_SpreadRequest; + +typedef struct _penumbra_core_component_dex_v1_SpreadResponse { + /* The best position when trading 1 => 2. */ + bool has_best_1_to_2_position; + penumbra_core_component_dex_v1_Position best_1_to_2_position; + /* The best position when trading 2 => 1. */ + bool has_best_2_to_1_position; + penumbra_core_component_dex_v1_Position best_2_to_1_position; + /* An approximation of the effective price when trading 1 => 2. */ + double approx_effective_price_1_to_2; + /* An approximation of the effective price when trading 2 => 1. */ + double approx_effective_price_2_to_1; +} penumbra_core_component_dex_v1_SpreadResponse; + +typedef struct _penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop { + char dummy_field; +} penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop; + +typedef struct _penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default { + char dummy_field; +} penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default; + +typedef struct _penumbra_core_component_dex_v1_SimulateTradeRequest_Routing { + pb_size_t which_setting; + union { + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default default_; + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop single_hop; + } setting; +} penumbra_core_component_dex_v1_SimulateTradeRequest_Routing; + +typedef struct _penumbra_core_component_dex_v1_SimulateTradeRequest { + bool has_input; + penumbra_core_asset_v1_Value input; + bool has_output; + penumbra_core_asset_v1_AssetId output; + bool has_routing; + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing routing; +} penumbra_core_component_dex_v1_SimulateTradeRequest; + +typedef struct _penumbra_core_component_dex_v1_SimulateTradeResponse { + bool has_output; + penumbra_core_component_dex_v1_SwapExecution output; + /* Estimated input amount that will not be swapped due to liquidity */ + bool has_unfilled; + penumbra_core_asset_v1_Value unfilled; +} penumbra_core_component_dex_v1_SimulateTradeResponse; + +typedef struct _penumbra_core_component_dex_v1_EventSwap { + /* The trading pair to swap. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The amount for asset 1. */ + bool has_delta_1_i; + penumbra_core_num_v1_Amount delta_1_i; + /* The amount for asset 2. */ + bool has_delta_2_i; + penumbra_core_num_v1_Amount delta_2_i; + /* The swap commitment. */ + bool has_swap_commitment; + penumbra_crypto_tct_v1_StateCommitment swap_commitment; +} penumbra_core_component_dex_v1_EventSwap; + +typedef struct _penumbra_core_component_dex_v1_EventSwapClaim { + /* The trading pair that is subject of the swap claim. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* Note commitment for the first asset. */ + bool has_output_1_commitment; + penumbra_crypto_tct_v1_StateCommitment output_1_commitment; + /* Note commitment for the second asset. */ + bool has_output_2_commitment; + penumbra_crypto_tct_v1_StateCommitment output_2_commitment; + /* The nullifier for the swap commitment. */ + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; +} penumbra_core_component_dex_v1_EventSwapClaim; + +typedef struct _penumbra_core_component_dex_v1_EventPositionOpen { + /* Position ID. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + /* The trading pair to open. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The amount for asset 1. */ + bool has_reserves_1; + penumbra_core_num_v1_Amount reserves_1; + /* The amount for asset 2. */ + bool has_reserves_2; + penumbra_core_num_v1_Amount reserves_2; + /* The trading fee for the position, expressed in basis points. + e.g. 2% fee is expressed as 200, 100% fee is expressed as 10000; */ + uint32_t trading_fee; + /* The full position. + + This is somewhat redundant, but contains any information not present above. */ + bool has_position; + penumbra_core_component_dex_v1_Position position; +} penumbra_core_component_dex_v1_EventPositionOpen; + +typedef struct _penumbra_core_component_dex_v1_EventPositionClose { + /* The ID of the closed position */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_core_component_dex_v1_EventPositionClose; + +typedef struct _penumbra_core_component_dex_v1_EventQueuePositionClose { + /* The ID of the position queued that is closed for closure. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_core_component_dex_v1_EventQueuePositionClose; + +typedef struct _penumbra_core_component_dex_v1_EventPositionWithdraw { + /* The ID of the withdrawn position. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + /* The trading pair of the withdrawn position. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The reserves of asset 1 of the withdrawn position. */ + bool has_reserves_1; + penumbra_core_num_v1_Amount reserves_1; + /* The reserves of asset 2 of the withdrawn position. */ + bool has_reserves_2; + penumbra_core_num_v1_Amount reserves_2; + /* The sequence number of the withdrawal. */ + uint64_t sequence; +} penumbra_core_component_dex_v1_EventPositionWithdraw; + +typedef struct _penumbra_core_component_dex_v1_EventPositionExecution { + /* The ID of the position executed against. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + /* The trading pair of the position executed against. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; + /* The reserves of asset 1 of the position after execution. */ + bool has_reserves_1; + penumbra_core_num_v1_Amount reserves_1; + /* The reserves of asset 2 of the position after execution. */ + bool has_reserves_2; + penumbra_core_num_v1_Amount reserves_2; + /* The reserves of asset 1 of the position before execution. */ + bool has_prev_reserves_1; + penumbra_core_num_v1_Amount prev_reserves_1; + /* The reserves of asset 2 of the position before execution. */ + bool has_prev_reserves_2; + penumbra_core_num_v1_Amount prev_reserves_2; + /* Context: the end-to-end route that was being traversed during execution. */ + bool has_context; + penumbra_core_component_dex_v1_DirectedTradingPair context; +} penumbra_core_component_dex_v1_EventPositionExecution; + +typedef struct _penumbra_core_component_dex_v1_EventBatchSwap { + /* The BatchSwapOutputData containing the results of the batch swap. */ + bool has_batch_swap_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData batch_swap_output_data; + /* The record of execution for the batch swap in the 1 -> 2 direction. */ + bool has_swap_execution_1_for_2; + penumbra_core_component_dex_v1_SwapExecution swap_execution_1_for_2; + /* The record of execution for the batch swap in the 2 -> 1 direction. */ + bool has_swap_execution_2_for_1; + penumbra_core_component_dex_v1_SwapExecution swap_execution_2_for_1; +} penumbra_core_component_dex_v1_EventBatchSwap; + +typedef struct _penumbra_core_component_dex_v1_EventArbExecution { + /* The height at which the arb execution occurred. */ + uint64_t height; + /* The record of execution for the arb execution. */ + bool has_swap_execution; + penumbra_core_component_dex_v1_SwapExecution swap_execution; +} penumbra_core_component_dex_v1_EventArbExecution; + +/* Indicates that value was added to the DEX. */ +typedef struct _penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit { + /* The asset ID being deposited into the DEX. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + /* The previous balance of the asset in the DEX. */ + bool has_previous_balance; + penumbra_core_num_v1_Amount previous_balance; + /* The new balance of the asset in the DEX. */ + bool has_new_balance; + penumbra_core_num_v1_Amount new_balance; +} penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit; + +/* Indicates that value is leaving the DEX. */ +typedef struct _penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit { + /* The asset ID being deposited into the DEX. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + /* The previous balance of the asset in the DEX. */ + bool has_previous_balance; + penumbra_core_num_v1_Amount previous_balance; + /* The new balance of the asset in the DEX. */ + bool has_new_balance; + penumbra_core_num_v1_Amount new_balance; +} penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit; + +typedef struct _penumbra_core_component_dex_v1_DexParameters { + /* Whether or not the DEX is enabled. */ + bool is_enabled; + /* The list of fixed candidates for routing. */ + pb_callback_t fixed_candidates; + /* The number of hops to traverse while routing from A to B. */ + uint32_t max_hops; + /* The maximum number of positions per trading pair. + If this number is exceeded, positions with the least + inventory get evicted from the DEX. */ + uint32_t max_positions_per_pair; + /* The maximum number of routing and execution steps to be performed + for a single pair */ + uint32_t max_execution_budget; +} penumbra_core_component_dex_v1_DexParameters; + +typedef struct _penumbra_core_component_dex_v1_GenesisContent { + /* The initial parameters for the DEX. */ + bool has_dex_params; + penumbra_core_component_dex_v1_DexParameters dex_params; +} penumbra_core_component_dex_v1_GenesisContent; + +typedef struct _penumbra_core_component_dex_v1_CandlestickData { + /* The height of the candlestick data. */ + uint64_t height; + /* The first observed price during the block execution. */ + double open; + /* The last observed price during the block execution. */ + double close; + /* The highest observed price during the block execution. */ + double high; + /* The lowest observed price during the block execution. */ + double low; + /* The volume that traded "directly", during individual position executions. */ + double direct_volume; + /* The volume that traded as part of swaps, which could have traversed multiple routes. */ + double swap_volume; +} penumbra_core_component_dex_v1_CandlestickData; + +typedef struct _penumbra_core_component_dex_v1_CandlestickDataRequest { + /* The directed trading pair to request candlestick data for. + + NOTE: the returned data will only have trades from the SOURCE asset to the + DEST asset, not the other direction. Make another request if you want both + sets of data. */ + bool has_pair; + penumbra_core_component_dex_v1_DirectedTradingPair pair; + /* The maximum number of candlestick data points to return. + + The server may clamp this limit to a maximum value. */ + uint64_t limit; + /* The height to start the query from. + + If this is unset (= 0), the server will return the most recent data points. */ + uint64_t start_height; +} penumbra_core_component_dex_v1_CandlestickDataRequest; + +typedef struct _penumbra_core_component_dex_v1_CandlestickDataResponse { + /* The candlestick data points. */ + pb_callback_t data; +} penumbra_core_component_dex_v1_CandlestickDataResponse; + +typedef struct _penumbra_core_component_dex_v1_CandlestickDataStreamRequest { + /* The directed trading pair to subscribe to. */ + bool has_pair; + penumbra_core_component_dex_v1_DirectedTradingPair pair; +} penumbra_core_component_dex_v1_CandlestickDataStreamRequest; + +typedef struct _penumbra_core_component_dex_v1_CandlestickDataStreamResponse { + /* The candlestick data point. */ + bool has_data; + penumbra_core_component_dex_v1_CandlestickData data; +} penumbra_core_component_dex_v1_CandlestickDataStreamResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_core_component_dex_v1_PositionState_PositionStateEnum_MIN \ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_UNSPECIFIED +#define _penumbra_core_component_dex_v1_PositionState_PositionStateEnum_MAX \ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_CLAIMED +#define _penumbra_core_component_dex_v1_PositionState_PositionStateEnum_ARRAYSIZE \ + ((penumbra_core_component_dex_v1_PositionState_PositionStateEnum)(penumbra_core_component_dex_v1_PositionState_PositionStateEnum_POSITION_STATE_ENUM_CLAIMED + \ + 1)) + +#define penumbra_core_component_dex_v1_PositionState_state_ENUMTYPE \ + penumbra_core_component_dex_v1_PositionState_PositionStateEnum + +/* Initializer values for message structs */ +#define penumbra_core_component_dex_v1_ZKSwapProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_Swap_init_default \ + { \ + false, penumbra_core_component_dex_v1_ZKSwapProof_init_default, false, \ + penumbra_core_component_dex_v1_SwapBody_init_default \ + } +#define penumbra_core_component_dex_v1_SwapClaim_init_default \ + { \ + false, penumbra_core_component_dex_v1_ZKSwapClaimProof_init_default, false, \ + penumbra_core_component_dex_v1_SwapClaimBody_init_default, 0 \ + } +#define penumbra_core_component_dex_v1_SwapClaimBody_init_default \ + { \ + false, penumbra_core_component_sct_v1_Nullifier_init_default, false, \ + penumbra_core_component_fee_v1_Fee_init_default, false, penumbra_crypto_tct_v1_StateCommitment_init_default, \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_default \ + } +#define penumbra_core_component_dex_v1_SwapBody_init_default \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_BalanceCommitment_init_default, \ + false, penumbra_core_component_dex_v1_SwapPayload_init_default \ + } +#define penumbra_core_component_dex_v1_SwapPayload_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_SwapPlaintext_init_default \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_component_fee_v1_Fee_init_default, false, \ + penumbra_core_keys_v1_Address_init_default, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_SwapPlan_init_default \ + { \ + false, penumbra_core_component_dex_v1_SwapPlaintext_init_default, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_SwapClaimPlan_init_default \ + { \ + false, penumbra_core_component_dex_v1_SwapPlaintext_init_default, 0, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_default, 0, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_SwapView_init_default \ + { \ + 0, { penumbra_core_component_dex_v1_SwapView_Visible_init_default } \ + } +#define penumbra_core_component_dex_v1_SwapView_Visible_init_default \ + { \ + false, penumbra_core_component_dex_v1_Swap_init_default, false, \ + penumbra_core_component_dex_v1_SwapPlaintext_init_default, false, \ + penumbra_core_txhash_v1_TransactionId_init_default, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default, false, \ + penumbra_core_asset_v1_Metadata_init_default, false, penumbra_core_asset_v1_Metadata_init_default \ + } +#define penumbra_core_component_dex_v1_SwapView_Opaque_init_default \ + { \ + false, penumbra_core_component_dex_v1_Swap_init_default, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_default, false, \ + penumbra_core_asset_v1_ValueView_init_default, false, penumbra_core_asset_v1_ValueView_init_default, false, \ + penumbra_core_asset_v1_Metadata_init_default, false, penumbra_core_asset_v1_Metadata_init_default \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_init_default \ + { \ + 0, { penumbra_core_component_dex_v1_SwapClaimView_Visible_init_default } \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_init_default \ + { \ + false, penumbra_core_component_dex_v1_SwapClaim_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default, false, \ + penumbra_core_txhash_v1_TransactionId_init_default \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_init_default \ + { false, penumbra_core_component_dex_v1_SwapClaim_init_default } +#define penumbra_core_component_dex_v1_TradingPair_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_component_dex_v1_DirectedTradingPair_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_component_dex_v1_BatchSwapOutputData_init_default \ + { \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default, 0, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default, 0, 0 \ + } +#define penumbra_core_component_dex_v1_TradingFunction_init_default \ + { \ + false, penumbra_core_component_dex_v1_BareTradingFunction_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default \ + } +#define penumbra_core_component_dex_v1_BareTradingFunction_init_default \ + { 0, false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_dex_v1_Reserves_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_dex_v1_Position_init_default \ + { \ + false, penumbra_core_component_dex_v1_TradingFunction_init_default, {{NULL}, NULL}, false, \ + penumbra_core_component_dex_v1_PositionState_init_default, false, \ + penumbra_core_component_dex_v1_Reserves_init_default, 0 \ + } +#define penumbra_core_component_dex_v1_PositionId_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_PositionState_init_default \ + { _penumbra_core_component_dex_v1_PositionState_PositionStateEnum_MIN, 0 } +#define penumbra_core_component_dex_v1_LpNft_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_PositionState_init_default \ + } +#define penumbra_core_component_dex_v1_PositionOpen_init_default \ + { false, penumbra_core_component_dex_v1_Position_init_default } +#define penumbra_core_component_dex_v1_PositionClose_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_core_component_dex_v1_PositionWithdraw_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_default, 0 \ + } +#define penumbra_core_component_dex_v1_PositionRewardClaim_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_default \ + } +#define penumbra_core_component_dex_v1_SwapExecution_init_default \ + { {{NULL}, NULL}, false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_asset_v1_Value_init_default } +#define penumbra_core_component_dex_v1_SwapExecution_Trace_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_init_default \ + { \ + false, penumbra_core_component_dex_v1_Reserves_init_default, false, \ + penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_init_default \ + { false, penumbra_core_component_dex_v1_Reserves_init_default } +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_init_default \ + { 0, false, penumbra_core_component_dex_v1_TradingPair_init_default } +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_init_default \ + { false, penumbra_core_component_dex_v1_BatchSwapOutputData_init_default } +#define penumbra_core_component_dex_v1_SwapExecutionRequest_init_default \ + { 0, false, penumbra_core_component_dex_v1_DirectedTradingPair_init_default } +#define penumbra_core_component_dex_v1_SwapExecutionResponse_init_default \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_default } +#define penumbra_core_component_dex_v1_ArbExecutionRequest_init_default \ + { 0 } +#define penumbra_core_component_dex_v1_ArbExecutionResponse_init_default \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_default, 0 } +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_init_default \ + { 0, 0, false, penumbra_core_component_dex_v1_DirectedTradingPair_init_default } +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_init_default \ + { \ + false, penumbra_core_component_dex_v1_SwapExecution_init_default, 0, false, \ + penumbra_core_component_dex_v1_DirectedTradingPair_init_default \ + } +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_init_default \ + { 0, 0 } +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_init_default \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_default, 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_init_default \ + { 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_init_default \ + { false, penumbra_core_component_dex_v1_Position_init_default } +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_init_default \ + { false, penumbra_core_component_dex_v1_Position_init_default } +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_init_default \ + { false, penumbra_core_component_dex_v1_Position_init_default } +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_init_default \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_default, 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_init_default \ + { \ + false, penumbra_core_component_dex_v1_Position_init_default, false, \ + penumbra_core_component_dex_v1_PositionId_init_default \ + } +#define penumbra_core_component_dex_v1_SpreadRequest_init_default \ + { false, penumbra_core_component_dex_v1_TradingPair_init_default } +#define penumbra_core_component_dex_v1_SpreadResponse_init_default \ + { \ + false, penumbra_core_component_dex_v1_Position_init_default, false, \ + penumbra_core_component_dex_v1_Position_init_default, 0, 0 \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_init_default \ + { \ + false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_asset_v1_AssetId_init_default, false, \ + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_init_default \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_init_default \ + { \ + 0, { penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_init_default } \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_init_default \ + { 0 } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_init_default \ + { 0 } +#define penumbra_core_component_dex_v1_SimulateTradeResponse_init_default \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_default, false, penumbra_core_asset_v1_Value_init_default } +#define penumbra_core_component_dex_v1_EventSwap_init_default \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_crypto_tct_v1_StateCommitment_init_default \ + } +#define penumbra_core_component_dex_v1_EventSwapClaim_init_default \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_default, false, \ + penumbra_crypto_tct_v1_StateCommitment_init_default, false, \ + penumbra_crypto_tct_v1_StateCommitment_init_default, false, \ + penumbra_core_component_sct_v1_Nullifier_init_default \ + } +#define penumbra_core_component_dex_v1_EventPositionOpen_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, 0, false, penumbra_core_component_dex_v1_Position_init_default \ + } +#define penumbra_core_component_dex_v1_EventPositionClose_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_core_component_dex_v1_EventQueuePositionClose_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_core_component_dex_v1_EventPositionWithdraw_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, 0 \ + } +#define penumbra_core_component_dex_v1_EventPositionExecution_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_component_dex_v1_DirectedTradingPair_init_default \ + } +#define penumbra_core_component_dex_v1_EventBatchSwap_init_default \ + { \ + false, penumbra_core_component_dex_v1_BatchSwapOutputData_init_default, false, \ + penumbra_core_component_dex_v1_SwapExecution_init_default, false, \ + penumbra_core_component_dex_v1_SwapExecution_init_default \ + } +#define penumbra_core_component_dex_v1_EventArbExecution_init_default \ + { 0, false, penumbra_core_component_dex_v1_SwapExecution_init_default } +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_init_default \ + { \ + false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_init_default \ + { \ + false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_dex_v1_DexParameters_init_default \ + { 0, {{NULL}, NULL}, 0, 0, 0 } +#define penumbra_core_component_dex_v1_GenesisContent_init_default \ + { false, penumbra_core_component_dex_v1_DexParameters_init_default } +#define penumbra_core_component_dex_v1_CandlestickData_init_default \ + { 0, 0, 0, 0, 0, 0, 0 } +#define penumbra_core_component_dex_v1_CandlestickDataRequest_init_default \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_default, 0, 0 } +#define penumbra_core_component_dex_v1_CandlestickDataResponse_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_init_default \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_default } +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_init_default \ + { false, penumbra_core_component_dex_v1_CandlestickData_init_default } +#define penumbra_core_component_dex_v1_ZKSwapProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_Swap_init_zero \ + { false, penumbra_core_component_dex_v1_ZKSwapProof_init_zero, false, penumbra_core_component_dex_v1_SwapBody_init_zero } +#define penumbra_core_component_dex_v1_SwapClaim_init_zero \ + { \ + false, penumbra_core_component_dex_v1_ZKSwapClaimProof_init_zero, false, \ + penumbra_core_component_dex_v1_SwapClaimBody_init_zero, 0 \ + } +#define penumbra_core_component_dex_v1_SwapClaimBody_init_zero \ + { \ + false, penumbra_core_component_sct_v1_Nullifier_init_zero, false, penumbra_core_component_fee_v1_Fee_init_zero, \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, false, \ + penumbra_crypto_tct_v1_StateCommitment_init_zero, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero \ + } +#define penumbra_core_component_dex_v1_SwapBody_init_zero \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_BalanceCommitment_init_zero, false, \ + penumbra_core_component_dex_v1_SwapPayload_init_zero \ + } +#define penumbra_core_component_dex_v1_SwapPayload_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_SwapPlaintext_init_zero \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_component_fee_v1_Fee_init_zero, false, \ + penumbra_core_keys_v1_Address_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_SwapPlan_init_zero \ + { \ + false, penumbra_core_component_dex_v1_SwapPlaintext_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_SwapClaimPlan_init_zero \ + { \ + false, penumbra_core_component_dex_v1_SwapPlaintext_init_zero, 0, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero, 0, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_SwapView_init_zero \ + { \ + 0, { penumbra_core_component_dex_v1_SwapView_Visible_init_zero } \ + } +#define penumbra_core_component_dex_v1_SwapView_Visible_init_zero \ + { \ + false, penumbra_core_component_dex_v1_Swap_init_zero, false, \ + penumbra_core_component_dex_v1_SwapPlaintext_init_zero, false, penumbra_core_txhash_v1_TransactionId_init_zero, \ + false, penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero, false, penumbra_core_asset_v1_Metadata_init_zero, \ + false, penumbra_core_asset_v1_Metadata_init_zero \ + } +#define penumbra_core_component_dex_v1_SwapView_Opaque_init_zero \ + { \ + false, penumbra_core_component_dex_v1_Swap_init_zero, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero, false, \ + penumbra_core_asset_v1_ValueView_init_zero, false, penumbra_core_asset_v1_ValueView_init_zero, false, \ + penumbra_core_asset_v1_Metadata_init_zero, false, penumbra_core_asset_v1_Metadata_init_zero \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_init_zero \ + { \ + 0, { penumbra_core_component_dex_v1_SwapClaimView_Visible_init_zero } \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_init_zero \ + { \ + false, penumbra_core_component_dex_v1_SwapClaim_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero, false, \ + penumbra_core_txhash_v1_TransactionId_init_zero \ + } +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_init_zero \ + { false, penumbra_core_component_dex_v1_SwapClaim_init_zero } +#define penumbra_core_component_dex_v1_TradingPair_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_component_dex_v1_DirectedTradingPair_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero \ + { \ + false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero, 0, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero, 0, 0 \ + } +#define penumbra_core_component_dex_v1_TradingFunction_init_zero \ + { \ + false, penumbra_core_component_dex_v1_BareTradingFunction_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero \ + } +#define penumbra_core_component_dex_v1_BareTradingFunction_init_zero \ + { 0, false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_dex_v1_Reserves_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_dex_v1_Position_init_zero \ + { \ + false, penumbra_core_component_dex_v1_TradingFunction_init_zero, {{NULL}, NULL}, false, \ + penumbra_core_component_dex_v1_PositionState_init_zero, false, \ + penumbra_core_component_dex_v1_Reserves_init_zero, 0 \ + } +#define penumbra_core_component_dex_v1_PositionId_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_PositionState_init_zero \ + { _penumbra_core_component_dex_v1_PositionState_PositionStateEnum_MIN, 0 } +#define penumbra_core_component_dex_v1_LpNft_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_PositionState_init_zero \ + } +#define penumbra_core_component_dex_v1_PositionOpen_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero } +#define penumbra_core_component_dex_v1_PositionClose_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_core_component_dex_v1_PositionWithdraw_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_zero, 0 \ + } +#define penumbra_core_component_dex_v1_PositionRewardClaim_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero, false, penumbra_core_asset_v1_BalanceCommitment_init_zero } +#define penumbra_core_component_dex_v1_SwapExecution_init_zero \ + { {{NULL}, NULL}, false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_asset_v1_Value_init_zero } +#define penumbra_core_component_dex_v1_SwapExecution_Trace_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_init_zero \ + { \ + false, penumbra_core_component_dex_v1_Reserves_init_zero, false, \ + penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_init_zero \ + { false, penumbra_core_component_dex_v1_Reserves_init_zero } +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_init_zero \ + { 0, false, penumbra_core_component_dex_v1_TradingPair_init_zero } +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_init_zero \ + { false, penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero } +#define penumbra_core_component_dex_v1_SwapExecutionRequest_init_zero \ + { 0, false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero } +#define penumbra_core_component_dex_v1_SwapExecutionResponse_init_zero \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_zero } +#define penumbra_core_component_dex_v1_ArbExecutionRequest_init_zero \ + { 0 } +#define penumbra_core_component_dex_v1_ArbExecutionResponse_init_zero \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_zero, 0 } +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_init_zero \ + { 0, 0, false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero } +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_init_zero \ + { \ + false, penumbra_core_component_dex_v1_SwapExecution_init_zero, 0, false, \ + penumbra_core_component_dex_v1_DirectedTradingPair_init_zero \ + } +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_init_zero \ + { 0, 0 } +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_init_zero \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_zero, 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_init_zero \ + { 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero } +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero } +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero } +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_init_zero \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero, 0 } +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero, false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_core_component_dex_v1_SpreadRequest_init_zero \ + { false, penumbra_core_component_dex_v1_TradingPair_init_zero } +#define penumbra_core_component_dex_v1_SpreadResponse_init_zero \ + { \ + false, penumbra_core_component_dex_v1_Position_init_zero, false, penumbra_core_component_dex_v1_Position_init_zero, \ + 0, 0 \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_init_zero \ + { \ + false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero, false, \ + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_init_zero \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_init_zero \ + { \ + 0, { penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_init_zero } \ + } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_init_zero \ + { 0 } +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_init_zero \ + { 0 } +#define penumbra_core_component_dex_v1_SimulateTradeResponse_init_zero \ + { false, penumbra_core_component_dex_v1_SwapExecution_init_zero, false, penumbra_core_asset_v1_Value_init_zero } +#define penumbra_core_component_dex_v1_EventSwap_init_zero \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_crypto_tct_v1_StateCommitment_init_zero \ + } +#define penumbra_core_component_dex_v1_EventSwapClaim_init_zero \ + { \ + false, penumbra_core_component_dex_v1_TradingPair_init_zero, false, \ + penumbra_crypto_tct_v1_StateCommitment_init_zero, false, penumbra_crypto_tct_v1_StateCommitment_init_zero, \ + false, penumbra_core_component_sct_v1_Nullifier_init_zero \ + } +#define penumbra_core_component_dex_v1_EventPositionOpen_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, 0, false, penumbra_core_component_dex_v1_Position_init_zero \ + } +#define penumbra_core_component_dex_v1_EventPositionClose_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_core_component_dex_v1_EventQueuePositionClose_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_core_component_dex_v1_EventPositionWithdraw_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, 0 \ + } +#define penumbra_core_component_dex_v1_EventPositionExecution_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero \ + } +#define penumbra_core_component_dex_v1_EventBatchSwap_init_zero \ + { \ + false, penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero, false, \ + penumbra_core_component_dex_v1_SwapExecution_init_zero, false, \ + penumbra_core_component_dex_v1_SwapExecution_init_zero \ + } +#define penumbra_core_component_dex_v1_EventArbExecution_init_zero \ + { 0, false, penumbra_core_component_dex_v1_SwapExecution_init_zero } +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_init_zero \ + { \ + false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_init_zero \ + { \ + false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_dex_v1_DexParameters_init_zero \ + { 0, {{NULL}, NULL}, 0, 0, 0 } +#define penumbra_core_component_dex_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_dex_v1_DexParameters_init_zero } +#define penumbra_core_component_dex_v1_CandlestickData_init_zero \ + { 0, 0, 0, 0, 0, 0, 0 } +#define penumbra_core_component_dex_v1_CandlestickDataRequest_init_zero \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero, 0, 0 } +#define penumbra_core_component_dex_v1_CandlestickDataResponse_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_init_zero \ + { false, penumbra_core_component_dex_v1_DirectedTradingPair_init_zero } +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_init_zero \ + { false, penumbra_core_component_dex_v1_CandlestickData_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_dex_v1_ZKSwapProof_inner_tag 1 +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_inner_tag 1 +#define penumbra_core_component_dex_v1_SwapPayload_commitment_tag 1 +#define penumbra_core_component_dex_v1_SwapPayload_encrypted_swap_tag 2 +#define penumbra_core_component_dex_v1_TradingPair_asset_1_tag 1 +#define penumbra_core_component_dex_v1_TradingPair_asset_2_tag 2 +#define penumbra_core_component_dex_v1_SwapBody_trading_pair_tag 1 +#define penumbra_core_component_dex_v1_SwapBody_delta_1_i_tag 2 +#define penumbra_core_component_dex_v1_SwapBody_delta_2_i_tag 3 +#define penumbra_core_component_dex_v1_SwapBody_fee_commitment_tag 4 +#define penumbra_core_component_dex_v1_SwapBody_payload_tag 5 +#define penumbra_core_component_dex_v1_Swap_proof_tag 1 +#define penumbra_core_component_dex_v1_Swap_body_tag 4 +#define penumbra_core_component_dex_v1_SwapPlaintext_trading_pair_tag 1 +#define penumbra_core_component_dex_v1_SwapPlaintext_delta_1_i_tag 2 +#define penumbra_core_component_dex_v1_SwapPlaintext_delta_2_i_tag 3 +#define penumbra_core_component_dex_v1_SwapPlaintext_claim_fee_tag 4 +#define penumbra_core_component_dex_v1_SwapPlaintext_claim_address_tag 5 +#define penumbra_core_component_dex_v1_SwapPlaintext_rseed_tag 6 +#define penumbra_core_component_dex_v1_SwapPlan_swap_plaintext_tag 1 +#define penumbra_core_component_dex_v1_SwapPlan_fee_blinding_tag 2 +#define penumbra_core_component_dex_v1_SwapPlan_proof_blinding_r_tag 3 +#define penumbra_core_component_dex_v1_SwapPlan_proof_blinding_s_tag 4 +#define penumbra_core_component_dex_v1_DirectedTradingPair_start_tag 1 +#define penumbra_core_component_dex_v1_DirectedTradingPair_end_tag 2 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_delta_1_tag 1 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_delta_2_tag 2 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_lambda_1_tag 3 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_lambda_2_tag 4 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_unfilled_1_tag 5 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_unfilled_2_tag 6 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_height_tag 7 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_trading_pair_tag 8 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_epoch_starting_height_tag 9 +#define penumbra_core_component_dex_v1_BatchSwapOutputData_sct_position_prefix_tag 10 +#define penumbra_core_component_dex_v1_SwapClaimBody_nullifier_tag 1 +#define penumbra_core_component_dex_v1_SwapClaimBody_fee_tag 2 +#define penumbra_core_component_dex_v1_SwapClaimBody_output_1_commitment_tag 3 +#define penumbra_core_component_dex_v1_SwapClaimBody_output_2_commitment_tag 4 +#define penumbra_core_component_dex_v1_SwapClaimBody_output_data_tag 6 +#define penumbra_core_component_dex_v1_SwapClaim_proof_tag 1 +#define penumbra_core_component_dex_v1_SwapClaim_body_tag 2 +#define penumbra_core_component_dex_v1_SwapClaim_epoch_duration_tag 7 +#define penumbra_core_component_dex_v1_SwapClaimPlan_swap_plaintext_tag 1 +#define penumbra_core_component_dex_v1_SwapClaimPlan_position_tag 2 +#define penumbra_core_component_dex_v1_SwapClaimPlan_output_data_tag 3 +#define penumbra_core_component_dex_v1_SwapClaimPlan_epoch_duration_tag 4 +#define penumbra_core_component_dex_v1_SwapClaimPlan_proof_blinding_r_tag 5 +#define penumbra_core_component_dex_v1_SwapClaimPlan_proof_blinding_s_tag 6 +#define penumbra_core_component_dex_v1_SwapView_Visible_swap_tag 1 +#define penumbra_core_component_dex_v1_SwapView_Visible_swap_plaintext_tag 3 +#define penumbra_core_component_dex_v1_SwapView_Visible_claim_tx_tag 4 +#define penumbra_core_component_dex_v1_SwapView_Visible_batch_swap_output_data_tag 20 +#define penumbra_core_component_dex_v1_SwapView_Visible_output_1_tag 30 +#define penumbra_core_component_dex_v1_SwapView_Visible_output_2_tag 31 +#define penumbra_core_component_dex_v1_SwapView_Visible_asset_1_metadata_tag 40 +#define penumbra_core_component_dex_v1_SwapView_Visible_asset_2_metadata_tag 41 +#define penumbra_core_component_dex_v1_SwapView_Opaque_swap_tag 1 +#define penumbra_core_component_dex_v1_SwapView_Opaque_batch_swap_output_data_tag 20 +#define penumbra_core_component_dex_v1_SwapView_Opaque_output_1_value_tag 30 +#define penumbra_core_component_dex_v1_SwapView_Opaque_output_2_value_tag 31 +#define penumbra_core_component_dex_v1_SwapView_Opaque_asset_1_metadata_tag 40 +#define penumbra_core_component_dex_v1_SwapView_Opaque_asset_2_metadata_tag 41 +#define penumbra_core_component_dex_v1_SwapView_visible_tag 1 +#define penumbra_core_component_dex_v1_SwapView_opaque_tag 2 +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_swap_claim_tag 1 +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_output_1_tag 2 +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_output_2_tag 3 +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_swap_tx_tag 4 +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_swap_claim_tag 1 +#define penumbra_core_component_dex_v1_SwapClaimView_visible_tag 1 +#define penumbra_core_component_dex_v1_SwapClaimView_opaque_tag 2 +#define penumbra_core_component_dex_v1_BareTradingFunction_fee_tag 1 +#define penumbra_core_component_dex_v1_BareTradingFunction_p_tag 2 +#define penumbra_core_component_dex_v1_BareTradingFunction_q_tag 3 +#define penumbra_core_component_dex_v1_TradingFunction_component_tag 1 +#define penumbra_core_component_dex_v1_TradingFunction_pair_tag 2 +#define penumbra_core_component_dex_v1_Reserves_r1_tag 1 +#define penumbra_core_component_dex_v1_Reserves_r2_tag 2 +#define penumbra_core_component_dex_v1_PositionId_inner_tag 1 +#define penumbra_core_component_dex_v1_PositionId_alt_bech32m_tag 2 +#define penumbra_core_component_dex_v1_PositionState_state_tag 1 +#define penumbra_core_component_dex_v1_PositionState_sequence_tag 2 +#define penumbra_core_component_dex_v1_Position_phi_tag 1 +#define penumbra_core_component_dex_v1_Position_nonce_tag 2 +#define penumbra_core_component_dex_v1_Position_state_tag 3 +#define penumbra_core_component_dex_v1_Position_reserves_tag 4 +#define penumbra_core_component_dex_v1_Position_close_on_fill_tag 5 +#define penumbra_core_component_dex_v1_LpNft_position_id_tag 1 +#define penumbra_core_component_dex_v1_LpNft_state_tag 2 +#define penumbra_core_component_dex_v1_PositionOpen_position_tag 1 +#define penumbra_core_component_dex_v1_PositionClose_position_id_tag 1 +#define penumbra_core_component_dex_v1_PositionWithdraw_position_id_tag 1 +#define penumbra_core_component_dex_v1_PositionWithdraw_reserves_commitment_tag 2 +#define penumbra_core_component_dex_v1_PositionWithdraw_sequence_tag 3 +#define penumbra_core_component_dex_v1_PositionRewardClaim_position_id_tag 1 +#define penumbra_core_component_dex_v1_PositionRewardClaim_rewards_commitment_tag 2 +#define penumbra_core_component_dex_v1_SwapExecution_traces_tag 1 +#define penumbra_core_component_dex_v1_SwapExecution_input_tag 2 +#define penumbra_core_component_dex_v1_SwapExecution_output_tag 3 +#define penumbra_core_component_dex_v1_SwapExecution_Trace_value_tag 1 +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_reserves_tag 1 +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_position_id_tag 2 +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_pair_tag 3 +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_sequence_tag 4 +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_rewards_tag 5 +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_reserves_tag 1 +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_height_tag 2 +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_trading_pair_tag 3 +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_data_tag 1 +#define penumbra_core_component_dex_v1_SwapExecutionRequest_height_tag 2 +#define penumbra_core_component_dex_v1_SwapExecutionRequest_trading_pair_tag 3 +#define penumbra_core_component_dex_v1_SwapExecutionResponse_swap_execution_tag 1 +#define penumbra_core_component_dex_v1_ArbExecutionRequest_height_tag 2 +#define penumbra_core_component_dex_v1_ArbExecutionResponse_swap_execution_tag 1 +#define penumbra_core_component_dex_v1_ArbExecutionResponse_height_tag 2 +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_start_height_tag 2 +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_end_height_tag 3 +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_trading_pair_tag 4 +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_swap_execution_tag 1 +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_height_tag 2 +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_trading_pair_tag 3 +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_start_height_tag 2 +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_end_height_tag 3 +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_swap_execution_tag 1 +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_height_tag 2 +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_include_closed_tag 4 +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_data_tag 1 +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_position_id_tag 2 +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_data_tag 1 +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_position_id_tag 2 +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_data_tag 1 +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_trading_pair_tag 2 +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_limit_tag 5 +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_data_tag 1 +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_id_tag 2 +#define penumbra_core_component_dex_v1_SpreadRequest_trading_pair_tag 2 +#define penumbra_core_component_dex_v1_SpreadResponse_best_1_to_2_position_tag 1 +#define penumbra_core_component_dex_v1_SpreadResponse_best_2_to_1_position_tag 2 +#define penumbra_core_component_dex_v1_SpreadResponse_approx_effective_price_1_to_2_tag 3 +#define penumbra_core_component_dex_v1_SpreadResponse_approx_effective_price_2_to_1_tag 4 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_default__tag 1 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_single_hop_tag 2 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_input_tag 1 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_output_tag 2 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_routing_tag 3 +#define penumbra_core_component_dex_v1_SimulateTradeResponse_output_tag 1 +#define penumbra_core_component_dex_v1_SimulateTradeResponse_unfilled_tag 2 +#define penumbra_core_component_dex_v1_EventSwap_trading_pair_tag 1 +#define penumbra_core_component_dex_v1_EventSwap_delta_1_i_tag 2 +#define penumbra_core_component_dex_v1_EventSwap_delta_2_i_tag 3 +#define penumbra_core_component_dex_v1_EventSwap_swap_commitment_tag 4 +#define penumbra_core_component_dex_v1_EventSwapClaim_trading_pair_tag 1 +#define penumbra_core_component_dex_v1_EventSwapClaim_output_1_commitment_tag 2 +#define penumbra_core_component_dex_v1_EventSwapClaim_output_2_commitment_tag 3 +#define penumbra_core_component_dex_v1_EventSwapClaim_nullifier_tag 4 +#define penumbra_core_component_dex_v1_EventPositionOpen_position_id_tag 1 +#define penumbra_core_component_dex_v1_EventPositionOpen_trading_pair_tag 2 +#define penumbra_core_component_dex_v1_EventPositionOpen_reserves_1_tag 3 +#define penumbra_core_component_dex_v1_EventPositionOpen_reserves_2_tag 4 +#define penumbra_core_component_dex_v1_EventPositionOpen_trading_fee_tag 5 +#define penumbra_core_component_dex_v1_EventPositionOpen_position_tag 6 +#define penumbra_core_component_dex_v1_EventPositionClose_position_id_tag 1 +#define penumbra_core_component_dex_v1_EventQueuePositionClose_position_id_tag 1 +#define penumbra_core_component_dex_v1_EventPositionWithdraw_position_id_tag 1 +#define penumbra_core_component_dex_v1_EventPositionWithdraw_trading_pair_tag 2 +#define penumbra_core_component_dex_v1_EventPositionWithdraw_reserves_1_tag 3 +#define penumbra_core_component_dex_v1_EventPositionWithdraw_reserves_2_tag 4 +#define penumbra_core_component_dex_v1_EventPositionWithdraw_sequence_tag 5 +#define penumbra_core_component_dex_v1_EventPositionExecution_position_id_tag 1 +#define penumbra_core_component_dex_v1_EventPositionExecution_trading_pair_tag 2 +#define penumbra_core_component_dex_v1_EventPositionExecution_reserves_1_tag 3 +#define penumbra_core_component_dex_v1_EventPositionExecution_reserves_2_tag 4 +#define penumbra_core_component_dex_v1_EventPositionExecution_prev_reserves_1_tag 5 +#define penumbra_core_component_dex_v1_EventPositionExecution_prev_reserves_2_tag 6 +#define penumbra_core_component_dex_v1_EventPositionExecution_context_tag 7 +#define penumbra_core_component_dex_v1_EventBatchSwap_batch_swap_output_data_tag 1 +#define penumbra_core_component_dex_v1_EventBatchSwap_swap_execution_1_for_2_tag 2 +#define penumbra_core_component_dex_v1_EventBatchSwap_swap_execution_2_for_1_tag 3 +#define penumbra_core_component_dex_v1_EventArbExecution_height_tag 1 +#define penumbra_core_component_dex_v1_EventArbExecution_swap_execution_tag 2 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_asset_id_tag 1 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_previous_balance_tag 2 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_new_balance_tag 3 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_asset_id_tag 1 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_previous_balance_tag 2 +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_new_balance_tag 3 +#define penumbra_core_component_dex_v1_DexParameters_is_enabled_tag 1 +#define penumbra_core_component_dex_v1_DexParameters_fixed_candidates_tag 2 +#define penumbra_core_component_dex_v1_DexParameters_max_hops_tag 3 +#define penumbra_core_component_dex_v1_DexParameters_max_positions_per_pair_tag 4 +#define penumbra_core_component_dex_v1_DexParameters_max_execution_budget_tag 5 +#define penumbra_core_component_dex_v1_GenesisContent_dex_params_tag 1 +#define penumbra_core_component_dex_v1_CandlestickData_height_tag 1 +#define penumbra_core_component_dex_v1_CandlestickData_open_tag 2 +#define penumbra_core_component_dex_v1_CandlestickData_close_tag 3 +#define penumbra_core_component_dex_v1_CandlestickData_high_tag 4 +#define penumbra_core_component_dex_v1_CandlestickData_low_tag 5 +#define penumbra_core_component_dex_v1_CandlestickData_direct_volume_tag 6 +#define penumbra_core_component_dex_v1_CandlestickData_swap_volume_tag 7 +#define penumbra_core_component_dex_v1_CandlestickDataRequest_pair_tag 1 +#define penumbra_core_component_dex_v1_CandlestickDataRequest_limit_tag 2 +#define penumbra_core_component_dex_v1_CandlestickDataRequest_start_height_tag 3 +#define penumbra_core_component_dex_v1_CandlestickDataResponse_data_tag 1 +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_pair_tag 1 +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_data_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_dex_v1_ZKSwapProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_dex_v1_ZKSwapProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_ZKSwapProof_DEFAULT NULL + +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_DEFAULT NULL + +#define penumbra_core_component_dex_v1_Swap_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 4) +#define penumbra_core_component_dex_v1_Swap_CALLBACK NULL +#define penumbra_core_component_dex_v1_Swap_DEFAULT NULL +#define penumbra_core_component_dex_v1_Swap_proof_MSGTYPE penumbra_core_component_dex_v1_ZKSwapProof +#define penumbra_core_component_dex_v1_Swap_body_MSGTYPE penumbra_core_component_dex_v1_SwapBody + +#define penumbra_core_component_dex_v1_SwapClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 2) \ + X(a, STATIC, SINGULAR, UINT64, epoch_duration, 7) +#define penumbra_core_component_dex_v1_SwapClaim_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapClaim_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaim_proof_MSGTYPE penumbra_core_component_dex_v1_ZKSwapClaimProof +#define penumbra_core_component_dex_v1_SwapClaim_body_MSGTYPE penumbra_core_component_dex_v1_SwapClaimBody + +#define penumbra_core_component_dex_v1_SwapClaimBody_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_1_commitment, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_2_commitment, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_data, 6) +#define penumbra_core_component_dex_v1_SwapClaimBody_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapClaimBody_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaimBody_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_core_component_dex_v1_SwapClaimBody_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_dex_v1_SwapClaimBody_output_1_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_dex_v1_SwapClaimBody_output_2_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_dex_v1_SwapClaimBody_output_data_MSGTYPE penumbra_core_component_dex_v1_BatchSwapOutputData + +#define penumbra_core_component_dex_v1_SwapBody_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_1_i, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_2_i, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee_commitment, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, payload, 5) +#define penumbra_core_component_dex_v1_SwapBody_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapBody_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapBody_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_SwapBody_delta_1_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_SwapBody_delta_2_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_SwapBody_fee_commitment_MSGTYPE penumbra_core_asset_v1_BalanceCommitment +#define penumbra_core_component_dex_v1_SwapBody_payload_MSGTYPE penumbra_core_component_dex_v1_SwapPayload + +#define penumbra_core_component_dex_v1_SwapPayload_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, encrypted_swap, 2) +#define penumbra_core_component_dex_v1_SwapPayload_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapPayload_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapPayload_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_core_component_dex_v1_SwapPlaintext_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_1_i, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_2_i, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, claim_fee, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, claim_address, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, rseed, 6) +#define penumbra_core_component_dex_v1_SwapPlaintext_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapPlaintext_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapPlaintext_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_SwapPlaintext_delta_1_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_SwapPlaintext_delta_2_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_SwapPlaintext_claim_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_dex_v1_SwapPlaintext_claim_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_component_dex_v1_SwapPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_plaintext, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, fee_blinding, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 4) +#define penumbra_core_component_dex_v1_SwapPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapPlan_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapPlan_swap_plaintext_MSGTYPE penumbra_core_component_dex_v1_SwapPlaintext + +#define penumbra_core_component_dex_v1_SwapClaimPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_plaintext, 1) \ + X(a, STATIC, SINGULAR, UINT64, position, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_data, 3) \ + X(a, STATIC, SINGULAR, UINT64, epoch_duration, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 6) +#define penumbra_core_component_dex_v1_SwapClaimPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapClaimPlan_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaimPlan_swap_plaintext_MSGTYPE penumbra_core_component_dex_v1_SwapPlaintext +#define penumbra_core_component_dex_v1_SwapClaimPlan_output_data_MSGTYPE penumbra_core_component_dex_v1_BatchSwapOutputData + +#define penumbra_core_component_dex_v1_SwapView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (swap_view, visible, swap_view.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (swap_view, opaque, swap_view.opaque), 2) +#define penumbra_core_component_dex_v1_SwapView_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapView_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapView_swap_view_visible_MSGTYPE penumbra_core_component_dex_v1_SwapView_Visible +#define penumbra_core_component_dex_v1_SwapView_swap_view_opaque_MSGTYPE penumbra_core_component_dex_v1_SwapView_Opaque + +#define penumbra_core_component_dex_v1_SwapView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_plaintext, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, claim_tx, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, batch_swap_output_data, 20) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_1, 30) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_2, 31) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_1_metadata, 40) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_2_metadata, 41) +#define penumbra_core_component_dex_v1_SwapView_Visible_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapView_Visible_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapView_Visible_swap_MSGTYPE penumbra_core_component_dex_v1_Swap +#define penumbra_core_component_dex_v1_SwapView_Visible_swap_plaintext_MSGTYPE penumbra_core_component_dex_v1_SwapPlaintext +#define penumbra_core_component_dex_v1_SwapView_Visible_claim_tx_MSGTYPE penumbra_core_txhash_v1_TransactionId +#define penumbra_core_component_dex_v1_SwapView_Visible_batch_swap_output_data_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData +#define penumbra_core_component_dex_v1_SwapView_Visible_output_1_MSGTYPE penumbra_core_component_shielded_pool_v1_NoteView +#define penumbra_core_component_dex_v1_SwapView_Visible_output_2_MSGTYPE penumbra_core_component_shielded_pool_v1_NoteView +#define penumbra_core_component_dex_v1_SwapView_Visible_asset_1_metadata_MSGTYPE penumbra_core_asset_v1_Metadata +#define penumbra_core_component_dex_v1_SwapView_Visible_asset_2_metadata_MSGTYPE penumbra_core_asset_v1_Metadata + +#define penumbra_core_component_dex_v1_SwapView_Opaque_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, batch_swap_output_data, 20) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_1_value, 30) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_2_value, 31) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_1_metadata, 40) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_2_metadata, 41) +#define penumbra_core_component_dex_v1_SwapView_Opaque_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapView_Opaque_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapView_Opaque_swap_MSGTYPE penumbra_core_component_dex_v1_Swap +#define penumbra_core_component_dex_v1_SwapView_Opaque_batch_swap_output_data_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData +#define penumbra_core_component_dex_v1_SwapView_Opaque_output_1_value_MSGTYPE penumbra_core_asset_v1_ValueView +#define penumbra_core_component_dex_v1_SwapView_Opaque_output_2_value_MSGTYPE penumbra_core_asset_v1_ValueView +#define penumbra_core_component_dex_v1_SwapView_Opaque_asset_1_metadata_MSGTYPE penumbra_core_asset_v1_Metadata +#define penumbra_core_component_dex_v1_SwapView_Opaque_asset_2_metadata_MSGTYPE penumbra_core_asset_v1_Metadata + +#define penumbra_core_component_dex_v1_SwapClaimView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (swap_claim_view, visible, swap_claim_view.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (swap_claim_view, opaque, swap_claim_view.opaque), 2) +#define penumbra_core_component_dex_v1_SwapClaimView_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapClaimView_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaimView_swap_claim_view_visible_MSGTYPE \ + penumbra_core_component_dex_v1_SwapClaimView_Visible +#define penumbra_core_component_dex_v1_SwapClaimView_swap_claim_view_opaque_MSGTYPE \ + penumbra_core_component_dex_v1_SwapClaimView_Opaque + +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_claim, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_1, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_2, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_tx, 4) +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_swap_claim_MSGTYPE penumbra_core_component_dex_v1_SwapClaim +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_output_1_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteView +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_output_2_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteView +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_swap_tx_MSGTYPE penumbra_core_txhash_v1_TransactionId + +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, swap_claim, 1) +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_swap_claim_MSGTYPE penumbra_core_component_dex_v1_SwapClaim + +#define penumbra_core_component_dex_v1_TradingPair_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_1, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_2, 2) +#define penumbra_core_component_dex_v1_TradingPair_CALLBACK NULL +#define penumbra_core_component_dex_v1_TradingPair_DEFAULT NULL +#define penumbra_core_component_dex_v1_TradingPair_asset_1_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_dex_v1_TradingPair_asset_2_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_dex_v1_DirectedTradingPair_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, start, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, end, 2) +#define penumbra_core_component_dex_v1_DirectedTradingPair_CALLBACK NULL +#define penumbra_core_component_dex_v1_DirectedTradingPair_DEFAULT NULL +#define penumbra_core_component_dex_v1_DirectedTradingPair_start_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_dex_v1_DirectedTradingPair_end_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_dex_v1_BatchSwapOutputData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_1, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_2, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, lambda_1, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, lambda_2, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, unfilled_1, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, unfilled_2, 6) \ + X(a, STATIC, SINGULAR, UINT64, height, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 8) \ + X(a, STATIC, SINGULAR, UINT64, epoch_starting_height, 9) \ + X(a, STATIC, SINGULAR, UINT64, sct_position_prefix, 10) +#define penumbra_core_component_dex_v1_BatchSwapOutputData_CALLBACK NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputData_DEFAULT NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputData_delta_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_delta_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_lambda_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_lambda_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_unfilled_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_unfilled_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BatchSwapOutputData_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair + +#define penumbra_core_component_dex_v1_TradingFunction_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, component, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pair, 2) +#define penumbra_core_component_dex_v1_TradingFunction_CALLBACK NULL +#define penumbra_core_component_dex_v1_TradingFunction_DEFAULT NULL +#define penumbra_core_component_dex_v1_TradingFunction_component_MSGTYPE penumbra_core_component_dex_v1_BareTradingFunction +#define penumbra_core_component_dex_v1_TradingFunction_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair + +#define penumbra_core_component_dex_v1_BareTradingFunction_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, fee, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, p, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, q, 3) +#define penumbra_core_component_dex_v1_BareTradingFunction_CALLBACK NULL +#define penumbra_core_component_dex_v1_BareTradingFunction_DEFAULT NULL +#define penumbra_core_component_dex_v1_BareTradingFunction_p_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_BareTradingFunction_q_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_dex_v1_Reserves_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, r1, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, r2, 2) +#define penumbra_core_component_dex_v1_Reserves_CALLBACK NULL +#define penumbra_core_component_dex_v1_Reserves_DEFAULT NULL +#define penumbra_core_component_dex_v1_Reserves_r1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_Reserves_r2_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_dex_v1_Position_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, phi, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, nonce, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves, 4) \ + X(a, STATIC, SINGULAR, BOOL, close_on_fill, 5) +#define penumbra_core_component_dex_v1_Position_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_Position_DEFAULT NULL +#define penumbra_core_component_dex_v1_Position_phi_MSGTYPE penumbra_core_component_dex_v1_TradingFunction +#define penumbra_core_component_dex_v1_Position_state_MSGTYPE penumbra_core_component_dex_v1_PositionState +#define penumbra_core_component_dex_v1_Position_reserves_MSGTYPE penumbra_core_component_dex_v1_Reserves + +#define penumbra_core_component_dex_v1_PositionId_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, inner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, alt_bech32m, 2) +#define penumbra_core_component_dex_v1_PositionId_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_PositionId_DEFAULT NULL + +#define penumbra_core_component_dex_v1_PositionState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, state, 1) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 2) +#define penumbra_core_component_dex_v1_PositionState_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionState_DEFAULT NULL + +#define penumbra_core_component_dex_v1_LpNft_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) +#define penumbra_core_component_dex_v1_LpNft_CALLBACK NULL +#define penumbra_core_component_dex_v1_LpNft_DEFAULT NULL +#define penumbra_core_component_dex_v1_LpNft_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_LpNft_state_MSGTYPE penumbra_core_component_dex_v1_PositionState + +#define penumbra_core_component_dex_v1_PositionOpen_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, position, 1) +#define penumbra_core_component_dex_v1_PositionOpen_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionOpen_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionOpen_position_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_PositionClose_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) +#define penumbra_core_component_dex_v1_PositionClose_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionClose_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionClose_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_PositionWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_commitment, 2) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 3) +#define penumbra_core_component_dex_v1_PositionWithdraw_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionWithdraw_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionWithdraw_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_PositionWithdraw_reserves_commitment_MSGTYPE penumbra_core_asset_v1_BalanceCommitment + +#define penumbra_core_component_dex_v1_PositionRewardClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rewards_commitment, 2) +#define penumbra_core_component_dex_v1_PositionRewardClaim_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionRewardClaim_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionRewardClaim_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_PositionRewardClaim_rewards_commitment_MSGTYPE \ + penumbra_core_asset_v1_BalanceCommitment + +#define penumbra_core_component_dex_v1_SwapExecution_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, traces, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, input, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, output, 3) +#define penumbra_core_component_dex_v1_SwapExecution_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapExecution_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecution_traces_MSGTYPE penumbra_core_component_dex_v1_SwapExecution_Trace +#define penumbra_core_component_dex_v1_SwapExecution_input_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_dex_v1_SwapExecution_output_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_dex_v1_SwapExecution_Trace_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, value, 1) +#define penumbra_core_component_dex_v1_SwapExecution_Trace_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_SwapExecution_Trace_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecution_Trace_value_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, pair, 3) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, rewards, 5) +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_reserves_MSGTYPE penumbra_core_component_dex_v1_Reserves +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_rewards_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, reserves, 1) +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_CALLBACK NULL +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_DEFAULT NULL +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_reserves_MSGTYPE penumbra_core_component_dex_v1_Reserves + +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 3) +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_TradingPair + +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_data_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData + +#define penumbra_core_component_dex_v1_SwapExecutionRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 3) +#define penumbra_core_component_dex_v1_SwapExecutionRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapExecutionRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecutionRequest_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_SwapExecutionResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution, 1) +#define penumbra_core_component_dex_v1_SwapExecutionResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapExecutionResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecutionResponse_swap_execution_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution + +#define penumbra_core_component_dex_v1_ArbExecutionRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, height, 2) +#define penumbra_core_component_dex_v1_ArbExecutionRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_ArbExecutionRequest_DEFAULT NULL + +#define penumbra_core_component_dex_v1_ArbExecutionResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) +#define penumbra_core_component_dex_v1_ArbExecutionResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_ArbExecutionResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_ArbExecutionResponse_swap_execution_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution + +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 4) +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 3) +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_swap_execution_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 3) +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_DEFAULT NULL + +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_swap_execution_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution + +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, include_closed, 4) +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_DEFAULT NULL + +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_data_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 2) +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_position_id_MSGTYPE \ + penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_data_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, position_id, 2) +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_position_id_MSGTYPE \ + penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_data_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) \ + X(a, STATIC, SINGULAR, UINT64, limit, 5) +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 2) +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_data_MSGTYPE penumbra_core_component_dex_v1_Position +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_id_MSGTYPE penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_SpreadRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) +#define penumbra_core_component_dex_v1_SpreadRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_SpreadRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_SpreadRequest_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair + +#define penumbra_core_component_dex_v1_SpreadResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, best_1_to_2_position, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, best_2_to_1_position, 2) \ + X(a, STATIC, SINGULAR, DOUBLE, approx_effective_price_1_to_2, 3) \ + X(a, STATIC, SINGULAR, DOUBLE, approx_effective_price_2_to_1, 4) +#define penumbra_core_component_dex_v1_SpreadResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_SpreadResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_SpreadResponse_best_1_to_2_position_MSGTYPE penumbra_core_component_dex_v1_Position +#define penumbra_core_component_dex_v1_SpreadResponse_best_2_to_1_position_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, input, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, output, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, routing, 3) +#define penumbra_core_component_dex_v1_SimulateTradeRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_input_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_dex_v1_SimulateTradeRequest_output_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_dex_v1_SimulateTradeRequest_routing_MSGTYPE \ + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (setting, default_, setting.default_), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (setting, single_hop, setting.single_hop), 2) +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_CALLBACK NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_DEFAULT NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_setting_default__MSGTYPE \ + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_setting_single_hop_MSGTYPE \ + penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_FIELDLIST(X, a) + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_CALLBACK NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_DEFAULT NULL + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_FIELDLIST(X, a) + +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_CALLBACK NULL +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_DEFAULT NULL + +#define penumbra_core_component_dex_v1_SimulateTradeResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, output, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, unfilled, 2) +#define penumbra_core_component_dex_v1_SimulateTradeResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_SimulateTradeResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_SimulateTradeResponse_output_MSGTYPE penumbra_core_component_dex_v1_SwapExecution +#define penumbra_core_component_dex_v1_SimulateTradeResponse_unfilled_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_dex_v1_EventSwap_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_1_i, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, delta_2_i, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_commitment, 4) +#define penumbra_core_component_dex_v1_EventSwap_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventSwap_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventSwap_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_EventSwap_delta_1_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventSwap_delta_2_i_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventSwap_swap_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_core_component_dex_v1_EventSwapClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_1_commitment, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_2_commitment, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 4) +#define penumbra_core_component_dex_v1_EventSwapClaim_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventSwapClaim_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventSwapClaim_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_EventSwapClaim_output_1_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_dex_v1_EventSwapClaim_output_2_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_dex_v1_EventSwapClaim_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier + +#define penumbra_core_component_dex_v1_EventPositionOpen_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_1, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_2, 4) \ + X(a, STATIC, SINGULAR, UINT32, trading_fee, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, position, 6) +#define penumbra_core_component_dex_v1_EventPositionOpen_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventPositionOpen_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventPositionOpen_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_EventPositionOpen_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_EventPositionOpen_reserves_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionOpen_reserves_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionOpen_position_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_core_component_dex_v1_EventPositionClose_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) +#define penumbra_core_component_dex_v1_EventPositionClose_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventPositionClose_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventPositionClose_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_EventQueuePositionClose_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) +#define penumbra_core_component_dex_v1_EventQueuePositionClose_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventQueuePositionClose_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventQueuePositionClose_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId + +#define penumbra_core_component_dex_v1_EventPositionWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_1, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_2, 4) \ + X(a, STATIC, SINGULAR, UINT64, sequence, 5) +#define penumbra_core_component_dex_v1_EventPositionWithdraw_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventPositionWithdraw_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventPositionWithdraw_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_EventPositionWithdraw_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_EventPositionWithdraw_reserves_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionWithdraw_reserves_2_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_dex_v1_EventPositionExecution_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_1, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves_2, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, prev_reserves_1, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, prev_reserves_2, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, context, 7) +#define penumbra_core_component_dex_v1_EventPositionExecution_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventPositionExecution_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventPositionExecution_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId +#define penumbra_core_component_dex_v1_EventPositionExecution_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair +#define penumbra_core_component_dex_v1_EventPositionExecution_reserves_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionExecution_reserves_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionExecution_prev_reserves_1_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionExecution_prev_reserves_2_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventPositionExecution_context_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_EventBatchSwap_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, batch_swap_output_data, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution_1_for_2, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution_2_for_1, 3) +#define penumbra_core_component_dex_v1_EventBatchSwap_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventBatchSwap_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventBatchSwap_batch_swap_output_data_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData +#define penumbra_core_component_dex_v1_EventBatchSwap_swap_execution_1_for_2_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution +#define penumbra_core_component_dex_v1_EventBatchSwap_swap_execution_2_for_1_MSGTYPE \ + penumbra_core_component_dex_v1_SwapExecution + +#define penumbra_core_component_dex_v1_EventArbExecution_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_execution, 2) +#define penumbra_core_component_dex_v1_EventArbExecution_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventArbExecution_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventArbExecution_swap_execution_MSGTYPE penumbra_core_component_dex_v1_SwapExecution + +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, previous_balance, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_balance, 3) +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_previous_balance_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_new_balance_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, previous_balance, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_balance, 3) +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_CALLBACK NULL +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_DEFAULT NULL +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_previous_balance_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_new_balance_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_dex_v1_DexParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, is_enabled, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, fixed_candidates, 2) \ + X(a, STATIC, SINGULAR, UINT32, max_hops, 3) \ + X(a, STATIC, SINGULAR, UINT32, max_positions_per_pair, 4) \ + X(a, STATIC, SINGULAR, UINT32, max_execution_budget, 5) +#define penumbra_core_component_dex_v1_DexParameters_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_DexParameters_DEFAULT NULL +#define penumbra_core_component_dex_v1_DexParameters_fixed_candidates_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_dex_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, dex_params, 1) +#define penumbra_core_component_dex_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_dex_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_dex_v1_GenesisContent_dex_params_MSGTYPE penumbra_core_component_dex_v1_DexParameters + +#define penumbra_core_component_dex_v1_CandlestickData_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, SINGULAR, DOUBLE, open, 2) \ + X(a, STATIC, SINGULAR, DOUBLE, close, 3) \ + X(a, STATIC, SINGULAR, DOUBLE, high, 4) \ + X(a, STATIC, SINGULAR, DOUBLE, low, 5) \ + X(a, STATIC, SINGULAR, DOUBLE, direct_volume, 6) \ + X(a, STATIC, SINGULAR, DOUBLE, swap_volume, 7) +#define penumbra_core_component_dex_v1_CandlestickData_CALLBACK NULL +#define penumbra_core_component_dex_v1_CandlestickData_DEFAULT NULL + +#define penumbra_core_component_dex_v1_CandlestickDataRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pair, 1) \ + X(a, STATIC, SINGULAR, UINT64, limit, 2) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 3) +#define penumbra_core_component_dex_v1_CandlestickDataRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_CandlestickDataRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_CandlestickDataRequest_pair_MSGTYPE penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_CandlestickDataResponse_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_CandlestickDataResponse_CALLBACK pb_default_field_callback +#define penumbra_core_component_dex_v1_CandlestickDataResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_CandlestickDataResponse_data_MSGTYPE penumbra_core_component_dex_v1_CandlestickData + +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, pair, 1) +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_CALLBACK NULL +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_DEFAULT NULL +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_pair_MSGTYPE \ + penumbra_core_component_dex_v1_DirectedTradingPair + +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_CALLBACK NULL +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_DEFAULT NULL +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_data_MSGTYPE \ + penumbra_core_component_dex_v1_CandlestickData + +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ZKSwapProof_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ZKSwapClaimProof_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_Swap_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaimBody_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapBody_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapPayload_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapPlaintext_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaimPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapView_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaimView_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaimView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapClaimView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_TradingPair_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_DirectedTradingPair_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_BatchSwapOutputData_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_TradingFunction_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_BareTradingFunction_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_Reserves_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_Position_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionId_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionState_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LpNft_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionOpen_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionClose_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionWithdraw_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionRewardClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecution_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecution_Trace_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionWithdrawPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_PositionRewardClaimPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecutionRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecutionResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ArbExecutionRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ArbExecutionResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecutionsRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SwapExecutionsResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ArbExecutionsRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_ArbExecutionsResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SpreadRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SpreadResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SimulateTradeRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_SimulateTradeResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventSwap_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventSwapClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventPositionOpen_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventPositionClose_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventQueuePositionClose_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventPositionWithdraw_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventPositionExecution_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventBatchSwap_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventArbExecution_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_DexParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_CandlestickData_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_CandlestickDataRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_CandlestickDataResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_CandlestickDataStreamRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_dex_v1_CandlestickDataStreamResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_dex_v1_ZKSwapProof_fields &penumbra_core_component_dex_v1_ZKSwapProof_msg +#define penumbra_core_component_dex_v1_ZKSwapClaimProof_fields &penumbra_core_component_dex_v1_ZKSwapClaimProof_msg +#define penumbra_core_component_dex_v1_Swap_fields &penumbra_core_component_dex_v1_Swap_msg +#define penumbra_core_component_dex_v1_SwapClaim_fields &penumbra_core_component_dex_v1_SwapClaim_msg +#define penumbra_core_component_dex_v1_SwapClaimBody_fields &penumbra_core_component_dex_v1_SwapClaimBody_msg +#define penumbra_core_component_dex_v1_SwapBody_fields &penumbra_core_component_dex_v1_SwapBody_msg +#define penumbra_core_component_dex_v1_SwapPayload_fields &penumbra_core_component_dex_v1_SwapPayload_msg +#define penumbra_core_component_dex_v1_SwapPlaintext_fields &penumbra_core_component_dex_v1_SwapPlaintext_msg +#define penumbra_core_component_dex_v1_SwapPlan_fields &penumbra_core_component_dex_v1_SwapPlan_msg +#define penumbra_core_component_dex_v1_SwapClaimPlan_fields &penumbra_core_component_dex_v1_SwapClaimPlan_msg +#define penumbra_core_component_dex_v1_SwapView_fields &penumbra_core_component_dex_v1_SwapView_msg +#define penumbra_core_component_dex_v1_SwapView_Visible_fields &penumbra_core_component_dex_v1_SwapView_Visible_msg +#define penumbra_core_component_dex_v1_SwapView_Opaque_fields &penumbra_core_component_dex_v1_SwapView_Opaque_msg +#define penumbra_core_component_dex_v1_SwapClaimView_fields &penumbra_core_component_dex_v1_SwapClaimView_msg +#define penumbra_core_component_dex_v1_SwapClaimView_Visible_fields &penumbra_core_component_dex_v1_SwapClaimView_Visible_msg +#define penumbra_core_component_dex_v1_SwapClaimView_Opaque_fields &penumbra_core_component_dex_v1_SwapClaimView_Opaque_msg +#define penumbra_core_component_dex_v1_TradingPair_fields &penumbra_core_component_dex_v1_TradingPair_msg +#define penumbra_core_component_dex_v1_DirectedTradingPair_fields &penumbra_core_component_dex_v1_DirectedTradingPair_msg +#define penumbra_core_component_dex_v1_BatchSwapOutputData_fields &penumbra_core_component_dex_v1_BatchSwapOutputData_msg +#define penumbra_core_component_dex_v1_TradingFunction_fields &penumbra_core_component_dex_v1_TradingFunction_msg +#define penumbra_core_component_dex_v1_BareTradingFunction_fields &penumbra_core_component_dex_v1_BareTradingFunction_msg +#define penumbra_core_component_dex_v1_Reserves_fields &penumbra_core_component_dex_v1_Reserves_msg +#define penumbra_core_component_dex_v1_Position_fields &penumbra_core_component_dex_v1_Position_msg +#define penumbra_core_component_dex_v1_PositionId_fields &penumbra_core_component_dex_v1_PositionId_msg +#define penumbra_core_component_dex_v1_PositionState_fields &penumbra_core_component_dex_v1_PositionState_msg +#define penumbra_core_component_dex_v1_LpNft_fields &penumbra_core_component_dex_v1_LpNft_msg +#define penumbra_core_component_dex_v1_PositionOpen_fields &penumbra_core_component_dex_v1_PositionOpen_msg +#define penumbra_core_component_dex_v1_PositionClose_fields &penumbra_core_component_dex_v1_PositionClose_msg +#define penumbra_core_component_dex_v1_PositionWithdraw_fields &penumbra_core_component_dex_v1_PositionWithdraw_msg +#define penumbra_core_component_dex_v1_PositionRewardClaim_fields &penumbra_core_component_dex_v1_PositionRewardClaim_msg +#define penumbra_core_component_dex_v1_SwapExecution_fields &penumbra_core_component_dex_v1_SwapExecution_msg +#define penumbra_core_component_dex_v1_SwapExecution_Trace_fields &penumbra_core_component_dex_v1_SwapExecution_Trace_msg +#define penumbra_core_component_dex_v1_PositionWithdrawPlan_fields &penumbra_core_component_dex_v1_PositionWithdrawPlan_msg +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_fields \ + &penumbra_core_component_dex_v1_PositionRewardClaimPlan_msg +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_fields \ + &penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_msg +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_fields \ + &penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_msg +#define penumbra_core_component_dex_v1_SwapExecutionRequest_fields &penumbra_core_component_dex_v1_SwapExecutionRequest_msg +#define penumbra_core_component_dex_v1_SwapExecutionResponse_fields &penumbra_core_component_dex_v1_SwapExecutionResponse_msg +#define penumbra_core_component_dex_v1_ArbExecutionRequest_fields &penumbra_core_component_dex_v1_ArbExecutionRequest_msg +#define penumbra_core_component_dex_v1_ArbExecutionResponse_fields &penumbra_core_component_dex_v1_ArbExecutionResponse_msg +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_fields &penumbra_core_component_dex_v1_SwapExecutionsRequest_msg +#define penumbra_core_component_dex_v1_SwapExecutionsResponse_fields \ + &penumbra_core_component_dex_v1_SwapExecutionsResponse_msg +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_fields &penumbra_core_component_dex_v1_ArbExecutionsRequest_msg +#define penumbra_core_component_dex_v1_ArbExecutionsResponse_fields &penumbra_core_component_dex_v1_ArbExecutionsResponse_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsRequest_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsResponse_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsResponse_msg +#define penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_msg +#define penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_msg +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_fields \ + &penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_msg +#define penumbra_core_component_dex_v1_SpreadRequest_fields &penumbra_core_component_dex_v1_SpreadRequest_msg +#define penumbra_core_component_dex_v1_SpreadResponse_fields &penumbra_core_component_dex_v1_SpreadResponse_msg +#define penumbra_core_component_dex_v1_SimulateTradeRequest_fields &penumbra_core_component_dex_v1_SimulateTradeRequest_msg +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_fields \ + &penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_msg +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_fields \ + &penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_msg +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_fields \ + &penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_msg +#define penumbra_core_component_dex_v1_SimulateTradeResponse_fields &penumbra_core_component_dex_v1_SimulateTradeResponse_msg +#define penumbra_core_component_dex_v1_EventSwap_fields &penumbra_core_component_dex_v1_EventSwap_msg +#define penumbra_core_component_dex_v1_EventSwapClaim_fields &penumbra_core_component_dex_v1_EventSwapClaim_msg +#define penumbra_core_component_dex_v1_EventPositionOpen_fields &penumbra_core_component_dex_v1_EventPositionOpen_msg +#define penumbra_core_component_dex_v1_EventPositionClose_fields &penumbra_core_component_dex_v1_EventPositionClose_msg +#define penumbra_core_component_dex_v1_EventQueuePositionClose_fields \ + &penumbra_core_component_dex_v1_EventQueuePositionClose_msg +#define penumbra_core_component_dex_v1_EventPositionWithdraw_fields &penumbra_core_component_dex_v1_EventPositionWithdraw_msg +#define penumbra_core_component_dex_v1_EventPositionExecution_fields \ + &penumbra_core_component_dex_v1_EventPositionExecution_msg +#define penumbra_core_component_dex_v1_EventBatchSwap_fields &penumbra_core_component_dex_v1_EventBatchSwap_msg +#define penumbra_core_component_dex_v1_EventArbExecution_fields &penumbra_core_component_dex_v1_EventArbExecution_msg +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_fields \ + &penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_msg +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_fields \ + &penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_msg +#define penumbra_core_component_dex_v1_DexParameters_fields &penumbra_core_component_dex_v1_DexParameters_msg +#define penumbra_core_component_dex_v1_GenesisContent_fields &penumbra_core_component_dex_v1_GenesisContent_msg +#define penumbra_core_component_dex_v1_CandlestickData_fields &penumbra_core_component_dex_v1_CandlestickData_msg +#define penumbra_core_component_dex_v1_CandlestickDataRequest_fields \ + &penumbra_core_component_dex_v1_CandlestickDataRequest_msg +#define penumbra_core_component_dex_v1_CandlestickDataResponse_fields \ + &penumbra_core_component_dex_v1_CandlestickDataResponse_msg +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_fields \ + &penumbra_core_component_dex_v1_CandlestickDataStreamRequest_msg +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_fields \ + &penumbra_core_component_dex_v1_CandlestickDataStreamResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_dex_v1_ZKSwapProof_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_ZKSwapClaimProof_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_Swap_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapClaim_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapBody_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapPayload_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapPlaintext_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapPlan_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapClaimPlan_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapView_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapView_Visible_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapView_Opaque_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapClaimView_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapClaimView_Visible_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapClaimView_Opaque_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_Position_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionId_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LpNft_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionOpen_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionClose_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionWithdraw_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionRewardClaim_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapExecution_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapExecution_Trace_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_PositionWithdrawPlan_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapExecutionResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_ArbExecutionResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SwapExecutionsResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_ArbExecutionsResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionsResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionByIdRequest_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionByIdResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionsByIdRequest_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionsByIdResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_LiquidityPositionsByPriceResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SpreadResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_SimulateTradeResponse_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventPositionOpen_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventPositionClose_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventQueuePositionClose_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventPositionWithdraw_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventPositionExecution_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventBatchSwap_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_EventArbExecution_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_DexParameters_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_GenesisContent_size depends on runtime parameters */ +/* penumbra_core_component_dex_v1_CandlestickDataResponse_size depends on runtime parameters */ +#if defined(penumbra_core_component_sct_v1_Nullifier_size) && defined(penumbra_core_component_fee_v1_Fee_size) && \ + defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_crypto_tct_v1_StateCommitment_size) && \ + defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_asset_v1_AssetId_size) +#define PENUMBRA_CORE_COMPONENT_DEX_V1_PENUMBRA_CORE_COMPONENT_DEX_V1_DEX_PB_H_MAX_SIZE \ + penumbra_core_component_dex_v1_SwapClaimBody_size +#define penumbra_core_component_dex_v1_SwapClaimBody_size \ + (225 + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_component_fee_v1_Fee_size + \ + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_crypto_tct_v1_StateCommitment_size + \ + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_BatchSwapOutputDataRequest_size \ + (29 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_BatchSwapOutputDataResponse_size \ + (201 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_BatchSwapOutputData_size \ + (195 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_CandlestickDataRequest_size \ + (40 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_CandlestickDataStreamRequest_size \ + (18 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_DirectedTradingPair_size \ + (12 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_LiquidityPositionsByPriceRequest_size \ + (29 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_SpreadRequest_size \ + (18 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_SwapExecutionRequest_size \ + (29 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_SwapExecutionsRequest_size \ + (40 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_TradingFunction_size \ + (74 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_TradingPair_size \ + (12 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#endif +#define penumbra_core_component_dex_v1_ArbExecutionRequest_size 11 +#define penumbra_core_component_dex_v1_ArbExecutionsRequest_size 22 +#define penumbra_core_component_dex_v1_BareTradingFunction_size 54 +#define penumbra_core_component_dex_v1_CandlestickDataStreamResponse_size 67 +#define penumbra_core_component_dex_v1_CandlestickData_size 65 +#define penumbra_core_component_dex_v1_LiquidityPositionsRequest_size 2 +#define penumbra_core_component_dex_v1_PositionRewardClaimPlan_size 50 +#define penumbra_core_component_dex_v1_PositionState_size 13 +#define penumbra_core_component_dex_v1_Reserves_size 48 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_Default_size 0 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_SingleHop_size 0 +#define penumbra_core_component_dex_v1_SimulateTradeRequest_Routing_size 2 +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_SimulateTradeRequest_size \ + (16 + penumbra_core_asset_v1_Value_size + penumbra_core_asset_v1_AssetId_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_asset_v1_AssetId_size) && \ + defined(penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_core_component_dex_v1_EventSwap_size \ + (72 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size + \ + penumbra_crypto_tct_v1_StateCommitment_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_asset_v1_AssetId_size) && \ + defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_crypto_tct_v1_StateCommitment_size) && \ + defined(penumbra_core_component_sct_v1_Nullifier_size) +#define penumbra_core_component_dex_v1_EventSwapClaim_size \ + (36 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size + \ + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_crypto_tct_v1_StateCommitment_size + \ + penumbra_core_component_sct_v1_Nullifier_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerCredit_size (54 + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_dex_v1_EventValueCircuitBreakerDebit_size (54 + penumbra_core_asset_v1_AssetId_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.c b/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.c new file mode 100644 index 0000000..357b52f --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/distributions/v1/distributions.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_distributions_v1_DistributionsParameters, + penumbra_core_component_distributions_v1_DistributionsParameters, AUTO) + +PB_BIND(penumbra_core_component_distributions_v1_GenesisContent, penumbra_core_component_distributions_v1_GenesisContent, + AUTO) diff --git a/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.h b/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.h new file mode 100644 index 0000000..668b257 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/distributions/v1/distributions.pb.h @@ -0,0 +1,75 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_DISTRIBUTIONS_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_DISTRIBUTIONS_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Distribution configuration data. */ +typedef struct _penumbra_core_component_distributions_v1_DistributionsParameters { + /* The amount of staking token issued per block. */ + uint64_t staking_issuance_per_block; +} penumbra_core_component_distributions_v1_DistributionsParameters; + +/* Genesis data for the distributions module. */ +typedef struct _penumbra_core_component_distributions_v1_GenesisContent { + bool has_distributions_params; + penumbra_core_component_distributions_v1_DistributionsParameters distributions_params; +} penumbra_core_component_distributions_v1_GenesisContent; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_distributions_v1_DistributionsParameters_init_default \ + { 0 } +#define penumbra_core_component_distributions_v1_GenesisContent_init_default \ + { false, penumbra_core_component_distributions_v1_DistributionsParameters_init_default } +#define penumbra_core_component_distributions_v1_DistributionsParameters_init_zero \ + { 0 } +#define penumbra_core_component_distributions_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_distributions_v1_DistributionsParameters_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_distributions_v1_DistributionsParameters_staking_issuance_per_block_tag 1 +#define penumbra_core_component_distributions_v1_GenesisContent_distributions_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_distributions_v1_DistributionsParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, staking_issuance_per_block, 1) +#define penumbra_core_component_distributions_v1_DistributionsParameters_CALLBACK NULL +#define penumbra_core_component_distributions_v1_DistributionsParameters_DEFAULT NULL + +#define penumbra_core_component_distributions_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, distributions_params, 1) +#define penumbra_core_component_distributions_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_distributions_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_distributions_v1_GenesisContent_distributions_params_MSGTYPE \ + penumbra_core_component_distributions_v1_DistributionsParameters + +extern const pb_msgdesc_t penumbra_core_component_distributions_v1_DistributionsParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_distributions_v1_GenesisContent_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_distributions_v1_DistributionsParameters_fields \ + &penumbra_core_component_distributions_v1_DistributionsParameters_msg +#define penumbra_core_component_distributions_v1_GenesisContent_fields \ + &penumbra_core_component_distributions_v1_GenesisContent_msg + +/* Maximum encoded size of messages (where known) */ +#define PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_PENUMBRA_CORE_COMPONENT_DISTRIBUTIONS_V1_DISTRIBUTIONS_PB_H_MAX_SIZE \ + penumbra_core_component_distributions_v1_GenesisContent_size +#define penumbra_core_component_distributions_v1_DistributionsParameters_size 11 +#define penumbra_core_component_distributions_v1_GenesisContent_size 13 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.c b/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.c new file mode 100644 index 0000000..418ab5a --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.c @@ -0,0 +1,28 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/fee/v1/fee.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_fee_v1_Fee, penumbra_core_component_fee_v1_Fee, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_Gas, penumbra_core_component_fee_v1_Gas, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_GasPrices, penumbra_core_component_fee_v1_GasPrices, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_FeeTier, penumbra_core_component_fee_v1_FeeTier, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_FeeParameters, penumbra_core_component_fee_v1_FeeParameters, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_GenesisContent, penumbra_core_component_fee_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_CurrentGasPricesRequest, penumbra_core_component_fee_v1_CurrentGasPricesRequest, AUTO) + +PB_BIND(penumbra_core_component_fee_v1_CurrentGasPricesResponse, penumbra_core_component_fee_v1_CurrentGasPricesResponse, + AUTO) + +PB_BIND(penumbra_core_component_fee_v1_EventPaidFee, penumbra_core_component_fee_v1_EventPaidFee, 2) + +PB_BIND(penumbra_core_component_fee_v1_EventBlockFees, penumbra_core_component_fee_v1_EventBlockFees, 2) diff --git a/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.h b/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.h new file mode 100644 index 0000000..8a81a6e --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/fee/v1/fee.pb.h @@ -0,0 +1,369 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_FEE_V1_PENUMBRA_CORE_COMPONENT_FEE_V1_FEE_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_FEE_V1_PENUMBRA_CORE_COMPONENT_FEE_V1_FEE_PB_H_INCLUDED +#include + +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* The tier for the fee. */ +typedef enum _penumbra_core_component_fee_v1_FeeTier_Tier { + penumbra_core_component_fee_v1_FeeTier_Tier_TIER_UNSPECIFIED = 0, + penumbra_core_component_fee_v1_FeeTier_Tier_TIER_LOW = 1, + penumbra_core_component_fee_v1_FeeTier_Tier_TIER_MEDIUM = 2, + penumbra_core_component_fee_v1_FeeTier_Tier_TIER_HIGH = 3 +} penumbra_core_component_fee_v1_FeeTier_Tier; + +/* Struct definitions */ +/* Specifies fees paid by a transaction. */ +typedef struct _penumbra_core_component_fee_v1_Fee { + /* The amount of the token used to pay fees. */ + bool has_amount; + penumbra_core_num_v1_Amount amount; + /* If present, the asset ID of the token used to pay fees. + If absent, specifies the staking token implicitly. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_core_component_fee_v1_Fee; + +/* Gas usage for a transaction. + + Gas used is multiplied by `GasPrices` to determine a `Fee`. */ +typedef struct _penumbra_core_component_fee_v1_Gas { + /* The amount of block space used. */ + uint64_t block_space; + /* The amount of compact block space used. */ + uint64_t compact_block_space; + /* The amount of verification cost used. */ + uint64_t verification; + /* The amount of execution cost used. */ + uint64_t execution; +} penumbra_core_component_fee_v1_Gas; + +typedef struct _penumbra_core_component_fee_v1_GasPrices { + /* The price per unit block space in terms of the staking token, with an implicit 1,000 denominator. */ + uint64_t block_space_price; + /* The price per unit compact block space in terms of the staking token, with an implicit 1,000 denominator. */ + uint64_t compact_block_space_price; + /* The price per unit verification cost in terms of the staking token, with an implicit 1,000 denominator. */ + uint64_t verification_price; + /* The price per unit execution cost in terms of the staking token, with an implicit 1,000 denominator. */ + uint64_t execution_price; + /* The asset ID of the fee token these prices are for. + + If absent, specifies the staking token implicitly. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_core_component_fee_v1_GasPrices; + +typedef struct _penumbra_core_component_fee_v1_FeeTier { + /* The selected fee tier. */ + penumbra_core_component_fee_v1_FeeTier_Tier fee_tier; +} penumbra_core_component_fee_v1_FeeTier; + +/* Fee component configuration data. */ +typedef struct _penumbra_core_component_fee_v1_FeeParameters { + /* Fixed gas prices in the native token used to compute transactions' base + fees. + + In the future, this should be removed and replaced with parameters for + dynamic gas pricing. */ + bool has_fixed_gas_prices; + penumbra_core_component_fee_v1_GasPrices fixed_gas_prices; + /* Fixed gas prices in other tokens used to compute transactions' base fees. + + In the future, this should be removed and replaced with fixed multiples of + the native token's price (so that there is one set of dynamically + determined gas prices in the native token, and derived gas prices in other + alternative tokens). + + If this is empty, no other tokens are accepted for gas. */ + pb_callback_t fixed_alt_gas_prices; +} penumbra_core_component_fee_v1_FeeParameters; + +/* Fee-specific genesis content. */ +typedef struct _penumbra_core_component_fee_v1_GenesisContent { + /* The FeeParameters present at genesis. */ + bool has_fee_params; + penumbra_core_component_fee_v1_FeeParameters fee_params; +} penumbra_core_component_fee_v1_GenesisContent; + +typedef struct _penumbra_core_component_fee_v1_CurrentGasPricesRequest { + char dummy_field; +} penumbra_core_component_fee_v1_CurrentGasPricesRequest; + +typedef struct _penumbra_core_component_fee_v1_CurrentGasPricesResponse { + /* The current gas prices, in the preferred (native) token. */ + bool has_gas_prices; + penumbra_core_component_fee_v1_GasPrices gas_prices; + /* Other gas prices for other accepted tokens. */ + pb_callback_t alt_gas_prices; +} penumbra_core_component_fee_v1_CurrentGasPricesResponse; + +/* Emitted during fee payment. */ +typedef struct _penumbra_core_component_fee_v1_EventPaidFee { + /* The fee paid. */ + bool has_fee; + penumbra_core_component_fee_v1_Fee fee; + /* The base fee that was required. */ + bool has_base_fee; + penumbra_core_component_fee_v1_Fee base_fee; + /* The tip that was paid to the proposer. */ + bool has_tip; + penumbra_core_component_fee_v1_Fee tip; + /* The gas used to compute the base fee. */ + bool has_gas_used; + penumbra_core_component_fee_v1_Gas gas_used; +} penumbra_core_component_fee_v1_EventPaidFee; + +/* Emitted as a summary of fees in the block. */ +typedef struct _penumbra_core_component_fee_v1_EventBlockFees { + /* The total fees, after swapping to the native token. */ + bool has_swapped_fee_total; + penumbra_core_component_fee_v1_Fee swapped_fee_total; + /* The total base fees, after swapping to the native token. */ + bool has_swapped_base_fee_total; + penumbra_core_component_fee_v1_Fee swapped_base_fee_total; + /* The total tips, after swapping to the native token. */ + bool has_swapped_tip_total; + penumbra_core_component_fee_v1_Fee swapped_tip_total; +} penumbra_core_component_fee_v1_EventBlockFees; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_core_component_fee_v1_FeeTier_Tier_MIN penumbra_core_component_fee_v1_FeeTier_Tier_TIER_UNSPECIFIED +#define _penumbra_core_component_fee_v1_FeeTier_Tier_MAX penumbra_core_component_fee_v1_FeeTier_Tier_TIER_HIGH +#define _penumbra_core_component_fee_v1_FeeTier_Tier_ARRAYSIZE \ + ((penumbra_core_component_fee_v1_FeeTier_Tier)(penumbra_core_component_fee_v1_FeeTier_Tier_TIER_HIGH + 1)) + +#define penumbra_core_component_fee_v1_FeeTier_fee_tier_ENUMTYPE penumbra_core_component_fee_v1_FeeTier_Tier + +/* Initializer values for message structs */ +#define penumbra_core_component_fee_v1_Fee_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_component_fee_v1_Gas_init_default \ + { 0, 0, 0, 0 } +#define penumbra_core_component_fee_v1_GasPrices_init_default \ + { 0, 0, 0, 0, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_component_fee_v1_FeeTier_init_default \ + { _penumbra_core_component_fee_v1_FeeTier_Tier_MIN } +#define penumbra_core_component_fee_v1_FeeParameters_init_default \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_fee_v1_GenesisContent_init_default \ + { false, penumbra_core_component_fee_v1_FeeParameters_init_default } +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_init_default \ + { 0 } +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_init_default \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_fee_v1_EventPaidFee_init_default \ + { \ + false, penumbra_core_component_fee_v1_Fee_init_default, false, penumbra_core_component_fee_v1_Fee_init_default, \ + false, penumbra_core_component_fee_v1_Fee_init_default, false, penumbra_core_component_fee_v1_Gas_init_default \ + } +#define penumbra_core_component_fee_v1_EventBlockFees_init_default \ + { \ + false, penumbra_core_component_fee_v1_Fee_init_default, false, penumbra_core_component_fee_v1_Fee_init_default, \ + false, penumbra_core_component_fee_v1_Fee_init_default \ + } +#define penumbra_core_component_fee_v1_Fee_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_component_fee_v1_Gas_init_zero \ + { 0, 0, 0, 0 } +#define penumbra_core_component_fee_v1_GasPrices_init_zero \ + { 0, 0, 0, 0, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_component_fee_v1_FeeTier_init_zero \ + { _penumbra_core_component_fee_v1_FeeTier_Tier_MIN } +#define penumbra_core_component_fee_v1_FeeParameters_init_zero \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_fee_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_fee_v1_FeeParameters_init_zero } +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_init_zero \ + { 0 } +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_init_zero \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_fee_v1_EventPaidFee_init_zero \ + { \ + false, penumbra_core_component_fee_v1_Fee_init_zero, false, penumbra_core_component_fee_v1_Fee_init_zero, false, \ + penumbra_core_component_fee_v1_Fee_init_zero, false, penumbra_core_component_fee_v1_Gas_init_zero \ + } +#define penumbra_core_component_fee_v1_EventBlockFees_init_zero \ + { \ + false, penumbra_core_component_fee_v1_Fee_init_zero, false, penumbra_core_component_fee_v1_Fee_init_zero, false, \ + penumbra_core_component_fee_v1_Fee_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_fee_v1_Fee_amount_tag 1 +#define penumbra_core_component_fee_v1_Fee_asset_id_tag 2 +#define penumbra_core_component_fee_v1_Gas_block_space_tag 1 +#define penumbra_core_component_fee_v1_Gas_compact_block_space_tag 2 +#define penumbra_core_component_fee_v1_Gas_verification_tag 3 +#define penumbra_core_component_fee_v1_Gas_execution_tag 4 +#define penumbra_core_component_fee_v1_GasPrices_block_space_price_tag 1 +#define penumbra_core_component_fee_v1_GasPrices_compact_block_space_price_tag 2 +#define penumbra_core_component_fee_v1_GasPrices_verification_price_tag 3 +#define penumbra_core_component_fee_v1_GasPrices_execution_price_tag 4 +#define penumbra_core_component_fee_v1_GasPrices_asset_id_tag 15 +#define penumbra_core_component_fee_v1_FeeTier_fee_tier_tag 1 +#define penumbra_core_component_fee_v1_FeeParameters_fixed_gas_prices_tag 1 +#define penumbra_core_component_fee_v1_FeeParameters_fixed_alt_gas_prices_tag 2 +#define penumbra_core_component_fee_v1_GenesisContent_fee_params_tag 1 +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_gas_prices_tag 1 +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_alt_gas_prices_tag 2 +#define penumbra_core_component_fee_v1_EventPaidFee_fee_tag 1 +#define penumbra_core_component_fee_v1_EventPaidFee_base_fee_tag 2 +#define penumbra_core_component_fee_v1_EventPaidFee_tip_tag 3 +#define penumbra_core_component_fee_v1_EventPaidFee_gas_used_tag 4 +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_fee_total_tag 1 +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_base_fee_total_tag 2 +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_tip_total_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_fee_v1_Fee_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 2) +#define penumbra_core_component_fee_v1_Fee_CALLBACK NULL +#define penumbra_core_component_fee_v1_Fee_DEFAULT NULL +#define penumbra_core_component_fee_v1_Fee_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_fee_v1_Fee_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_fee_v1_Gas_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, block_space, 1) \ + X(a, STATIC, SINGULAR, UINT64, compact_block_space, 2) \ + X(a, STATIC, SINGULAR, UINT64, verification, 3) \ + X(a, STATIC, SINGULAR, UINT64, execution, 4) +#define penumbra_core_component_fee_v1_Gas_CALLBACK NULL +#define penumbra_core_component_fee_v1_Gas_DEFAULT NULL + +#define penumbra_core_component_fee_v1_GasPrices_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, block_space_price, 1) \ + X(a, STATIC, SINGULAR, UINT64, compact_block_space_price, 2) \ + X(a, STATIC, SINGULAR, UINT64, verification_price, 3) \ + X(a, STATIC, SINGULAR, UINT64, execution_price, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 15) +#define penumbra_core_component_fee_v1_GasPrices_CALLBACK NULL +#define penumbra_core_component_fee_v1_GasPrices_DEFAULT NULL +#define penumbra_core_component_fee_v1_GasPrices_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_fee_v1_FeeTier_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, fee_tier, 1) +#define penumbra_core_component_fee_v1_FeeTier_CALLBACK NULL +#define penumbra_core_component_fee_v1_FeeTier_DEFAULT NULL + +#define penumbra_core_component_fee_v1_FeeParameters_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, fixed_gas_prices, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, fixed_alt_gas_prices, 2) +#define penumbra_core_component_fee_v1_FeeParameters_CALLBACK pb_default_field_callback +#define penumbra_core_component_fee_v1_FeeParameters_DEFAULT NULL +#define penumbra_core_component_fee_v1_FeeParameters_fixed_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices +#define penumbra_core_component_fee_v1_FeeParameters_fixed_alt_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices + +#define penumbra_core_component_fee_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, fee_params, 1) +#define penumbra_core_component_fee_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_fee_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_fee_v1_GenesisContent_fee_params_MSGTYPE penumbra_core_component_fee_v1_FeeParameters + +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_FIELDLIST(X, a) + +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_CALLBACK NULL +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_DEFAULT NULL + +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_prices, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, alt_gas_prices, 2) +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_CALLBACK pb_default_field_callback +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_DEFAULT NULL +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_alt_gas_prices_MSGTYPE \ + penumbra_core_component_fee_v1_GasPrices + +#define penumbra_core_component_fee_v1_EventPaidFee_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_fee, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, tip, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_used, 4) +#define penumbra_core_component_fee_v1_EventPaidFee_CALLBACK NULL +#define penumbra_core_component_fee_v1_EventPaidFee_DEFAULT NULL +#define penumbra_core_component_fee_v1_EventPaidFee_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_fee_v1_EventPaidFee_base_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_fee_v1_EventPaidFee_tip_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_fee_v1_EventPaidFee_gas_used_MSGTYPE penumbra_core_component_fee_v1_Gas + +#define penumbra_core_component_fee_v1_EventBlockFees_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swapped_fee_total, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, swapped_base_fee_total, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, swapped_tip_total, 3) +#define penumbra_core_component_fee_v1_EventBlockFees_CALLBACK NULL +#define penumbra_core_component_fee_v1_EventBlockFees_DEFAULT NULL +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_fee_total_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_base_fee_total_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_core_component_fee_v1_EventBlockFees_swapped_tip_total_MSGTYPE penumbra_core_component_fee_v1_Fee + +extern const pb_msgdesc_t penumbra_core_component_fee_v1_Fee_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_Gas_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_GasPrices_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_FeeTier_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_FeeParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_CurrentGasPricesRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_CurrentGasPricesResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_EventPaidFee_msg; +extern const pb_msgdesc_t penumbra_core_component_fee_v1_EventBlockFees_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_fee_v1_Fee_fields &penumbra_core_component_fee_v1_Fee_msg +#define penumbra_core_component_fee_v1_Gas_fields &penumbra_core_component_fee_v1_Gas_msg +#define penumbra_core_component_fee_v1_GasPrices_fields &penumbra_core_component_fee_v1_GasPrices_msg +#define penumbra_core_component_fee_v1_FeeTier_fields &penumbra_core_component_fee_v1_FeeTier_msg +#define penumbra_core_component_fee_v1_FeeParameters_fields &penumbra_core_component_fee_v1_FeeParameters_msg +#define penumbra_core_component_fee_v1_GenesisContent_fields &penumbra_core_component_fee_v1_GenesisContent_msg +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_fields \ + &penumbra_core_component_fee_v1_CurrentGasPricesRequest_msg +#define penumbra_core_component_fee_v1_CurrentGasPricesResponse_fields \ + &penumbra_core_component_fee_v1_CurrentGasPricesResponse_msg +#define penumbra_core_component_fee_v1_EventPaidFee_fields &penumbra_core_component_fee_v1_EventPaidFee_msg +#define penumbra_core_component_fee_v1_EventBlockFees_fields &penumbra_core_component_fee_v1_EventBlockFees_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_fee_v1_FeeParameters_size depends on runtime parameters */ +/* penumbra_core_component_fee_v1_GenesisContent_size depends on runtime parameters */ +/* penumbra_core_component_fee_v1_CurrentGasPricesResponse_size depends on runtime parameters */ +#if defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_fee_v1_Fee_size (30 + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_fee_v1_GasPrices_size (50 + penumbra_core_asset_v1_AssetId_size) +#endif +#define penumbra_core_component_fee_v1_CurrentGasPricesRequest_size 0 +#define penumbra_core_component_fee_v1_FeeTier_size 2 +#define penumbra_core_component_fee_v1_Gas_size 44 +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_asset_v1_AssetId_size) && \ + defined(penumbra_core_asset_v1_AssetId_size) +#define PENUMBRA_CORE_COMPONENT_FEE_V1_PENUMBRA_CORE_COMPONENT_FEE_V1_FEE_PB_H_MAX_SIZE \ + penumbra_core_component_fee_v1_EventPaidFee_size +#define penumbra_core_component_fee_v1_EventBlockFees_size \ + (108 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_fee_v1_EventPaidFee_size \ + (154 + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size + penumbra_core_asset_v1_AssetId_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.c b/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.c new file mode 100644 index 0000000..2775b20 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.c @@ -0,0 +1,14 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/funding/v1/funding.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_funding_v1_FundingParameters, penumbra_core_component_funding_v1_FundingParameters, AUTO) + +PB_BIND(penumbra_core_component_funding_v1_GenesisContent, penumbra_core_component_funding_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_funding_v1_EventFundingStreamReward, + penumbra_core_component_funding_v1_EventFundingStreamReward, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.h b/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.h new file mode 100644 index 0000000..7045cd3 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/funding/v1/funding.pb.h @@ -0,0 +1,105 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_FUNDING_V1_PENUMBRA_CORE_COMPONENT_FUNDING_V1_FUNDING_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_FUNDING_V1_PENUMBRA_CORE_COMPONENT_FUNDING_V1_FUNDING_PB_H_INCLUDED +#include + +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Funding component configuration data. */ +typedef struct _penumbra_core_component_funding_v1_FundingParameters { + char dummy_field; +} penumbra_core_component_funding_v1_FundingParameters; + +/* Genesis data for the funding component. */ +typedef struct _penumbra_core_component_funding_v1_GenesisContent { + bool has_funding_params; + penumbra_core_component_funding_v1_FundingParameters funding_params; +} penumbra_core_component_funding_v1_GenesisContent; + +/* Indicates that a funding stream reward was paid. */ +typedef struct _penumbra_core_component_funding_v1_EventFundingStreamReward { + /* The recipient of the funding stream reward. + This is a string value for future extensibility. + Currently it will be either "community-pool" + or an address. */ + pb_callback_t recipient; + /* The epoch for which the reward was paid. */ + uint64_t epoch_index; + /* The amount of the reward, in staking tokens. */ + bool has_reward_amount; + penumbra_core_num_v1_Amount reward_amount; +} penumbra_core_component_funding_v1_EventFundingStreamReward; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_funding_v1_FundingParameters_init_default \ + { 0 } +#define penumbra_core_component_funding_v1_GenesisContent_init_default \ + { false, penumbra_core_component_funding_v1_FundingParameters_init_default } +#define penumbra_core_component_funding_v1_EventFundingStreamReward_init_default \ + { {{NULL}, NULL}, 0, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_funding_v1_FundingParameters_init_zero \ + { 0 } +#define penumbra_core_component_funding_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_funding_v1_FundingParameters_init_zero } +#define penumbra_core_component_funding_v1_EventFundingStreamReward_init_zero \ + { {{NULL}, NULL}, 0, false, penumbra_core_num_v1_Amount_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_funding_v1_GenesisContent_funding_params_tag 1 +#define penumbra_core_component_funding_v1_EventFundingStreamReward_recipient_tag 1 +#define penumbra_core_component_funding_v1_EventFundingStreamReward_epoch_index_tag 2 +#define penumbra_core_component_funding_v1_EventFundingStreamReward_reward_amount_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_funding_v1_FundingParameters_FIELDLIST(X, a) + +#define penumbra_core_component_funding_v1_FundingParameters_CALLBACK NULL +#define penumbra_core_component_funding_v1_FundingParameters_DEFAULT NULL + +#define penumbra_core_component_funding_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, funding_params, 1) +#define penumbra_core_component_funding_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_funding_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_funding_v1_GenesisContent_funding_params_MSGTYPE \ + penumbra_core_component_funding_v1_FundingParameters + +#define penumbra_core_component_funding_v1_EventFundingStreamReward_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, recipient, 1) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, reward_amount, 3) +#define penumbra_core_component_funding_v1_EventFundingStreamReward_CALLBACK pb_default_field_callback +#define penumbra_core_component_funding_v1_EventFundingStreamReward_DEFAULT NULL +#define penumbra_core_component_funding_v1_EventFundingStreamReward_reward_amount_MSGTYPE penumbra_core_num_v1_Amount + +extern const pb_msgdesc_t penumbra_core_component_funding_v1_FundingParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_funding_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_funding_v1_EventFundingStreamReward_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_funding_v1_FundingParameters_fields &penumbra_core_component_funding_v1_FundingParameters_msg +#define penumbra_core_component_funding_v1_GenesisContent_fields &penumbra_core_component_funding_v1_GenesisContent_msg +#define penumbra_core_component_funding_v1_EventFundingStreamReward_fields \ + &penumbra_core_component_funding_v1_EventFundingStreamReward_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_funding_v1_EventFundingStreamReward_size depends on runtime parameters */ +#define PENUMBRA_CORE_COMPONENT_FUNDING_V1_PENUMBRA_CORE_COMPONENT_FUNDING_V1_FUNDING_PB_H_MAX_SIZE \ + penumbra_core_component_funding_v1_GenesisContent_size +#define penumbra_core_component_funding_v1_FundingParameters_size 0 +#define penumbra_core_component_funding_v1_GenesisContent_size 2 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.c b/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.c new file mode 100644 index 0000000..ca8eeb7 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.c @@ -0,0 +1,191 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/governance/v1/governance.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_governance_v1_ZKDelegatorVoteProof, + penumbra_core_component_governance_v1_ZKDelegatorVoteProof, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalSubmit, penumbra_core_component_governance_v1_ProposalSubmit, 2) + +PB_BIND(penumbra_core_component_governance_v1_ProposalWithdraw, penumbra_core_component_governance_v1_ProposalWithdraw, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalDepositClaim, + penumbra_core_component_governance_v1_ProposalDepositClaim, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ValidatorVote, penumbra_core_component_governance_v1_ValidatorVote, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ValidatorVoteReason, penumbra_core_component_governance_v1_ValidatorVoteReason, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ValidatorVoteBody, penumbra_core_component_governance_v1_ValidatorVoteBody, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVote, penumbra_core_component_governance_v1_DelegatorVote, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVoteBody, penumbra_core_component_governance_v1_DelegatorVoteBody, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVoteView, penumbra_core_component_governance_v1_DelegatorVoteView, 2) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVoteView_Visible, + penumbra_core_component_governance_v1_DelegatorVoteView_Visible, 2) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVoteView_Opaque, + penumbra_core_component_governance_v1_DelegatorVoteView_Opaque, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_DelegatorVotePlan, penumbra_core_component_governance_v1_DelegatorVotePlan, 2) + +PB_BIND(penumbra_core_component_governance_v1_CommunityPoolDeposit, + penumbra_core_component_governance_v1_CommunityPoolDeposit, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_CommunityPoolSpend, penumbra_core_component_governance_v1_CommunityPoolSpend, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_CommunityPoolOutput, penumbra_core_component_governance_v1_CommunityPoolOutput, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Vote, penumbra_core_component_governance_v1_Vote, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalState, penumbra_core_component_governance_v1_ProposalState, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalState_Voting, + penumbra_core_component_governance_v1_ProposalState_Voting, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalState_Withdrawn, + penumbra_core_component_governance_v1_ProposalState_Withdrawn, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalState_Finished, + penumbra_core_component_governance_v1_ProposalState_Finished, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalState_Claimed, + penumbra_core_component_governance_v1_ProposalState_Claimed, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalOutcome, penumbra_core_component_governance_v1_ProposalOutcome, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn, + penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalOutcome_Passed, + penumbra_core_component_governance_v1_ProposalOutcome_Passed, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalOutcome_Failed, + penumbra_core_component_governance_v1_ProposalOutcome_Failed, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalOutcome_Slashed, + penumbra_core_component_governance_v1_ProposalOutcome_Slashed, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Tally, penumbra_core_component_governance_v1_Tally, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal, penumbra_core_component_governance_v1_Proposal, 2) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_Signaling, penumbra_core_component_governance_v1_Proposal_Signaling, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_Emergency, penumbra_core_component_governance_v1_Proposal_Emergency, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_ParameterChange, + penumbra_core_component_governance_v1_Proposal_ParameterChange, 2) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend, + penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_UpgradePlan, + penumbra_core_component_governance_v1_Proposal_UpgradePlan, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_FreezeIbcClient, + penumbra_core_component_governance_v1_Proposal_FreezeIbcClient, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient, + penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalInfoRequest, penumbra_core_component_governance_v1_ProposalInfoRequest, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalInfoResponse, + penumbra_core_component_governance_v1_ProposalInfoResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalDataRequest, penumbra_core_component_governance_v1_ProposalDataRequest, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalDataResponse, + penumbra_core_component_governance_v1_ProposalDataResponse, 2) + +PB_BIND(penumbra_core_component_governance_v1_ProposalRateDataRequest, + penumbra_core_component_governance_v1_ProposalRateDataRequest, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalRateDataResponse, + penumbra_core_component_governance_v1_ProposalRateDataResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalListRequest, penumbra_core_component_governance_v1_ProposalListRequest, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ProposalListResponse, + penumbra_core_component_governance_v1_ProposalListResponse, 2) + +PB_BIND(penumbra_core_component_governance_v1_ValidatorVotesRequest, + penumbra_core_component_governance_v1_ValidatorVotesRequest, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ValidatorVotesResponse, + penumbra_core_component_governance_v1_ValidatorVotesResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_GovernanceParameters, + penumbra_core_component_governance_v1_GovernanceParameters, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_GenesisContent, penumbra_core_component_governance_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_EncodedParameter, penumbra_core_component_governance_v1_EncodedParameter, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_ChangedAppParameters, + penumbra_core_component_governance_v1_ChangedAppParameters, 2) + +PB_BIND(penumbra_core_component_governance_v1_ChangedAppParametersSet, + penumbra_core_component_governance_v1_ChangedAppParametersSet, 2) + +PB_BIND(penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest, + penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse, + penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest, + penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse, + penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_NextProposalIdRequest, + penumbra_core_component_governance_v1_NextProposalIdRequest, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_NextProposalIdResponse, + penumbra_core_component_governance_v1_NextProposalIdResponse, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_Ratio, penumbra_core_component_governance_v1_Ratio, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_EventDelegatorVote, penumbra_core_component_governance_v1_EventDelegatorVote, + 2) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalDepositClaim, + penumbra_core_component_governance_v1_EventProposalDepositClaim, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_EventValidatorVote, penumbra_core_component_governance_v1_EventValidatorVote, + AUTO) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalWithdraw, + penumbra_core_component_governance_v1_EventProposalWithdraw, AUTO) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalSubmit, penumbra_core_component_governance_v1_EventProposalSubmit, + 2) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalPassed, penumbra_core_component_governance_v1_EventProposalPassed, + 2) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalFailed, penumbra_core_component_governance_v1_EventProposalFailed, + 2) + +PB_BIND(penumbra_core_component_governance_v1_EventProposalSlashed, + penumbra_core_component_governance_v1_EventProposalSlashed, 2) diff --git a/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.h b/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.h new file mode 100644 index 0000000..ab46201 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/governance/v1/governance.pb.h @@ -0,0 +1,2114 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_GOVERNANCE_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_GOVERNANCE_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/auction/v1/auction.pb.h" +#include "penumbra/core/component/community_pool/v1/community_pool.pb.h" +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/component/distributions/v1/distributions.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/funding/v1/funding.pb.h" +#include "penumbra/core/component/ibc/v1/ibc.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" +#include "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* All the different kinds of proposals. */ +typedef enum _penumbra_core_component_governance_v1_ProposalKind { + /* To make the linter happy */ + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UNSPECIFIED = 0, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_SIGNALING = 1, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_EMERGENCY = 2, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_PARAMETER_CHANGE = 3, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_COMMUNITY_POOL_SPEND = 4, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UPGRADE_PLAN = 5, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_FREEZE_IBC_CLIENT = 6, + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UNFREEZE_IBC_CLIENT = 7 +} penumbra_core_component_governance_v1_ProposalKind; + +/* A vote. */ +typedef enum _penumbra_core_component_governance_v1_Vote_Vote { + penumbra_core_component_governance_v1_Vote_Vote_VOTE_UNSPECIFIED = 0, + penumbra_core_component_governance_v1_Vote_Vote_VOTE_ABSTAIN = 1, + penumbra_core_component_governance_v1_Vote_Vote_VOTE_YES = 2, + penumbra_core_component_governance_v1_Vote_Vote_VOTE_NO = 3 +} penumbra_core_component_governance_v1_Vote_Vote; + +/* Struct definitions */ +/* A Penumbra ZK delegator vote proof. */ +typedef struct _penumbra_core_component_governance_v1_ZKDelegatorVoteProof { + pb_callback_t inner; +} penumbra_core_component_governance_v1_ZKDelegatorVoteProof; + +typedef struct _penumbra_core_component_governance_v1_ProposalWithdraw { + /* The proposal to be withdrawn. */ + uint64_t proposal; + /* The reason for the proposal being withdrawn. */ + pb_callback_t reason; +} penumbra_core_component_governance_v1_ProposalWithdraw; + +typedef struct _penumbra_core_component_governance_v1_ValidatorVoteReason { + pb_callback_t reason; +} penumbra_core_component_governance_v1_ValidatorVoteReason; + +typedef struct _penumbra_core_component_governance_v1_CommunityPoolDeposit { + /* The value to deposit into the Community Pool. */ + bool has_value; + penumbra_core_asset_v1_Value value; +} penumbra_core_component_governance_v1_CommunityPoolDeposit; + +typedef struct _penumbra_core_component_governance_v1_CommunityPoolSpend { + /* The value to spend from the Community Pool. */ + bool has_value; + penumbra_core_asset_v1_Value value; +} penumbra_core_component_governance_v1_CommunityPoolSpend; + +typedef struct _penumbra_core_component_governance_v1_CommunityPoolOutput { + /* The value to output from the Community Pool. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The address to send the output to. */ + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_core_component_governance_v1_CommunityPoolOutput; + +/* A vote on a proposal. */ +typedef struct _penumbra_core_component_governance_v1_Vote { + /* The vote. */ + penumbra_core_component_governance_v1_Vote_Vote vote; +} penumbra_core_component_governance_v1_Vote; + +typedef struct _penumbra_core_component_governance_v1_ValidatorVoteBody { + /* The proposal being voted on. */ + uint64_t proposal; + /* The vote. */ + bool has_vote; + penumbra_core_component_governance_v1_Vote vote; + /* The validator identity. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The validator governance key. */ + bool has_governance_key; + penumbra_core_keys_v1_GovernanceKey governance_key; + /* A justification of the vote. */ + bool has_reason; + penumbra_core_component_governance_v1_ValidatorVoteReason reason; +} penumbra_core_component_governance_v1_ValidatorVoteBody; + +typedef struct _penumbra_core_component_governance_v1_ValidatorVote { + /* The effecting data for the vote. */ + bool has_body; + penumbra_core_component_governance_v1_ValidatorVoteBody body; + /* The vote authorization signature is authorizing data. */ + bool has_auth_sig; + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature auth_sig; +} penumbra_core_component_governance_v1_ValidatorVote; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVoteBody { + /* The proposal being voted on. */ + uint64_t proposal; + /* The start position of the proposal in the TCT. */ + uint64_t start_position; + /* The vote. */ + bool has_vote; + penumbra_core_component_governance_v1_Vote vote; + /* The value of the delegation note. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The amount of the delegation note, in unbonded penumbra. */ + bool has_unbonded_amount; + penumbra_core_num_v1_Amount unbonded_amount; + /* The nullifier of the input note. */ + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + /* The randomized validating key for the spend authorization signature. */ + bool has_rk; + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey rk; +} penumbra_core_component_governance_v1_DelegatorVoteBody; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVote { + /* The effecting data for the vote. */ + bool has_body; + penumbra_core_component_governance_v1_DelegatorVoteBody body; + /* The vote authorization signature is authorizing data. */ + bool has_auth_sig; + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature auth_sig; + /* The vote proof is authorizing data. */ + bool has_proof; + penumbra_core_component_governance_v1_ZKDelegatorVoteProof proof; +} penumbra_core_component_governance_v1_DelegatorVote; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVoteView_Visible { + bool has_delegator_vote; + penumbra_core_component_governance_v1_DelegatorVote delegator_vote; + bool has_note; + penumbra_core_component_shielded_pool_v1_NoteView note; +} penumbra_core_component_governance_v1_DelegatorVoteView_Visible; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVoteView_Opaque { + bool has_delegator_vote; + penumbra_core_component_governance_v1_DelegatorVote delegator_vote; +} penumbra_core_component_governance_v1_DelegatorVoteView_Opaque; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVoteView { + pb_size_t which_delegator_vote; + union { + penumbra_core_component_governance_v1_DelegatorVoteView_Visible visible; + penumbra_core_component_governance_v1_DelegatorVoteView_Opaque opaque; + } delegator_vote; +} penumbra_core_component_governance_v1_DelegatorVoteView; + +typedef struct _penumbra_core_component_governance_v1_DelegatorVotePlan { + /* The proposal to vote on. */ + uint64_t proposal; + /* The start position of the proposal in the TCT. */ + uint64_t start_position; + /* The vote to cast. */ + bool has_vote; + penumbra_core_component_governance_v1_Vote vote; + /* The delegation note to prove that we can vote. */ + bool has_staked_note; + penumbra_core_component_shielded_pool_v1_Note staked_note; + /* The position of that delegation note. */ + uint64_t staked_note_position; + /* The unbonded amount equivalent to the delegation note. */ + bool has_unbonded_amount; + penumbra_core_num_v1_Amount unbonded_amount; + /* The randomizer to use for the proof of spend capability. */ + pb_callback_t randomizer; + /* The first blinding factor to use for the ZK delegator vote proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK delegator vote proof. */ + pb_callback_t proof_blinding_s; +} penumbra_core_component_governance_v1_DelegatorVotePlan; + +/* Voting is in progress and the proposal has not yet concluded voting or been withdrawn. */ +typedef struct _penumbra_core_component_governance_v1_ProposalState_Voting { + char dummy_field; +} penumbra_core_component_governance_v1_ProposalState_Voting; + +/* The proposal has been withdrawn but the voting period is not yet concluded. */ +typedef struct _penumbra_core_component_governance_v1_ProposalState_Withdrawn { + /* The reason for the withdrawal. */ + pb_callback_t reason; +} penumbra_core_component_governance_v1_ProposalState_Withdrawn; + +/* Whether or not the proposal was withdrawn. */ +typedef struct _penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn { + /* The reason for withdrawing the proposal during the voting period. */ + pb_callback_t reason; +} penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn; + +/* The proposal was passed. */ +typedef struct _penumbra_core_component_governance_v1_ProposalOutcome_Passed { + char dummy_field; +} penumbra_core_component_governance_v1_ProposalOutcome_Passed; + +/* The proposal did not pass. */ +typedef struct _penumbra_core_component_governance_v1_ProposalOutcome_Failed { + /* Present if the proposal was withdrawn during the voting period. */ + bool has_withdrawn; + penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn withdrawn; +} penumbra_core_component_governance_v1_ProposalOutcome_Failed; + +/* The proposal did not pass, and was slashed. */ +typedef struct _penumbra_core_component_governance_v1_ProposalOutcome_Slashed { + /* Present if the proposal was withdrawn during the voting period. */ + bool has_withdrawn; + penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn withdrawn; +} penumbra_core_component_governance_v1_ProposalOutcome_Slashed; + +/* The outcome of a concluded proposal. */ +typedef struct _penumbra_core_component_governance_v1_ProposalOutcome { + pb_size_t which_outcome; + union { + penumbra_core_component_governance_v1_ProposalOutcome_Passed passed; + penumbra_core_component_governance_v1_ProposalOutcome_Failed failed; + penumbra_core_component_governance_v1_ProposalOutcome_Slashed slashed; + } outcome; +} penumbra_core_component_governance_v1_ProposalOutcome; + +typedef struct _penumbra_core_component_governance_v1_ProposalDepositClaim { + /* The proposal to claim the deposit for. */ + uint64_t proposal; + /* The expected deposit amount. */ + bool has_deposit_amount; + penumbra_core_num_v1_Amount deposit_amount; + /* The outcome of the proposal. */ + bool has_outcome; + penumbra_core_component_governance_v1_ProposalOutcome outcome; +} penumbra_core_component_governance_v1_ProposalDepositClaim; + +/* The voting period has ended, and the proposal has been assigned an outcome. */ +typedef struct _penumbra_core_component_governance_v1_ProposalState_Finished { + bool has_outcome; + penumbra_core_component_governance_v1_ProposalOutcome outcome; +} penumbra_core_component_governance_v1_ProposalState_Finished; + +/* The voting period has ended, and the original proposer has claimed their deposit. */ +typedef struct _penumbra_core_component_governance_v1_ProposalState_Claimed { + bool has_outcome; + penumbra_core_component_governance_v1_ProposalOutcome outcome; +} penumbra_core_component_governance_v1_ProposalState_Claimed; + +/* The current state of a proposal. */ +typedef struct _penumbra_core_component_governance_v1_ProposalState { + pb_size_t which_state; + union { + penumbra_core_component_governance_v1_ProposalState_Voting voting; + penumbra_core_component_governance_v1_ProposalState_Withdrawn withdrawn; + penumbra_core_component_governance_v1_ProposalState_Finished finished; + penumbra_core_component_governance_v1_ProposalState_Claimed claimed; + } state; +} penumbra_core_component_governance_v1_ProposalState; + +/* A tally of votes on a proposal. */ +typedef struct _penumbra_core_component_governance_v1_Tally { + /* The number of votes in favor of the proposal. */ + uint64_t yes; + /* The number of votes against the proposal. */ + uint64_t no; + /* The number of abstentions. */ + uint64_t abstain; +} penumbra_core_component_governance_v1_Tally; + +/* A signaling proposal is meant to register a vote on-chain, but does not have an automatic + effect when passed. + + It optionally contains a reference to a commit which contains code to upgrade the chain. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_Signaling { + /* The commit to be voted upon, if any is relevant. */ + pb_callback_t commit; +} penumbra_core_component_governance_v1_Proposal_Signaling; + +/* An emergency proposal can be passed instantaneously by a 1/3 majority of validators, without + waiting for the voting period to expire. + + If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the + proposal is passed. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_Emergency { + /* If `true`, the chain will halt immediately when the proposal is passed. */ + bool halt_chain; +} penumbra_core_component_governance_v1_Proposal_Emergency; + +/* A Community Pool spend proposal describes zero or more transactions to execute on behalf of the Community Pool, with + access to its funds, and zero or more scheduled transactions from previous passed proposals to + cancel. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend { + /* The transaction plan to be executed at the time the proposal is passed. This must be a + transaction plan which can be executed by the Community Pool, which means it can't require any witness + data or authorization signatures, but it may use the `CommunityPoolSpend` action. */ + bool has_transaction_plan; + google_protobuf_Any transaction_plan; +} penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend; + +/* An upgrade plan describes a candidate upgrade to be executed at a certain height. If passed, the chain + will halt at the specified height. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_UpgradePlan { + uint64_t height; +} penumbra_core_component_governance_v1_Proposal_UpgradePlan; + +/* Freeze an existing IBC client. + Like `Emergency` proposals, it is enacted immediately after receiving + +2/3 of validator votes. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_FreezeIbcClient { + pb_callback_t client_id; +} penumbra_core_component_governance_v1_Proposal_FreezeIbcClient; + +/* Unfreeze an existing IBC client. + Like `Emergency` proposals, it is enacted immediately after receiving + +2/3 of validator votes. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient { + pb_callback_t client_id; +} penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient; + +typedef struct _penumbra_core_component_governance_v1_ProposalInfoRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; +} penumbra_core_component_governance_v1_ProposalInfoRequest; + +typedef struct _penumbra_core_component_governance_v1_ProposalInfoResponse { + /* The block height at which the proposal started voting. */ + uint64_t start_block_height; + /* The position of the state commitment tree at which the proposal is considered to have started voting. */ + uint64_t start_position; +} penumbra_core_component_governance_v1_ProposalInfoResponse; + +typedef struct _penumbra_core_component_governance_v1_ProposalDataRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; +} penumbra_core_component_governance_v1_ProposalDataRequest; + +/* Requests the validator rate data for a proposal. */ +typedef struct _penumbra_core_component_governance_v1_ProposalRateDataRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; +} penumbra_core_component_governance_v1_ProposalRateDataRequest; + +/* The rate data for a single validator. */ +typedef struct _penumbra_core_component_governance_v1_ProposalRateDataResponse { + bool has_rate_data; + penumbra_core_component_stake_v1_RateData rate_data; +} penumbra_core_component_governance_v1_ProposalRateDataResponse; + +/* Requests the list of all proposals. */ +typedef struct _penumbra_core_component_governance_v1_ProposalListRequest { + /* Whether to include proposals that are no longer active.; */ + bool inactive; /* TODO: we could filter by starting block height here? */ +} penumbra_core_component_governance_v1_ProposalListRequest; + +/* Requests the list of all validator votes for a given proposal. */ +typedef struct _penumbra_core_component_governance_v1_ValidatorVotesRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; +} penumbra_core_component_governance_v1_ValidatorVotesRequest; + +/* The data for a single validator vote. */ +typedef struct _penumbra_core_component_governance_v1_ValidatorVotesResponse { + /* The vote. */ + bool has_vote; + penumbra_core_component_governance_v1_Vote vote; + /* The validator identity. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_governance_v1_ValidatorVotesResponse; + +/* Governance configuration data. */ +typedef struct _penumbra_core_component_governance_v1_GovernanceParameters { + /* The number of blocks during which a proposal is voted on. */ + uint64_t proposal_voting_blocks; + /* The deposit required to create a proposal. */ + bool has_proposal_deposit_amount; + penumbra_core_num_v1_Amount proposal_deposit_amount; + /* The quorum required for a proposal to be considered valid, as a fraction of the total stake + weight of the network. */ + pb_callback_t proposal_valid_quorum; + /* The threshold for a proposal to pass voting, as a ratio of "yes" votes over "no" votes. */ + pb_callback_t proposal_pass_threshold; + /* The threshold for a proposal to be slashed, regardless of whether the "yes" and "no" votes + would have passed it, as a ratio of "no" votes over all total votes. */ + pb_callback_t proposal_slash_threshold; +} penumbra_core_component_governance_v1_GovernanceParameters; + +/* Governance genesis state. */ +typedef struct _penumbra_core_component_governance_v1_GenesisContent { + /* Governance parameters. */ + bool has_governance_params; + penumbra_core_component_governance_v1_GovernanceParameters governance_params; +} penumbra_core_component_governance_v1_GenesisContent; + +typedef struct _penumbra_core_component_governance_v1_EncodedParameter { + /* The component name in the `AppParameters`. + + This is the ProtoJSON-produced key in the `AppParameters` structure. */ + pb_callback_t component; + /* The parameter key in the component parameters. + + This is the ProtoJSON-produced field name in the component's substructure. */ + pb_callback_t key; + /* The parameter value. + + This is the ProtoJSON-encoded value of the parameter. */ + pb_callback_t value; +} penumbra_core_component_governance_v1_EncodedParameter; + +/* DEPRECATED */ +typedef struct _penumbra_core_component_governance_v1_ChangedAppParameters { + /* Sct module parameters. */ + bool has_sct_params; + penumbra_core_component_sct_v1_SctParameters sct_params; + /* Community Pool module parameters. */ + bool has_community_pool_params; + penumbra_core_component_community_pool_v1_CommunityPoolParameters community_pool_params; + /* Governance module parameters. */ + bool has_governance_params; + penumbra_core_component_governance_v1_GovernanceParameters governance_params; + /* IBC module parameters. */ + bool has_ibc_params; + penumbra_core_component_ibc_v1_IbcParameters ibc_params; + /* Stake module parameters. */ + bool has_stake_params; + penumbra_core_component_stake_v1_StakeParameters stake_params; + /* Fee module parameters. */ + bool has_fee_params; + penumbra_core_component_fee_v1_FeeParameters fee_params; + /* Distributions module parameters. */ + bool has_distributions_params; + penumbra_core_component_distributions_v1_DistributionsParameters distributions_params; + /* Funding module parameters. */ + bool has_funding_params; + penumbra_core_component_funding_v1_FundingParameters funding_params; + /* Shielded pool module parameters */ + bool has_shielded_pool_params; + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters shielded_pool_params; + /* DEX component parameters */ + bool has_dex_params; + penumbra_core_component_dex_v1_DexParameters dex_params; + /* Auction module parameters. */ + bool has_auction_params; + penumbra_core_component_auction_v1_AuctionParameters auction_params; +} penumbra_core_component_governance_v1_ChangedAppParameters; + +/* A parameter change proposal describes a replacement of the app parameters, which should take + effect when the proposal is passed. */ +typedef struct _penumbra_core_component_governance_v1_Proposal_ParameterChange { + /* DEPRECATED */ + bool has_old_parameters; + penumbra_core_component_governance_v1_ChangedAppParameters old_parameters; + /* DEPRECATED */ + bool has_new_parameters; + penumbra_core_component_governance_v1_ChangedAppParameters new_parameters; + /* A list of encoded preconditions for the parameter change: even if the + proposal passes, the update will not be applied if the value of the + precondition does not match the proposal at the time it is enacted. + + This can be empty, in which case the changes will be applied + unconditionally. */ + pb_callback_t preconditions; + /* A list of encoded changes to the application parameters. */ + pb_callback_t changes; +} penumbra_core_component_governance_v1_Proposal_ParameterChange; + +/* A proposal to be voted upon. */ +typedef struct _penumbra_core_component_governance_v1_Proposal { + /* A short title for the proposal. */ + pb_callback_t title; + /* A natural-language description of the effect of the proposal and its justification. */ + pb_callback_t description; + /* The unique identifier of the proposal. */ + uint64_t id; + pb_size_t which_payload; + union { + penumbra_core_component_governance_v1_Proposal_Signaling signaling; + penumbra_core_component_governance_v1_Proposal_Emergency emergency; + penumbra_core_component_governance_v1_Proposal_ParameterChange parameter_change; + penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend community_pool_spend; + penumbra_core_component_governance_v1_Proposal_UpgradePlan upgrade_plan; + penumbra_core_component_governance_v1_Proposal_FreezeIbcClient freeze_ibc_client; + penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient unfreeze_ibc_client; + } payload; +} penumbra_core_component_governance_v1_Proposal; + +typedef struct _penumbra_core_component_governance_v1_ProposalSubmit { + /* The proposal to be submitted. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; + /* The amount of the proposal deposit. */ + bool has_deposit_amount; + penumbra_core_num_v1_Amount deposit_amount; +} penumbra_core_component_governance_v1_ProposalSubmit; + +typedef struct _penumbra_core_component_governance_v1_ProposalDataResponse { + /* The proposal metadata. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; + /* The block height at which the proposal started voting. */ + uint64_t start_block_height; + /* The block height at which the proposal ends voting. */ + uint64_t end_block_height; + /* The position of the state commitment tree at which the proposal is considered to have started voting. */ + uint64_t start_position; + /* The current state of the proposal. */ + bool has_state; + penumbra_core_component_governance_v1_ProposalState state; + /* The deposit amount paid for the proposal. */ + bool has_proposal_deposit_amount; + penumbra_core_num_v1_Amount proposal_deposit_amount; +} penumbra_core_component_governance_v1_ProposalDataResponse; + +/* The data for a single proposal. */ +typedef struct _penumbra_core_component_governance_v1_ProposalListResponse { + /* The proposal metadata. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; + /* The block height at which the proposal started voting. */ + uint64_t start_block_height; + /* The block height at which the proposal ends voting. */ + uint64_t end_block_height; + /* The position of the state commitment tree at which the proposal is considered to have started voting. */ + uint64_t start_position; + /* The current state of the proposal. */ + bool has_state; + penumbra_core_component_governance_v1_ProposalState state; +} penumbra_core_component_governance_v1_ProposalListResponse; + +/* DEPRECATED */ +typedef struct _penumbra_core_component_governance_v1_ChangedAppParametersSet { + /* The set of app parameters at the time the proposal was submitted. */ + bool has_old; + penumbra_core_component_governance_v1_ChangedAppParameters old; + /* The new set of parameters the proposal is trying to enact. */ + bool has_new; + penumbra_core_component_governance_v1_ChangedAppParameters new; +} penumbra_core_component_governance_v1_ChangedAppParametersSet; + +typedef struct _penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; + /* The validator identity key to request information on. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest; + +typedef struct _penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse { + /* The voting power for the given identity key at the start of the proposal. + TODO: since we don't support optional fields in our protos any more, + this will be set to 0 if the validator was not active at the start of the proposal. + Is this potentially an issue? */ + uint64_t voting_power; +} penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse; + +typedef struct _penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest { + /* The proposal id to request information on. */ + uint64_t proposal_id; +} penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest; + +typedef struct _penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse { + /* The tally of delegator votes for a given validator for the proposal. */ + bool has_tally; + penumbra_core_component_governance_v1_Tally tally; + /* The validator identity associated with the tally. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse; + +typedef struct _penumbra_core_component_governance_v1_NextProposalIdRequest { + char dummy_field; +} penumbra_core_component_governance_v1_NextProposalIdRequest; + +typedef struct _penumbra_core_component_governance_v1_NextProposalIdResponse { + /* The next proposal ID. */ + uint64_t next_proposal_id; +} penumbra_core_component_governance_v1_NextProposalIdResponse; + +/* The ratio between two numbers, used in governance to describe vote thresholds and quorums. */ +typedef struct _penumbra_core_component_governance_v1_Ratio { + /* The numerator. */ + uint64_t numerator; + /* The denominator. */ + uint64_t denominator; +} penumbra_core_component_governance_v1_Ratio; + +typedef struct _penumbra_core_component_governance_v1_EventDelegatorVote { + /* The delegator vote. */ + bool has_vote; + penumbra_core_component_governance_v1_DelegatorVote vote; + /* The corresponding validator's identity key. */ + bool has_validator_identity_key; + penumbra_core_keys_v1_IdentityKey validator_identity_key; +} penumbra_core_component_governance_v1_EventDelegatorVote; + +typedef struct _penumbra_core_component_governance_v1_EventProposalDepositClaim { + /* The deposit claim body. */ + bool has_deposit_claim; + penumbra_core_component_governance_v1_ProposalDepositClaim deposit_claim; +} penumbra_core_component_governance_v1_EventProposalDepositClaim; + +typedef struct _penumbra_core_component_governance_v1_EventValidatorVote { + /* The validator vote. */ + bool has_vote; + penumbra_core_component_governance_v1_ValidatorVote vote; + /* The validator's voting power at the time of the proposal's start. */ + uint64_t voting_power; +} penumbra_core_component_governance_v1_EventValidatorVote; + +typedef struct _penumbra_core_component_governance_v1_EventProposalWithdraw { + /* Details on the withdrawn proposal. */ + bool has_withdraw; + penumbra_core_component_governance_v1_ProposalWithdraw withdraw; +} penumbra_core_component_governance_v1_EventProposalWithdraw; + +typedef struct _penumbra_core_component_governance_v1_EventProposalSubmit { + /* Details on the submitted proposal. */ + bool has_submit; + penumbra_core_component_governance_v1_ProposalSubmit submit; + /* The start height for the proposal. */ + uint64_t start_height; + /* The end height for the proposal. */ + uint64_t end_height; +} penumbra_core_component_governance_v1_EventProposalSubmit; + +typedef struct _penumbra_core_component_governance_v1_EventProposalPassed { + /* The passed proposal. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; +} penumbra_core_component_governance_v1_EventProposalPassed; + +typedef struct _penumbra_core_component_governance_v1_EventProposalFailed { + /* The failed proposal. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; +} penumbra_core_component_governance_v1_EventProposalFailed; + +typedef struct _penumbra_core_component_governance_v1_EventProposalSlashed { + /* The slashed proposal. */ + bool has_proposal; + penumbra_core_component_governance_v1_Proposal proposal; +} penumbra_core_component_governance_v1_EventProposalSlashed; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_core_component_governance_v1_ProposalKind_MIN \ + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UNSPECIFIED +#define _penumbra_core_component_governance_v1_ProposalKind_MAX \ + penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UNFREEZE_IBC_CLIENT +#define _penumbra_core_component_governance_v1_ProposalKind_ARRAYSIZE \ + ((penumbra_core_component_governance_v1_ProposalKind)(penumbra_core_component_governance_v1_ProposalKind_PROPOSAL_KIND_UNFREEZE_IBC_CLIENT + \ + 1)) + +#define _penumbra_core_component_governance_v1_Vote_Vote_MIN penumbra_core_component_governance_v1_Vote_Vote_VOTE_UNSPECIFIED +#define _penumbra_core_component_governance_v1_Vote_Vote_MAX penumbra_core_component_governance_v1_Vote_Vote_VOTE_NO +#define _penumbra_core_component_governance_v1_Vote_Vote_ARRAYSIZE \ + ((penumbra_core_component_governance_v1_Vote_Vote)(penumbra_core_component_governance_v1_Vote_Vote_VOTE_NO + 1)) + +#define penumbra_core_component_governance_v1_Vote_vote_ENUMTYPE penumbra_core_component_governance_v1_Vote_Vote + +/* Initializer values for message structs */ +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalSubmit_init_default \ + { false, penumbra_core_component_governance_v1_Proposal_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_governance_v1_ProposalWithdraw_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalDepositClaim_init_default \ + { \ + 0, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_component_governance_v1_ProposalOutcome_init_default \ + } +#define penumbra_core_component_governance_v1_ValidatorVote_init_default \ + { \ + false, penumbra_core_component_governance_v1_ValidatorVoteBody_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default \ + } +#define penumbra_core_component_governance_v1_ValidatorVoteReason_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ValidatorVoteBody_init_default \ + { \ + 0, false, penumbra_core_component_governance_v1_Vote_init_default, false, \ + penumbra_core_keys_v1_IdentityKey_init_default, false, penumbra_core_keys_v1_GovernanceKey_init_default, false, \ + penumbra_core_component_governance_v1_ValidatorVoteReason_init_default \ + } +#define penumbra_core_component_governance_v1_DelegatorVote_init_default \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVoteBody_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default, false, \ + penumbra_core_component_governance_v1_ZKDelegatorVoteProof_init_default \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteBody_init_default \ + { \ + 0, 0, false, penumbra_core_component_governance_v1_Vote_init_default, false, \ + penumbra_core_asset_v1_Value_init_default, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_component_sct_v1_Nullifier_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_default \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_init_default \ + { \ + 0, { penumbra_core_component_governance_v1_DelegatorVoteView_Visible_init_default } \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_init_default \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVote_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_init_default \ + { false, penumbra_core_component_governance_v1_DelegatorVote_init_default } +#define penumbra_core_component_governance_v1_DelegatorVotePlan_init_default \ + { \ + 0, 0, false, penumbra_core_component_governance_v1_Vote_init_default, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_default, 0, false, penumbra_core_num_v1_Amount_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_init_default \ + { false, penumbra_core_asset_v1_Value_init_default } +#define penumbra_core_component_governance_v1_CommunityPoolSpend_init_default \ + { false, penumbra_core_asset_v1_Value_init_default } +#define penumbra_core_component_governance_v1_CommunityPoolOutput_init_default \ + { false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_core_component_governance_v1_Vote_init_default \ + { _penumbra_core_component_governance_v1_Vote_Vote_MIN } +#define penumbra_core_component_governance_v1_ProposalState_init_default \ + { \ + 0, { penumbra_core_component_governance_v1_ProposalState_Voting_init_default } \ + } +#define penumbra_core_component_governance_v1_ProposalState_Voting_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalState_Finished_init_default \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_init_default } +#define penumbra_core_component_governance_v1_ProposalState_Claimed_init_default \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_init_default } +#define penumbra_core_component_governance_v1_ProposalOutcome_init_default \ + { \ + 0, { penumbra_core_component_governance_v1_ProposalOutcome_Passed_init_default } \ + } +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_init_default \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_default } +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_init_default \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_default } +#define penumbra_core_component_governance_v1_Tally_init_default \ + { 0, 0, 0 } +#define penumbra_core_component_governance_v1_Proposal_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, { penumbra_core_component_governance_v1_Proposal_Signaling_init_default } \ + } +#define penumbra_core_component_governance_v1_Proposal_Signaling_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_Proposal_Emergency_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_init_default \ + { \ + false, penumbra_core_component_governance_v1_ChangedAppParameters_init_default, false, \ + penumbra_core_component_governance_v1_ChangedAppParameters_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_init_default \ + { false, google_protobuf_Any_init_default } +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalInfoRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalInfoResponse_init_default \ + { 0, 0 } +#define penumbra_core_component_governance_v1_ProposalDataRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalDataResponse_init_default \ + { \ + false, penumbra_core_component_governance_v1_Proposal_init_default, 0, 0, 0, false, \ + penumbra_core_component_governance_v1_ProposalState_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_init_default \ + { false, penumbra_core_component_stake_v1_RateData_init_default } +#define penumbra_core_component_governance_v1_ProposalListRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalListResponse_init_default \ + { \ + false, penumbra_core_component_governance_v1_Proposal_init_default, 0, 0, 0, false, \ + penumbra_core_component_governance_v1_ProposalState_init_default \ + } +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_init_default \ + { false, penumbra_core_component_governance_v1_Vote_init_default, false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_governance_v1_GovernanceParameters_init_default \ + { \ + 0, false, penumbra_core_num_v1_Amount_init_default, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_GenesisContent_init_default \ + { false, penumbra_core_component_governance_v1_GovernanceParameters_init_default } +#define penumbra_core_component_governance_v1_EncodedParameter_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ChangedAppParameters_init_default \ + { \ + false, penumbra_core_component_sct_v1_SctParameters_init_default, false, \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_default, false, \ + penumbra_core_component_governance_v1_GovernanceParameters_init_default, false, \ + penumbra_core_component_ibc_v1_IbcParameters_init_default, false, \ + penumbra_core_component_stake_v1_StakeParameters_init_default, false, \ + penumbra_core_component_fee_v1_FeeParameters_init_default, false, \ + penumbra_core_component_distributions_v1_DistributionsParameters_init_default, false, \ + penumbra_core_component_funding_v1_FundingParameters_init_default, false, \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_default, false, \ + penumbra_core_component_dex_v1_DexParameters_init_default, false, \ + penumbra_core_component_auction_v1_AuctionParameters_init_default \ + } +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_init_default \ + { \ + false, penumbra_core_component_governance_v1_ChangedAppParameters_init_default, false, \ + penumbra_core_component_governance_v1_ChangedAppParameters_init_default \ + } +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_init_default \ + { 0, false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_init_default \ + { \ + false, penumbra_core_component_governance_v1_Tally_init_default, false, \ + penumbra_core_keys_v1_IdentityKey_init_default \ + } +#define penumbra_core_component_governance_v1_NextProposalIdRequest_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_NextProposalIdResponse_init_default \ + { 0 } +#define penumbra_core_component_governance_v1_Ratio_init_default \ + { 0, 0 } +#define penumbra_core_component_governance_v1_EventDelegatorVote_init_default \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVote_init_default, false, \ + penumbra_core_keys_v1_IdentityKey_init_default \ + } +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_init_default \ + { false, penumbra_core_component_governance_v1_ProposalDepositClaim_init_default } +#define penumbra_core_component_governance_v1_EventValidatorVote_init_default \ + { false, penumbra_core_component_governance_v1_ValidatorVote_init_default, 0 } +#define penumbra_core_component_governance_v1_EventProposalWithdraw_init_default \ + { false, penumbra_core_component_governance_v1_ProposalWithdraw_init_default } +#define penumbra_core_component_governance_v1_EventProposalSubmit_init_default \ + { false, penumbra_core_component_governance_v1_ProposalSubmit_init_default, 0, 0 } +#define penumbra_core_component_governance_v1_EventProposalPassed_init_default \ + { false, penumbra_core_component_governance_v1_Proposal_init_default } +#define penumbra_core_component_governance_v1_EventProposalFailed_init_default \ + { false, penumbra_core_component_governance_v1_Proposal_init_default } +#define penumbra_core_component_governance_v1_EventProposalSlashed_init_default \ + { false, penumbra_core_component_governance_v1_Proposal_init_default } +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalSubmit_init_zero \ + { false, penumbra_core_component_governance_v1_Proposal_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_governance_v1_ProposalWithdraw_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalDepositClaim_init_zero \ + { \ + 0, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_component_governance_v1_ProposalOutcome_init_zero \ + } +#define penumbra_core_component_governance_v1_ValidatorVote_init_zero \ + { \ + false, penumbra_core_component_governance_v1_ValidatorVoteBody_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero \ + } +#define penumbra_core_component_governance_v1_ValidatorVoteReason_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ValidatorVoteBody_init_zero \ + { \ + 0, false, penumbra_core_component_governance_v1_Vote_init_zero, false, penumbra_core_keys_v1_IdentityKey_init_zero, \ + false, penumbra_core_keys_v1_GovernanceKey_init_zero, false, \ + penumbra_core_component_governance_v1_ValidatorVoteReason_init_zero \ + } +#define penumbra_core_component_governance_v1_DelegatorVote_init_zero \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVoteBody_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero, false, \ + penumbra_core_component_governance_v1_ZKDelegatorVoteProof_init_zero \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteBody_init_zero \ + { \ + 0, 0, false, penumbra_core_component_governance_v1_Vote_init_zero, false, penumbra_core_asset_v1_Value_init_zero, \ + false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_component_sct_v1_Nullifier_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_zero \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_init_zero \ + { \ + 0, { penumbra_core_component_governance_v1_DelegatorVoteView_Visible_init_zero } \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_init_zero \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVote_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero \ + } +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_init_zero \ + { false, penumbra_core_component_governance_v1_DelegatorVote_init_zero } +#define penumbra_core_component_governance_v1_DelegatorVotePlan_init_zero \ + { \ + 0, 0, false, penumbra_core_component_governance_v1_Vote_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_zero, 0, false, penumbra_core_num_v1_Amount_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero } +#define penumbra_core_component_governance_v1_CommunityPoolSpend_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero } +#define penumbra_core_component_governance_v1_CommunityPoolOutput_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_core_component_governance_v1_Vote_init_zero \ + { _penumbra_core_component_governance_v1_Vote_Vote_MIN } +#define penumbra_core_component_governance_v1_ProposalState_init_zero \ + { \ + 0, { penumbra_core_component_governance_v1_ProposalState_Voting_init_zero } \ + } +#define penumbra_core_component_governance_v1_ProposalState_Voting_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalState_Finished_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_init_zero } +#define penumbra_core_component_governance_v1_ProposalState_Claimed_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_init_zero } +#define penumbra_core_component_governance_v1_ProposalOutcome_init_zero \ + { \ + 0, { penumbra_core_component_governance_v1_ProposalOutcome_Passed_init_zero } \ + } +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_zero } +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_init_zero } +#define penumbra_core_component_governance_v1_Tally_init_zero \ + { 0, 0, 0 } +#define penumbra_core_component_governance_v1_Proposal_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, { penumbra_core_component_governance_v1_Proposal_Signaling_init_zero } \ + } +#define penumbra_core_component_governance_v1_Proposal_Signaling_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_Proposal_Emergency_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_init_zero \ + { \ + false, penumbra_core_component_governance_v1_ChangedAppParameters_init_zero, false, \ + penumbra_core_component_governance_v1_ChangedAppParameters_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_init_zero \ + { false, google_protobuf_Any_init_zero } +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ProposalInfoRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalInfoResponse_init_zero \ + { 0, 0 } +#define penumbra_core_component_governance_v1_ProposalDataRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalDataResponse_init_zero \ + { \ + false, penumbra_core_component_governance_v1_Proposal_init_zero, 0, 0, 0, false, \ + penumbra_core_component_governance_v1_ProposalState_init_zero, false, penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_init_zero \ + { false, penumbra_core_component_stake_v1_RateData_init_zero } +#define penumbra_core_component_governance_v1_ProposalListRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ProposalListResponse_init_zero \ + { \ + false, penumbra_core_component_governance_v1_Proposal_init_zero, 0, 0, 0, false, \ + penumbra_core_component_governance_v1_ProposalState_init_zero \ + } +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_init_zero \ + { false, penumbra_core_component_governance_v1_Vote_init_zero, false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_governance_v1_GovernanceParameters_init_zero \ + { \ + 0, false, penumbra_core_num_v1_Amount_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_governance_v1_GovernanceParameters_init_zero } +#define penumbra_core_component_governance_v1_EncodedParameter_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_governance_v1_ChangedAppParameters_init_zero \ + { \ + false, penumbra_core_component_sct_v1_SctParameters_init_zero, false, \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters_init_zero, false, \ + penumbra_core_component_governance_v1_GovernanceParameters_init_zero, false, \ + penumbra_core_component_ibc_v1_IbcParameters_init_zero, false, \ + penumbra_core_component_stake_v1_StakeParameters_init_zero, false, \ + penumbra_core_component_fee_v1_FeeParameters_init_zero, false, \ + penumbra_core_component_distributions_v1_DistributionsParameters_init_zero, false, \ + penumbra_core_component_funding_v1_FundingParameters_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_zero, false, \ + penumbra_core_component_dex_v1_DexParameters_init_zero, false, \ + penumbra_core_component_auction_v1_AuctionParameters_init_zero \ + } +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_init_zero \ + { \ + false, penumbra_core_component_governance_v1_ChangedAppParameters_init_zero, false, \ + penumbra_core_component_governance_v1_ChangedAppParameters_init_zero \ + } +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_init_zero \ + { 0, false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_init_zero \ + { false, penumbra_core_component_governance_v1_Tally_init_zero, false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_governance_v1_NextProposalIdRequest_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_NextProposalIdResponse_init_zero \ + { 0 } +#define penumbra_core_component_governance_v1_Ratio_init_zero \ + { 0, 0 } +#define penumbra_core_component_governance_v1_EventDelegatorVote_init_zero \ + { \ + false, penumbra_core_component_governance_v1_DelegatorVote_init_zero, false, \ + penumbra_core_keys_v1_IdentityKey_init_zero \ + } +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalDepositClaim_init_zero } +#define penumbra_core_component_governance_v1_EventValidatorVote_init_zero \ + { false, penumbra_core_component_governance_v1_ValidatorVote_init_zero, 0 } +#define penumbra_core_component_governance_v1_EventProposalWithdraw_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalWithdraw_init_zero } +#define penumbra_core_component_governance_v1_EventProposalSubmit_init_zero \ + { false, penumbra_core_component_governance_v1_ProposalSubmit_init_zero, 0, 0 } +#define penumbra_core_component_governance_v1_EventProposalPassed_init_zero \ + { false, penumbra_core_component_governance_v1_Proposal_init_zero } +#define penumbra_core_component_governance_v1_EventProposalFailed_init_zero \ + { false, penumbra_core_component_governance_v1_Proposal_init_zero } +#define penumbra_core_component_governance_v1_EventProposalSlashed_init_zero \ + { false, penumbra_core_component_governance_v1_Proposal_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_inner_tag 1 +#define penumbra_core_component_governance_v1_ProposalWithdraw_proposal_tag 1 +#define penumbra_core_component_governance_v1_ProposalWithdraw_reason_tag 2 +#define penumbra_core_component_governance_v1_ValidatorVoteReason_reason_tag 1 +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_value_tag 1 +#define penumbra_core_component_governance_v1_CommunityPoolSpend_value_tag 1 +#define penumbra_core_component_governance_v1_CommunityPoolOutput_value_tag 1 +#define penumbra_core_component_governance_v1_CommunityPoolOutput_address_tag 2 +#define penumbra_core_component_governance_v1_Vote_vote_tag 1 +#define penumbra_core_component_governance_v1_ValidatorVoteBody_proposal_tag 1 +#define penumbra_core_component_governance_v1_ValidatorVoteBody_vote_tag 2 +#define penumbra_core_component_governance_v1_ValidatorVoteBody_identity_key_tag 3 +#define penumbra_core_component_governance_v1_ValidatorVoteBody_governance_key_tag 4 +#define penumbra_core_component_governance_v1_ValidatorVoteBody_reason_tag 5 +#define penumbra_core_component_governance_v1_ValidatorVote_body_tag 1 +#define penumbra_core_component_governance_v1_ValidatorVote_auth_sig_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_proposal_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_start_position_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_vote_tag 3 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_value_tag 4 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_unbonded_amount_tag 5 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_nullifier_tag 6 +#define penumbra_core_component_governance_v1_DelegatorVoteBody_rk_tag 7 +#define penumbra_core_component_governance_v1_DelegatorVote_body_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVote_auth_sig_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVote_proof_tag 3 +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_delegator_vote_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_note_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_delegator_vote_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVoteView_visible_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVoteView_opaque_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_proposal_tag 1 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_start_position_tag 2 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_vote_tag 3 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_staked_note_tag 4 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_staked_note_position_tag 5 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_unbonded_amount_tag 6 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_randomizer_tag 7 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_proof_blinding_r_tag 8 +#define penumbra_core_component_governance_v1_DelegatorVotePlan_proof_blinding_s_tag 9 +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_reason_tag 1 +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_reason_tag 1 +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_withdrawn_tag 1 +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_withdrawn_tag 1 +#define penumbra_core_component_governance_v1_ProposalOutcome_passed_tag 1 +#define penumbra_core_component_governance_v1_ProposalOutcome_failed_tag 2 +#define penumbra_core_component_governance_v1_ProposalOutcome_slashed_tag 3 +#define penumbra_core_component_governance_v1_ProposalDepositClaim_proposal_tag 1 +#define penumbra_core_component_governance_v1_ProposalDepositClaim_deposit_amount_tag 2 +#define penumbra_core_component_governance_v1_ProposalDepositClaim_outcome_tag 3 +#define penumbra_core_component_governance_v1_ProposalState_Finished_outcome_tag 1 +#define penumbra_core_component_governance_v1_ProposalState_Claimed_outcome_tag 1 +#define penumbra_core_component_governance_v1_ProposalState_voting_tag 2 +#define penumbra_core_component_governance_v1_ProposalState_withdrawn_tag 3 +#define penumbra_core_component_governance_v1_ProposalState_finished_tag 4 +#define penumbra_core_component_governance_v1_ProposalState_claimed_tag 5 +#define penumbra_core_component_governance_v1_Tally_yes_tag 1 +#define penumbra_core_component_governance_v1_Tally_no_tag 2 +#define penumbra_core_component_governance_v1_Tally_abstain_tag 3 +#define penumbra_core_component_governance_v1_Proposal_Signaling_commit_tag 1 +#define penumbra_core_component_governance_v1_Proposal_Emergency_halt_chain_tag 1 +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_transaction_plan_tag 2 +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_height_tag 1 +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_client_id_tag 1 +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_client_id_tag 1 +#define penumbra_core_component_governance_v1_ProposalInfoRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_ProposalInfoResponse_start_block_height_tag 1 +#define penumbra_core_component_governance_v1_ProposalInfoResponse_start_position_tag 2 +#define penumbra_core_component_governance_v1_ProposalDataRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_rate_data_tag 1 +#define penumbra_core_component_governance_v1_ProposalListRequest_inactive_tag 2 +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_vote_tag 1 +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_identity_key_tag 2 +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_voting_blocks_tag 1 +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_deposit_amount_tag 2 +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_valid_quorum_tag 3 +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_pass_threshold_tag 4 +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_slash_threshold_tag 5 +#define penumbra_core_component_governance_v1_GenesisContent_governance_params_tag 1 +#define penumbra_core_component_governance_v1_EncodedParameter_component_tag 1 +#define penumbra_core_component_governance_v1_EncodedParameter_key_tag 2 +#define penumbra_core_component_governance_v1_EncodedParameter_value_tag 3 +#define penumbra_core_component_governance_v1_ChangedAppParameters_sct_params_tag 1 +#define penumbra_core_component_governance_v1_ChangedAppParameters_community_pool_params_tag 2 +#define penumbra_core_component_governance_v1_ChangedAppParameters_governance_params_tag 3 +#define penumbra_core_component_governance_v1_ChangedAppParameters_ibc_params_tag 4 +#define penumbra_core_component_governance_v1_ChangedAppParameters_stake_params_tag 5 +#define penumbra_core_component_governance_v1_ChangedAppParameters_fee_params_tag 6 +#define penumbra_core_component_governance_v1_ChangedAppParameters_distributions_params_tag 7 +#define penumbra_core_component_governance_v1_ChangedAppParameters_funding_params_tag 8 +#define penumbra_core_component_governance_v1_ChangedAppParameters_shielded_pool_params_tag 9 +#define penumbra_core_component_governance_v1_ChangedAppParameters_dex_params_tag 10 +#define penumbra_core_component_governance_v1_ChangedAppParameters_auction_params_tag 11 +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_old_parameters_tag 1 +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_new_parameters_tag 2 +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_preconditions_tag 3 +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_changes_tag 4 +#define penumbra_core_component_governance_v1_Proposal_title_tag 1 +#define penumbra_core_component_governance_v1_Proposal_description_tag 2 +#define penumbra_core_component_governance_v1_Proposal_id_tag 4 +#define penumbra_core_component_governance_v1_Proposal_signaling_tag 5 +#define penumbra_core_component_governance_v1_Proposal_emergency_tag 6 +#define penumbra_core_component_governance_v1_Proposal_parameter_change_tag 7 +#define penumbra_core_component_governance_v1_Proposal_community_pool_spend_tag 8 +#define penumbra_core_component_governance_v1_Proposal_upgrade_plan_tag 9 +#define penumbra_core_component_governance_v1_Proposal_freeze_ibc_client_tag 10 +#define penumbra_core_component_governance_v1_Proposal_unfreeze_ibc_client_tag 11 +#define penumbra_core_component_governance_v1_ProposalSubmit_proposal_tag 1 +#define penumbra_core_component_governance_v1_ProposalSubmit_deposit_amount_tag 3 +#define penumbra_core_component_governance_v1_ProposalDataResponse_proposal_tag 1 +#define penumbra_core_component_governance_v1_ProposalDataResponse_start_block_height_tag 2 +#define penumbra_core_component_governance_v1_ProposalDataResponse_end_block_height_tag 3 +#define penumbra_core_component_governance_v1_ProposalDataResponse_start_position_tag 4 +#define penumbra_core_component_governance_v1_ProposalDataResponse_state_tag 5 +#define penumbra_core_component_governance_v1_ProposalDataResponse_proposal_deposit_amount_tag 6 +#define penumbra_core_component_governance_v1_ProposalListResponse_proposal_tag 1 +#define penumbra_core_component_governance_v1_ProposalListResponse_start_block_height_tag 2 +#define penumbra_core_component_governance_v1_ProposalListResponse_end_block_height_tag 3 +#define penumbra_core_component_governance_v1_ProposalListResponse_start_position_tag 4 +#define penumbra_core_component_governance_v1_ProposalListResponse_state_tag 5 +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_old_tag 1 +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_new_tag 2 +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_identity_key_tag 3 +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_voting_power_tag 1 +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_proposal_id_tag 2 +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_tally_tag 1 +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_identity_key_tag 2 +#define penumbra_core_component_governance_v1_NextProposalIdResponse_next_proposal_id_tag 1 +#define penumbra_core_component_governance_v1_Ratio_numerator_tag 1 +#define penumbra_core_component_governance_v1_Ratio_denominator_tag 2 +#define penumbra_core_component_governance_v1_EventDelegatorVote_vote_tag 1 +#define penumbra_core_component_governance_v1_EventDelegatorVote_validator_identity_key_tag 2 +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_deposit_claim_tag 1 +#define penumbra_core_component_governance_v1_EventValidatorVote_vote_tag 1 +#define penumbra_core_component_governance_v1_EventValidatorVote_voting_power_tag 2 +#define penumbra_core_component_governance_v1_EventProposalWithdraw_withdraw_tag 1 +#define penumbra_core_component_governance_v1_EventProposalSubmit_submit_tag 1 +#define penumbra_core_component_governance_v1_EventProposalSubmit_start_height_tag 2 +#define penumbra_core_component_governance_v1_EventProposalSubmit_end_height_tag 3 +#define penumbra_core_component_governance_v1_EventProposalPassed_proposal_tag 1 +#define penumbra_core_component_governance_v1_EventProposalFailed_proposal_tag 1 +#define penumbra_core_component_governance_v1_EventProposalSlashed_proposal_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalSubmit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_amount, 3) +#define penumbra_core_component_governance_v1_ProposalSubmit_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalSubmit_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalSubmit_proposal_MSGTYPE penumbra_core_component_governance_v1_Proposal +#define penumbra_core_component_governance_v1_ProposalSubmit_deposit_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_governance_v1_ProposalWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, CALLBACK, SINGULAR, STRING, reason, 2) +#define penumbra_core_component_governance_v1_ProposalWithdraw_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_ProposalWithdraw_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalDepositClaim_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_amount, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, outcome, 3) +#define penumbra_core_component_governance_v1_ProposalDepositClaim_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalDepositClaim_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalDepositClaim_deposit_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_governance_v1_ProposalDepositClaim_outcome_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome + +#define penumbra_core_component_governance_v1_ValidatorVote_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auth_sig, 2) +#define penumbra_core_component_governance_v1_ValidatorVote_CALLBACK NULL +#define penumbra_core_component_governance_v1_ValidatorVote_DEFAULT NULL +#define penumbra_core_component_governance_v1_ValidatorVote_body_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVoteBody +#define penumbra_core_component_governance_v1_ValidatorVote_auth_sig_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature + +#define penumbra_core_component_governance_v1_ValidatorVoteReason_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, reason, 1) +#define penumbra_core_component_governance_v1_ValidatorVoteReason_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_ValidatorVoteReason_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ValidatorVoteBody_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_key, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, reason, 5) +#define penumbra_core_component_governance_v1_ValidatorVoteBody_CALLBACK NULL +#define penumbra_core_component_governance_v1_ValidatorVoteBody_DEFAULT NULL +#define penumbra_core_component_governance_v1_ValidatorVoteBody_vote_MSGTYPE penumbra_core_component_governance_v1_Vote +#define penumbra_core_component_governance_v1_ValidatorVoteBody_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_governance_v1_ValidatorVoteBody_governance_key_MSGTYPE penumbra_core_keys_v1_GovernanceKey +#define penumbra_core_component_governance_v1_ValidatorVoteBody_reason_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVoteReason + +#define penumbra_core_component_governance_v1_DelegatorVote_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auth_sig, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 3) +#define penumbra_core_component_governance_v1_DelegatorVote_CALLBACK NULL +#define penumbra_core_component_governance_v1_DelegatorVote_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVote_body_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVoteBody +#define penumbra_core_component_governance_v1_DelegatorVote_auth_sig_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature +#define penumbra_core_component_governance_v1_DelegatorVote_proof_MSGTYPE \ + penumbra_core_component_governance_v1_ZKDelegatorVoteProof + +#define penumbra_core_component_governance_v1_DelegatorVoteBody_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonded_amount, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, rk, 7) +#define penumbra_core_component_governance_v1_DelegatorVoteBody_CALLBACK NULL +#define penumbra_core_component_governance_v1_DelegatorVoteBody_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVoteBody_vote_MSGTYPE penumbra_core_component_governance_v1_Vote +#define penumbra_core_component_governance_v1_DelegatorVoteBody_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_governance_v1_DelegatorVoteBody_unbonded_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_governance_v1_DelegatorVoteBody_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_core_component_governance_v1_DelegatorVoteBody_rk_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey + +#define penumbra_core_component_governance_v1_DelegatorVoteView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (delegator_vote, visible, delegator_vote.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (delegator_vote, opaque, delegator_vote.opaque), 2) +#define penumbra_core_component_governance_v1_DelegatorVoteView_CALLBACK NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_delegator_vote_visible_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVoteView_Visible +#define penumbra_core_component_governance_v1_DelegatorVoteView_delegator_vote_opaque_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVoteView_Opaque + +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegator_vote, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 2) +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_CALLBACK NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_delegator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVote +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteView + +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegator_vote, 1) +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_CALLBACK NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_delegator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVote + +#define penumbra_core_component_governance_v1_DelegatorVotePlan_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, staked_note, 4) \ + X(a, STATIC, SINGULAR, UINT64, staked_note_position, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonded_amount, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, randomizer, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 8) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 9) +#define penumbra_core_component_governance_v1_DelegatorVotePlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_DelegatorVotePlan_DEFAULT NULL +#define penumbra_core_component_governance_v1_DelegatorVotePlan_vote_MSGTYPE penumbra_core_component_governance_v1_Vote +#define penumbra_core_component_governance_v1_DelegatorVotePlan_staked_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Note +#define penumbra_core_component_governance_v1_DelegatorVotePlan_unbonded_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, value, 1) +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_CALLBACK NULL +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_DEFAULT NULL +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_value_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_governance_v1_CommunityPoolSpend_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, value, 1) +#define penumbra_core_component_governance_v1_CommunityPoolSpend_CALLBACK NULL +#define penumbra_core_component_governance_v1_CommunityPoolSpend_DEFAULT NULL +#define penumbra_core_component_governance_v1_CommunityPoolSpend_value_MSGTYPE penumbra_core_asset_v1_Value + +#define penumbra_core_component_governance_v1_CommunityPoolOutput_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 2) +#define penumbra_core_component_governance_v1_CommunityPoolOutput_CALLBACK NULL +#define penumbra_core_component_governance_v1_CommunityPoolOutput_DEFAULT NULL +#define penumbra_core_component_governance_v1_CommunityPoolOutput_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_governance_v1_CommunityPoolOutput_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_component_governance_v1_Vote_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, vote, 1) +#define penumbra_core_component_governance_v1_Vote_CALLBACK NULL +#define penumbra_core_component_governance_v1_Vote_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalState_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (state, voting, state.voting), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (state, withdrawn, state.withdrawn), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (state, finished, state.finished), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (state, claimed, state.claimed), 5) +#define penumbra_core_component_governance_v1_ProposalState_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalState_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalState_state_voting_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState_Voting +#define penumbra_core_component_governance_v1_ProposalState_state_withdrawn_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState_Withdrawn +#define penumbra_core_component_governance_v1_ProposalState_state_finished_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState_Finished +#define penumbra_core_component_governance_v1_ProposalState_state_claimed_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState_Claimed + +#define penumbra_core_component_governance_v1_ProposalState_Voting_FIELDLIST(X, a) + +#define penumbra_core_component_governance_v1_ProposalState_Voting_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalState_Voting_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, reason, 1) +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalState_Finished_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, outcome, 1) +#define penumbra_core_component_governance_v1_ProposalState_Finished_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalState_Finished_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalState_Finished_outcome_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome + +#define penumbra_core_component_governance_v1_ProposalState_Claimed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, outcome, 1) +#define penumbra_core_component_governance_v1_ProposalState_Claimed_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalState_Claimed_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalState_Claimed_outcome_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome + +#define penumbra_core_component_governance_v1_ProposalOutcome_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (outcome, passed, outcome.passed), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (outcome, failed, outcome.failed), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (outcome, slashed, outcome.slashed), 3) +#define penumbra_core_component_governance_v1_ProposalOutcome_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_outcome_passed_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome_Passed +#define penumbra_core_component_governance_v1_ProposalOutcome_outcome_failed_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome_Failed +#define penumbra_core_component_governance_v1_ProposalOutcome_outcome_slashed_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome_Slashed + +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, reason, 1) +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_FIELDLIST(X, a) + +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, withdrawn, 1) +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_withdrawn_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn + +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, withdrawn, 1) +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_withdrawn_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn + +#define penumbra_core_component_governance_v1_Tally_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, yes, 1) \ + X(a, STATIC, SINGULAR, UINT64, no, 2) \ + X(a, STATIC, SINGULAR, UINT64, abstain, 3) +#define penumbra_core_component_governance_v1_Tally_CALLBACK NULL +#define penumbra_core_component_governance_v1_Tally_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Proposal_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, title, 1) \ + X(a, CALLBACK, SINGULAR, STRING, description, 2) \ + X(a, STATIC, SINGULAR, UINT64, id, 4) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, signaling, payload.signaling), 5) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, emergency, payload.emergency), 6) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, parameter_change, payload.parameter_change), 7) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, community_pool_spend, payload.community_pool_spend), 8) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, upgrade_plan, payload.upgrade_plan), 9) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, freeze_ibc_client, payload.freeze_ibc_client), 10) \ + X(a, STATIC, ONEOF, MESSAGE, (payload, unfreeze_ibc_client, payload.unfreeze_ibc_client), 11) +#define penumbra_core_component_governance_v1_Proposal_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_Proposal_DEFAULT NULL +#define penumbra_core_component_governance_v1_Proposal_payload_signaling_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_Signaling +#define penumbra_core_component_governance_v1_Proposal_payload_emergency_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_Emergency +#define penumbra_core_component_governance_v1_Proposal_payload_parameter_change_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_ParameterChange +#define penumbra_core_component_governance_v1_Proposal_payload_community_pool_spend_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend +#define penumbra_core_component_governance_v1_Proposal_payload_upgrade_plan_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_UpgradePlan +#define penumbra_core_component_governance_v1_Proposal_payload_freeze_ibc_client_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_FreezeIbcClient +#define penumbra_core_component_governance_v1_Proposal_payload_unfreeze_ibc_client_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient + +#define penumbra_core_component_governance_v1_Proposal_Signaling_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, commit, 1) +#define penumbra_core_component_governance_v1_Proposal_Signaling_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_Proposal_Signaling_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Proposal_Emergency_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, halt_chain, 1) +#define penumbra_core_component_governance_v1_Proposal_Emergency_CALLBACK NULL +#define penumbra_core_component_governance_v1_Proposal_Emergency_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, old_parameters, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_parameters, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, preconditions, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, changes, 4) +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_DEFAULT NULL +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_old_parameters_MSGTYPE \ + penumbra_core_component_governance_v1_ChangedAppParameters +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_new_parameters_MSGTYPE \ + penumbra_core_component_governance_v1_ChangedAppParameters +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_preconditions_MSGTYPE \ + penumbra_core_component_governance_v1_EncodedParameter +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_changes_MSGTYPE \ + penumbra_core_component_governance_v1_EncodedParameter + +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_plan, 2) +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_CALLBACK NULL +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_DEFAULT NULL +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_transaction_plan_MSGTYPE google_protobuf_Any + +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, height, 1) +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_CALLBACK NULL +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalInfoRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) +#define penumbra_core_component_governance_v1_ProposalInfoRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalInfoRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalInfoResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, start_block_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 2) +#define penumbra_core_component_governance_v1_ProposalInfoResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalInfoResponse_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalDataRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) +#define penumbra_core_component_governance_v1_ProposalDataRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalDataRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalDataResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_block_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_block_height, 3) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal_deposit_amount, 6) +#define penumbra_core_component_governance_v1_ProposalDataResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalDataResponse_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalDataResponse_proposal_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal +#define penumbra_core_component_governance_v1_ProposalDataResponse_state_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState +#define penumbra_core_component_governance_v1_ProposalDataResponse_proposal_deposit_amount_MSGTYPE \ + penumbra_core_num_v1_Amount + +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, rate_data, 1) +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_rate_data_MSGTYPE \ + penumbra_core_component_stake_v1_RateData + +#define penumbra_core_component_governance_v1_ProposalListRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, inactive, 2) +#define penumbra_core_component_governance_v1_ProposalListRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalListRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ProposalListResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_block_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_block_height, 3) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 5) +#define penumbra_core_component_governance_v1_ProposalListResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_ProposalListResponse_DEFAULT NULL +#define penumbra_core_component_governance_v1_ProposalListResponse_proposal_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal +#define penumbra_core_component_governance_v1_ProposalListResponse_state_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalState + +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_DEFAULT NULL +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_vote_MSGTYPE penumbra_core_component_governance_v1_Vote +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_governance_v1_GovernanceParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_voting_blocks, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal_deposit_amount, 2) \ + X(a, CALLBACK, SINGULAR, STRING, proposal_valid_quorum, 3) \ + X(a, CALLBACK, SINGULAR, STRING, proposal_pass_threshold, 4) \ + X(a, CALLBACK, SINGULAR, STRING, proposal_slash_threshold, 5) +#define penumbra_core_component_governance_v1_GovernanceParameters_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_GovernanceParameters_DEFAULT NULL +#define penumbra_core_component_governance_v1_GovernanceParameters_proposal_deposit_amount_MSGTYPE \ + penumbra_core_num_v1_Amount + +#define penumbra_core_component_governance_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_params, 1) +#define penumbra_core_component_governance_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_governance_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_governance_v1_GenesisContent_governance_params_MSGTYPE \ + penumbra_core_component_governance_v1_GovernanceParameters + +#define penumbra_core_component_governance_v1_EncodedParameter_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, component, 1) \ + X(a, CALLBACK, SINGULAR, STRING, key, 2) \ + X(a, CALLBACK, SINGULAR, STRING, value, 3) +#define penumbra_core_component_governance_v1_EncodedParameter_CALLBACK pb_default_field_callback +#define penumbra_core_component_governance_v1_EncodedParameter_DEFAULT NULL + +#define penumbra_core_component_governance_v1_ChangedAppParameters_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, sct_params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, community_pool_params, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_params, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, ibc_params, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, stake_params, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee_params, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, distributions_params, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, funding_params, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, shielded_pool_params, 9) \ + X(a, STATIC, OPTIONAL, MESSAGE, dex_params, 10) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_params, 11) +#define penumbra_core_component_governance_v1_ChangedAppParameters_CALLBACK NULL +#define penumbra_core_component_governance_v1_ChangedAppParameters_DEFAULT NULL +#define penumbra_core_component_governance_v1_ChangedAppParameters_sct_params_MSGTYPE \ + penumbra_core_component_sct_v1_SctParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_community_pool_params_MSGTYPE \ + penumbra_core_component_community_pool_v1_CommunityPoolParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_governance_params_MSGTYPE \ + penumbra_core_component_governance_v1_GovernanceParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_ibc_params_MSGTYPE \ + penumbra_core_component_ibc_v1_IbcParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_stake_params_MSGTYPE \ + penumbra_core_component_stake_v1_StakeParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_fee_params_MSGTYPE \ + penumbra_core_component_fee_v1_FeeParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_distributions_params_MSGTYPE \ + penumbra_core_component_distributions_v1_DistributionsParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_funding_params_MSGTYPE \ + penumbra_core_component_funding_v1_FundingParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_shielded_pool_params_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_dex_params_MSGTYPE \ + penumbra_core_component_dex_v1_DexParameters +#define penumbra_core_component_governance_v1_ChangedAppParameters_auction_params_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionParameters + +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, old, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, new, 2) +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_CALLBACK NULL +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_DEFAULT NULL +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_old_MSGTYPE \ + penumbra_core_component_governance_v1_ChangedAppParameters +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_new_MSGTYPE \ + penumbra_core_component_governance_v1_ChangedAppParameters + +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 3) +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_DEFAULT NULL +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_identity_key_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, voting_power, 1) +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_DEFAULT NULL + +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal_id, 2) +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, tally, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_DEFAULT NULL +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_tally_MSGTYPE \ + penumbra_core_component_governance_v1_Tally +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_identity_key_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_governance_v1_NextProposalIdRequest_FIELDLIST(X, a) + +#define penumbra_core_component_governance_v1_NextProposalIdRequest_CALLBACK NULL +#define penumbra_core_component_governance_v1_NextProposalIdRequest_DEFAULT NULL + +#define penumbra_core_component_governance_v1_NextProposalIdResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, next_proposal_id, 1) +#define penumbra_core_component_governance_v1_NextProposalIdResponse_CALLBACK NULL +#define penumbra_core_component_governance_v1_NextProposalIdResponse_DEFAULT NULL + +#define penumbra_core_component_governance_v1_Ratio_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, numerator, 1) \ + X(a, STATIC, SINGULAR, UINT64, denominator, 2) +#define penumbra_core_component_governance_v1_Ratio_CALLBACK NULL +#define penumbra_core_component_governance_v1_Ratio_DEFAULT NULL + +#define penumbra_core_component_governance_v1_EventDelegatorVote_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity_key, 2) +#define penumbra_core_component_governance_v1_EventDelegatorVote_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventDelegatorVote_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventDelegatorVote_vote_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVote +#define penumbra_core_component_governance_v1_EventDelegatorVote_validator_identity_key_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, deposit_claim, 1) +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_deposit_claim_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalDepositClaim + +#define penumbra_core_component_governance_v1_EventValidatorVote_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 1) \ + X(a, STATIC, SINGULAR, UINT64, voting_power, 2) +#define penumbra_core_component_governance_v1_EventValidatorVote_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventValidatorVote_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventValidatorVote_vote_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVote + +#define penumbra_core_component_governance_v1_EventProposalWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, withdraw, 1) +#define penumbra_core_component_governance_v1_EventProposalWithdraw_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalWithdraw_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalWithdraw_withdraw_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalWithdraw + +#define penumbra_core_component_governance_v1_EventProposalSubmit_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, submit, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 3) +#define penumbra_core_component_governance_v1_EventProposalSubmit_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalSubmit_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalSubmit_submit_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalSubmit + +#define penumbra_core_component_governance_v1_EventProposalPassed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define penumbra_core_component_governance_v1_EventProposalPassed_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalPassed_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalPassed_proposal_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal + +#define penumbra_core_component_governance_v1_EventProposalFailed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define penumbra_core_component_governance_v1_EventProposalFailed_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalFailed_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalFailed_proposal_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal + +#define penumbra_core_component_governance_v1_EventProposalSlashed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposal, 1) +#define penumbra_core_component_governance_v1_EventProposalSlashed_CALLBACK NULL +#define penumbra_core_component_governance_v1_EventProposalSlashed_DEFAULT NULL +#define penumbra_core_component_governance_v1_EventProposalSlashed_proposal_MSGTYPE \ + penumbra_core_component_governance_v1_Proposal + +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ZKDelegatorVoteProof_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalSubmit_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalWithdraw_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalDepositClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ValidatorVote_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ValidatorVoteReason_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ValidatorVoteBody_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVote_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVoteBody_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVoteView_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVoteView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_DelegatorVotePlan_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_CommunityPoolDeposit_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_CommunityPoolSpend_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_CommunityPoolOutput_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Vote_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalState_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalState_Voting_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalState_Withdrawn_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalState_Finished_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalState_Claimed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalOutcome_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalOutcome_Passed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalOutcome_Failed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalOutcome_Slashed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Tally_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_Signaling_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_Emergency_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_ParameterChange_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_UpgradePlan_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalInfoRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalInfoResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalDataRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalDataResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalRateDataRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalRateDataResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalListRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ProposalListResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ValidatorVotesRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ValidatorVotesResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_GovernanceParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EncodedParameter_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ChangedAppParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_ChangedAppParametersSet_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_NextProposalIdRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_NextProposalIdResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_Ratio_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventDelegatorVote_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalDepositClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventValidatorVote_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalWithdraw_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalSubmit_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalPassed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalFailed_msg; +extern const pb_msgdesc_t penumbra_core_component_governance_v1_EventProposalSlashed_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_governance_v1_ZKDelegatorVoteProof_fields \ + &penumbra_core_component_governance_v1_ZKDelegatorVoteProof_msg +#define penumbra_core_component_governance_v1_ProposalSubmit_fields &penumbra_core_component_governance_v1_ProposalSubmit_msg +#define penumbra_core_component_governance_v1_ProposalWithdraw_fields \ + &penumbra_core_component_governance_v1_ProposalWithdraw_msg +#define penumbra_core_component_governance_v1_ProposalDepositClaim_fields \ + &penumbra_core_component_governance_v1_ProposalDepositClaim_msg +#define penumbra_core_component_governance_v1_ValidatorVote_fields &penumbra_core_component_governance_v1_ValidatorVote_msg +#define penumbra_core_component_governance_v1_ValidatorVoteReason_fields \ + &penumbra_core_component_governance_v1_ValidatorVoteReason_msg +#define penumbra_core_component_governance_v1_ValidatorVoteBody_fields \ + &penumbra_core_component_governance_v1_ValidatorVoteBody_msg +#define penumbra_core_component_governance_v1_DelegatorVote_fields &penumbra_core_component_governance_v1_DelegatorVote_msg +#define penumbra_core_component_governance_v1_DelegatorVoteBody_fields \ + &penumbra_core_component_governance_v1_DelegatorVoteBody_msg +#define penumbra_core_component_governance_v1_DelegatorVoteView_fields \ + &penumbra_core_component_governance_v1_DelegatorVoteView_msg +#define penumbra_core_component_governance_v1_DelegatorVoteView_Visible_fields \ + &penumbra_core_component_governance_v1_DelegatorVoteView_Visible_msg +#define penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_fields \ + &penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_msg +#define penumbra_core_component_governance_v1_DelegatorVotePlan_fields \ + &penumbra_core_component_governance_v1_DelegatorVotePlan_msg +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_fields \ + &penumbra_core_component_governance_v1_CommunityPoolDeposit_msg +#define penumbra_core_component_governance_v1_CommunityPoolSpend_fields \ + &penumbra_core_component_governance_v1_CommunityPoolSpend_msg +#define penumbra_core_component_governance_v1_CommunityPoolOutput_fields \ + &penumbra_core_component_governance_v1_CommunityPoolOutput_msg +#define penumbra_core_component_governance_v1_Vote_fields &penumbra_core_component_governance_v1_Vote_msg +#define penumbra_core_component_governance_v1_ProposalState_fields &penumbra_core_component_governance_v1_ProposalState_msg +#define penumbra_core_component_governance_v1_ProposalState_Voting_fields \ + &penumbra_core_component_governance_v1_ProposalState_Voting_msg +#define penumbra_core_component_governance_v1_ProposalState_Withdrawn_fields \ + &penumbra_core_component_governance_v1_ProposalState_Withdrawn_msg +#define penumbra_core_component_governance_v1_ProposalState_Finished_fields \ + &penumbra_core_component_governance_v1_ProposalState_Finished_msg +#define penumbra_core_component_governance_v1_ProposalState_Claimed_fields \ + &penumbra_core_component_governance_v1_ProposalState_Claimed_msg +#define penumbra_core_component_governance_v1_ProposalOutcome_fields \ + &penumbra_core_component_governance_v1_ProposalOutcome_msg +#define penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_fields \ + &penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_msg +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_fields \ + &penumbra_core_component_governance_v1_ProposalOutcome_Passed_msg +#define penumbra_core_component_governance_v1_ProposalOutcome_Failed_fields \ + &penumbra_core_component_governance_v1_ProposalOutcome_Failed_msg +#define penumbra_core_component_governance_v1_ProposalOutcome_Slashed_fields \ + &penumbra_core_component_governance_v1_ProposalOutcome_Slashed_msg +#define penumbra_core_component_governance_v1_Tally_fields &penumbra_core_component_governance_v1_Tally_msg +#define penumbra_core_component_governance_v1_Proposal_fields &penumbra_core_component_governance_v1_Proposal_msg +#define penumbra_core_component_governance_v1_Proposal_Signaling_fields \ + &penumbra_core_component_governance_v1_Proposal_Signaling_msg +#define penumbra_core_component_governance_v1_Proposal_Emergency_fields \ + &penumbra_core_component_governance_v1_Proposal_Emergency_msg +#define penumbra_core_component_governance_v1_Proposal_ParameterChange_fields \ + &penumbra_core_component_governance_v1_Proposal_ParameterChange_msg +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_fields \ + &penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_msg +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_fields \ + &penumbra_core_component_governance_v1_Proposal_UpgradePlan_msg +#define penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_fields \ + &penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_msg +#define penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_fields \ + &penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_msg +#define penumbra_core_component_governance_v1_ProposalInfoRequest_fields \ + &penumbra_core_component_governance_v1_ProposalInfoRequest_msg +#define penumbra_core_component_governance_v1_ProposalInfoResponse_fields \ + &penumbra_core_component_governance_v1_ProposalInfoResponse_msg +#define penumbra_core_component_governance_v1_ProposalDataRequest_fields \ + &penumbra_core_component_governance_v1_ProposalDataRequest_msg +#define penumbra_core_component_governance_v1_ProposalDataResponse_fields \ + &penumbra_core_component_governance_v1_ProposalDataResponse_msg +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_fields \ + &penumbra_core_component_governance_v1_ProposalRateDataRequest_msg +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_fields \ + &penumbra_core_component_governance_v1_ProposalRateDataResponse_msg +#define penumbra_core_component_governance_v1_ProposalListRequest_fields \ + &penumbra_core_component_governance_v1_ProposalListRequest_msg +#define penumbra_core_component_governance_v1_ProposalListResponse_fields \ + &penumbra_core_component_governance_v1_ProposalListResponse_msg +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_fields \ + &penumbra_core_component_governance_v1_ValidatorVotesRequest_msg +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_fields \ + &penumbra_core_component_governance_v1_ValidatorVotesResponse_msg +#define penumbra_core_component_governance_v1_GovernanceParameters_fields \ + &penumbra_core_component_governance_v1_GovernanceParameters_msg +#define penumbra_core_component_governance_v1_GenesisContent_fields &penumbra_core_component_governance_v1_GenesisContent_msg +#define penumbra_core_component_governance_v1_EncodedParameter_fields \ + &penumbra_core_component_governance_v1_EncodedParameter_msg +#define penumbra_core_component_governance_v1_ChangedAppParameters_fields \ + &penumbra_core_component_governance_v1_ChangedAppParameters_msg +#define penumbra_core_component_governance_v1_ChangedAppParametersSet_fields \ + &penumbra_core_component_governance_v1_ChangedAppParametersSet_msg +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_fields \ + &penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_msg +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_fields \ + &penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_msg +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_fields \ + &penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_msg +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_fields \ + &penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_msg +#define penumbra_core_component_governance_v1_NextProposalIdRequest_fields \ + &penumbra_core_component_governance_v1_NextProposalIdRequest_msg +#define penumbra_core_component_governance_v1_NextProposalIdResponse_fields \ + &penumbra_core_component_governance_v1_NextProposalIdResponse_msg +#define penumbra_core_component_governance_v1_Ratio_fields &penumbra_core_component_governance_v1_Ratio_msg +#define penumbra_core_component_governance_v1_EventDelegatorVote_fields \ + &penumbra_core_component_governance_v1_EventDelegatorVote_msg +#define penumbra_core_component_governance_v1_EventProposalDepositClaim_fields \ + &penumbra_core_component_governance_v1_EventProposalDepositClaim_msg +#define penumbra_core_component_governance_v1_EventValidatorVote_fields \ + &penumbra_core_component_governance_v1_EventValidatorVote_msg +#define penumbra_core_component_governance_v1_EventProposalWithdraw_fields \ + &penumbra_core_component_governance_v1_EventProposalWithdraw_msg +#define penumbra_core_component_governance_v1_EventProposalSubmit_fields \ + &penumbra_core_component_governance_v1_EventProposalSubmit_msg +#define penumbra_core_component_governance_v1_EventProposalPassed_fields \ + &penumbra_core_component_governance_v1_EventProposalPassed_msg +#define penumbra_core_component_governance_v1_EventProposalFailed_fields \ + &penumbra_core_component_governance_v1_EventProposalFailed_msg +#define penumbra_core_component_governance_v1_EventProposalSlashed_fields \ + &penumbra_core_component_governance_v1_EventProposalSlashed_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_governance_v1_ZKDelegatorVoteProof_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalSubmit_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalWithdraw_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalDepositClaim_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ValidatorVote_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ValidatorVoteReason_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ValidatorVoteBody_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_DelegatorVote_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_DelegatorVoteView_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_DelegatorVoteView_Visible_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_DelegatorVoteView_Opaque_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_DelegatorVotePlan_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalState_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalState_Withdrawn_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalState_Finished_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalState_Claimed_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalOutcome_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalOutcome_Withdrawn_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalOutcome_Failed_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalOutcome_Slashed_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_Proposal_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_Proposal_Signaling_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_Proposal_ParameterChange_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_Proposal_FreezeIbcClient_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_Proposal_UnfreezeIbcClient_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalDataResponse_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ProposalListResponse_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_GovernanceParameters_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_GenesisContent_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EncodedParameter_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ChangedAppParameters_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_ChangedAppParametersSet_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventDelegatorVote_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalDepositClaim_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventValidatorVote_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalWithdraw_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalSubmit_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalPassed_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalFailed_size depends on runtime parameters */ +/* penumbra_core_component_governance_v1_EventProposalSlashed_size depends on runtime parameters */ +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_component_sct_v1_Nullifier_size) && \ + defined(penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_size) +#define PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_PENUMBRA_CORE_COMPONENT_GOVERNANCE_V1_GOVERNANCE_PB_H_MAX_SIZE \ + penumbra_core_component_governance_v1_DelegatorVoteBody_size +#define penumbra_core_component_governance_v1_DelegatorVoteBody_size \ + (68 + penumbra_core_asset_v1_Value_size + penumbra_core_component_sct_v1_Nullifier_size + \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_size) +#endif +#if defined(penumbra_core_asset_v1_Value_size) +#define penumbra_core_component_governance_v1_CommunityPoolDeposit_size (6 + penumbra_core_asset_v1_Value_size) +#define penumbra_core_component_governance_v1_CommunityPoolSpend_size (6 + penumbra_core_asset_v1_Value_size) +#endif +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_keys_v1_Address_size) +#define penumbra_core_component_governance_v1_CommunityPoolOutput_size \ + (12 + penumbra_core_asset_v1_Value_size + penumbra_core_keys_v1_Address_size) +#endif +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalRequest_size 11 +#define penumbra_core_component_governance_v1_NextProposalIdRequest_size 0 +#define penumbra_core_component_governance_v1_NextProposalIdResponse_size 11 +#define penumbra_core_component_governance_v1_ProposalDataRequest_size 11 +#define penumbra_core_component_governance_v1_ProposalInfoRequest_size 11 +#define penumbra_core_component_governance_v1_ProposalInfoResponse_size 22 +#define penumbra_core_component_governance_v1_ProposalListRequest_size 2 +#define penumbra_core_component_governance_v1_ProposalOutcome_Passed_size 0 +#define penumbra_core_component_governance_v1_ProposalRateDataRequest_size 11 +#define penumbra_core_component_governance_v1_ProposalState_Voting_size 0 +#define penumbra_core_component_governance_v1_Proposal_Emergency_size 2 +#define penumbra_core_component_governance_v1_Proposal_UpgradePlan_size 11 +#define penumbra_core_component_governance_v1_Ratio_size 22 +#define penumbra_core_component_governance_v1_Tally_size 33 +#define penumbra_core_component_governance_v1_ValidatorVotesRequest_size 11 +#define penumbra_core_component_governance_v1_Vote_size 2 +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartResponse_size 11 +#if defined(google_protobuf_Any_size) +#define penumbra_core_component_governance_v1_Proposal_CommunityPoolSpend_size (6 + google_protobuf_Any_size) +#endif +#if defined(penumbra_core_component_stake_v1_RateData_size) +#define penumbra_core_component_governance_v1_ProposalRateDataResponse_size \ + (6 + penumbra_core_component_stake_v1_RateData_size) +#endif +#if defined(penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_governance_v1_AllTalliedDelegatorVotesForProposalResponse_size \ + (41 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_governance_v1_ValidatorVotesResponse_size (10 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_governance_v1_VotingPowerAtProposalStartRequest_size \ + (17 + penumbra_core_keys_v1_IdentityKey_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.c b/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.c new file mode 100644 index 0000000..b485803 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.c @@ -0,0 +1,29 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/ibc/v1/ibc.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_ibc_v1_IbcRelay, penumbra_core_component_ibc_v1_IbcRelay, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_FungibleTokenPacketData, penumbra_core_component_ibc_v1_FungibleTokenPacketData, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_Ics20Withdrawal, penumbra_core_component_ibc_v1_Ics20Withdrawal, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_ClientData, penumbra_core_component_ibc_v1_ClientData, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_ClientCounter, penumbra_core_component_ibc_v1_ClientCounter, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_ConsensusState, penumbra_core_component_ibc_v1_ConsensusState, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_VerifiedHeights, penumbra_core_component_ibc_v1_VerifiedHeights, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_ConnectionCounter, penumbra_core_component_ibc_v1_ConnectionCounter, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_ClientConnections, penumbra_core_component_ibc_v1_ClientConnections, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_IbcParameters, penumbra_core_component_ibc_v1_IbcParameters, AUTO) + +PB_BIND(penumbra_core_component_ibc_v1_GenesisContent, penumbra_core_component_ibc_v1_GenesisContent, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.h b/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.h new file mode 100644 index 0000000..c999703 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/ibc/v1/ibc.pb.h @@ -0,0 +1,332 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_IBC_V1_PENUMBRA_CORE_COMPONENT_IBC_V1_IBC_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_IBC_V1_PENUMBRA_CORE_COMPONENT_IBC_V1_IBC_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "ibc/core/client/v1/client.pb.h" +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_core_component_ibc_v1_IbcRelay { + bool has_raw_action; + google_protobuf_Any raw_action; +} penumbra_core_component_ibc_v1_IbcRelay; + +/* FungibleTokenPacketData defines a struct for the packet payload + See FungibleTokenPacketData spec: + https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures */ +typedef struct _penumbra_core_component_ibc_v1_FungibleTokenPacketData { + /* the token denomination to be transferred */ + pb_callback_t denom; + /* the token amount to be transferred */ + pb_callback_t amount; + /* the return address */ + pb_callback_t sender; + /* the recipient address on the destination chain */ + pb_callback_t receiver; + /* optional memo */ + pb_callback_t memo; +} penumbra_core_component_ibc_v1_FungibleTokenPacketData; + +/* A Penumbra transaction action requesting an ICS20 transfer. */ +typedef struct _penumbra_core_component_ibc_v1_Ics20Withdrawal { + bool has_amount; + penumbra_core_num_v1_Amount amount; + bool has_denom; + penumbra_core_asset_v1_Denom denom; + /* the address on the destination chain to send the transfer to */ + pb_callback_t destination_chain_address; + /* a "sender" penumbra address to use to return funds from this withdrawal. + this should be an ephemeral address */ + bool has_return_address; + penumbra_core_keys_v1_Address return_address; + /* The height on the counterparty chain at which this transfer expires, and + funds are sent back to the return address. */ + bool has_timeout_height; + ibc_core_client_v1_Height timeout_height; + /* The timestamp, in epoch time, after which this transfer will be considered invalid. + Clients must quantize this value to the nearest minute, to preserve privacy. + IBC withdrawals that do not quantize timestamps will be rejected. */ + uint64_t timeout_time; + /* The source channel used for the withdrawal */ + pb_callback_t source_channel; + /* Whether to use a "compat" (bech32, non-m) address for the return address in the withdrawal, + for compatability with chains that expect to be able to parse the return address as bech32. */ + bool use_compat_address; +} penumbra_core_component_ibc_v1_Ics20Withdrawal; + +typedef struct _penumbra_core_component_ibc_v1_ClientData { + pb_callback_t client_id; + bool has_client_state; + google_protobuf_Any client_state; /* NOTE: left as Any to allow us to add more client types later */ + pb_callback_t processed_time; + uint64_t processed_height; +} penumbra_core_component_ibc_v1_ClientData; + +typedef struct _penumbra_core_component_ibc_v1_ClientCounter { + uint64_t counter; +} penumbra_core_component_ibc_v1_ClientCounter; + +typedef struct _penumbra_core_component_ibc_v1_ConsensusState { + bool has_consensus_state; + google_protobuf_Any consensus_state; +} penumbra_core_component_ibc_v1_ConsensusState; + +typedef struct _penumbra_core_component_ibc_v1_VerifiedHeights { + pb_callback_t heights; +} penumbra_core_component_ibc_v1_VerifiedHeights; + +typedef struct _penumbra_core_component_ibc_v1_ConnectionCounter { + uint64_t counter; +} penumbra_core_component_ibc_v1_ConnectionCounter; + +typedef struct _penumbra_core_component_ibc_v1_ClientConnections { + pb_callback_t connections; +} penumbra_core_component_ibc_v1_ClientConnections; + +/* IBC configuration data. */ +typedef struct _penumbra_core_component_ibc_v1_IbcParameters { + /* Whether IBC (forming connections, processing IBC packets) is enabled. */ + bool ibc_enabled; + /* Whether inbound ICS-20 transfers are enabled */ + bool inbound_ics20_transfers_enabled; + /* Whether outbound ICS-20 transfers are enabled */ + bool outbound_ics20_transfers_enabled; +} penumbra_core_component_ibc_v1_IbcParameters; + +/* IBC genesis state. */ +typedef struct _penumbra_core_component_ibc_v1_GenesisContent { + /* IBC parameters. */ + bool has_ibc_params; + penumbra_core_component_ibc_v1_IbcParameters ibc_params; +} penumbra_core_component_ibc_v1_GenesisContent; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_ibc_v1_IbcRelay_init_default \ + { false, google_protobuf_Any_init_default } +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_init_default \ + { \ + false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_asset_v1_Denom_init_default, {{NULL}, NULL}, \ + false, penumbra_core_keys_v1_Address_init_default, false, ibc_core_client_v1_Height_init_default, 0, \ + {{NULL}, NULL}, 0 \ + } +#define penumbra_core_component_ibc_v1_ClientData_init_default \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_default, {{NULL}, NULL}, 0 } +#define penumbra_core_component_ibc_v1_ClientCounter_init_default \ + { 0 } +#define penumbra_core_component_ibc_v1_ConsensusState_init_default \ + { false, google_protobuf_Any_init_default } +#define penumbra_core_component_ibc_v1_VerifiedHeights_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_ConnectionCounter_init_default \ + { 0 } +#define penumbra_core_component_ibc_v1_ClientConnections_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_IbcParameters_init_default \ + { 0, 0, 0 } +#define penumbra_core_component_ibc_v1_GenesisContent_init_default \ + { false, penumbra_core_component_ibc_v1_IbcParameters_init_default } +#define penumbra_core_component_ibc_v1_IbcRelay_init_zero \ + { false, google_protobuf_Any_init_zero } +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_init_zero \ + { \ + false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_asset_v1_Denom_init_zero, {{NULL}, NULL}, false, \ + penumbra_core_keys_v1_Address_init_zero, false, ibc_core_client_v1_Height_init_zero, 0, {{NULL}, NULL}, 0 \ + } +#define penumbra_core_component_ibc_v1_ClientData_init_zero \ + { {{NULL}, NULL}, false, google_protobuf_Any_init_zero, {{NULL}, NULL}, 0 } +#define penumbra_core_component_ibc_v1_ClientCounter_init_zero \ + { 0 } +#define penumbra_core_component_ibc_v1_ConsensusState_init_zero \ + { false, google_protobuf_Any_init_zero } +#define penumbra_core_component_ibc_v1_VerifiedHeights_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_ConnectionCounter_init_zero \ + { 0 } +#define penumbra_core_component_ibc_v1_ClientConnections_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_ibc_v1_IbcParameters_init_zero \ + { 0, 0, 0 } +#define penumbra_core_component_ibc_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_ibc_v1_IbcParameters_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_ibc_v1_IbcRelay_raw_action_tag 1 +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_denom_tag 1 +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_amount_tag 2 +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_sender_tag 3 +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_receiver_tag 4 +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_memo_tag 5 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_amount_tag 1 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_denom_tag 2 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_destination_chain_address_tag 3 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_return_address_tag 4 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_timeout_height_tag 5 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_timeout_time_tag 6 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_source_channel_tag 7 +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_use_compat_address_tag 8 +#define penumbra_core_component_ibc_v1_ClientData_client_id_tag 1 +#define penumbra_core_component_ibc_v1_ClientData_client_state_tag 2 +#define penumbra_core_component_ibc_v1_ClientData_processed_time_tag 3 +#define penumbra_core_component_ibc_v1_ClientData_processed_height_tag 4 +#define penumbra_core_component_ibc_v1_ClientCounter_counter_tag 1 +#define penumbra_core_component_ibc_v1_ConsensusState_consensus_state_tag 1 +#define penumbra_core_component_ibc_v1_VerifiedHeights_heights_tag 1 +#define penumbra_core_component_ibc_v1_ConnectionCounter_counter_tag 1 +#define penumbra_core_component_ibc_v1_ClientConnections_connections_tag 1 +#define penumbra_core_component_ibc_v1_IbcParameters_ibc_enabled_tag 1 +#define penumbra_core_component_ibc_v1_IbcParameters_inbound_ics20_transfers_enabled_tag 2 +#define penumbra_core_component_ibc_v1_IbcParameters_outbound_ics20_transfers_enabled_tag 3 +#define penumbra_core_component_ibc_v1_GenesisContent_ibc_params_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_ibc_v1_IbcRelay_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, raw_action, 1) +#define penumbra_core_component_ibc_v1_IbcRelay_CALLBACK NULL +#define penumbra_core_component_ibc_v1_IbcRelay_DEFAULT NULL +#define penumbra_core_component_ibc_v1_IbcRelay_raw_action_MSGTYPE google_protobuf_Any + +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 1) \ + X(a, CALLBACK, SINGULAR, STRING, amount, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) \ + X(a, CALLBACK, SINGULAR, STRING, receiver, 4) \ + X(a, CALLBACK, SINGULAR, STRING, memo, 5) +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_CALLBACK pb_default_field_callback +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_DEFAULT NULL + +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, denom, 2) \ + X(a, CALLBACK, SINGULAR, STRING, destination_chain_address, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, return_address, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, timeout_height, 5) \ + X(a, STATIC, SINGULAR, UINT64, timeout_time, 6) \ + X(a, CALLBACK, SINGULAR, STRING, source_channel, 7) \ + X(a, STATIC, SINGULAR, BOOL, use_compat_address, 8) +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_CALLBACK pb_default_field_callback +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_DEFAULT NULL +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_denom_MSGTYPE penumbra_core_asset_v1_Denom +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_return_address_MSGTYPE penumbra_core_keys_v1_Address +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_timeout_height_MSGTYPE ibc_core_client_v1_Height + +#define penumbra_core_component_ibc_v1_ClientData_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, client_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, client_state, 2) \ + X(a, CALLBACK, SINGULAR, STRING, processed_time, 3) \ + X(a, STATIC, SINGULAR, UINT64, processed_height, 4) +#define penumbra_core_component_ibc_v1_ClientData_CALLBACK pb_default_field_callback +#define penumbra_core_component_ibc_v1_ClientData_DEFAULT NULL +#define penumbra_core_component_ibc_v1_ClientData_client_state_MSGTYPE google_protobuf_Any + +#define penumbra_core_component_ibc_v1_ClientCounter_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, counter, 1) +#define penumbra_core_component_ibc_v1_ClientCounter_CALLBACK NULL +#define penumbra_core_component_ibc_v1_ClientCounter_DEFAULT NULL + +#define penumbra_core_component_ibc_v1_ConsensusState_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, consensus_state, 1) +#define penumbra_core_component_ibc_v1_ConsensusState_CALLBACK NULL +#define penumbra_core_component_ibc_v1_ConsensusState_DEFAULT NULL +#define penumbra_core_component_ibc_v1_ConsensusState_consensus_state_MSGTYPE google_protobuf_Any + +#define penumbra_core_component_ibc_v1_VerifiedHeights_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, heights, 1) +#define penumbra_core_component_ibc_v1_VerifiedHeights_CALLBACK pb_default_field_callback +#define penumbra_core_component_ibc_v1_VerifiedHeights_DEFAULT NULL +#define penumbra_core_component_ibc_v1_VerifiedHeights_heights_MSGTYPE ibc_core_client_v1_Height + +#define penumbra_core_component_ibc_v1_ConnectionCounter_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, counter, 1) +#define penumbra_core_component_ibc_v1_ConnectionCounter_CALLBACK NULL +#define penumbra_core_component_ibc_v1_ConnectionCounter_DEFAULT NULL + +#define penumbra_core_component_ibc_v1_ClientConnections_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, connections, 1) +#define penumbra_core_component_ibc_v1_ClientConnections_CALLBACK pb_default_field_callback +#define penumbra_core_component_ibc_v1_ClientConnections_DEFAULT NULL + +#define penumbra_core_component_ibc_v1_IbcParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, ibc_enabled, 1) \ + X(a, STATIC, SINGULAR, BOOL, inbound_ics20_transfers_enabled, 2) \ + X(a, STATIC, SINGULAR, BOOL, outbound_ics20_transfers_enabled, 3) +#define penumbra_core_component_ibc_v1_IbcParameters_CALLBACK NULL +#define penumbra_core_component_ibc_v1_IbcParameters_DEFAULT NULL + +#define penumbra_core_component_ibc_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, ibc_params, 1) +#define penumbra_core_component_ibc_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_ibc_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_ibc_v1_GenesisContent_ibc_params_MSGTYPE penumbra_core_component_ibc_v1_IbcParameters + +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_IbcRelay_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_FungibleTokenPacketData_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_Ics20Withdrawal_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_ClientData_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_ClientCounter_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_ConsensusState_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_VerifiedHeights_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_ConnectionCounter_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_ClientConnections_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_IbcParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_ibc_v1_GenesisContent_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_ibc_v1_IbcRelay_fields &penumbra_core_component_ibc_v1_IbcRelay_msg +#define penumbra_core_component_ibc_v1_FungibleTokenPacketData_fields \ + &penumbra_core_component_ibc_v1_FungibleTokenPacketData_msg +#define penumbra_core_component_ibc_v1_Ics20Withdrawal_fields &penumbra_core_component_ibc_v1_Ics20Withdrawal_msg +#define penumbra_core_component_ibc_v1_ClientData_fields &penumbra_core_component_ibc_v1_ClientData_msg +#define penumbra_core_component_ibc_v1_ClientCounter_fields &penumbra_core_component_ibc_v1_ClientCounter_msg +#define penumbra_core_component_ibc_v1_ConsensusState_fields &penumbra_core_component_ibc_v1_ConsensusState_msg +#define penumbra_core_component_ibc_v1_VerifiedHeights_fields &penumbra_core_component_ibc_v1_VerifiedHeights_msg +#define penumbra_core_component_ibc_v1_ConnectionCounter_fields &penumbra_core_component_ibc_v1_ConnectionCounter_msg +#define penumbra_core_component_ibc_v1_ClientConnections_fields &penumbra_core_component_ibc_v1_ClientConnections_msg +#define penumbra_core_component_ibc_v1_IbcParameters_fields &penumbra_core_component_ibc_v1_IbcParameters_msg +#define penumbra_core_component_ibc_v1_GenesisContent_fields &penumbra_core_component_ibc_v1_GenesisContent_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_ibc_v1_FungibleTokenPacketData_size depends on runtime parameters */ +/* penumbra_core_component_ibc_v1_Ics20Withdrawal_size depends on runtime parameters */ +/* penumbra_core_component_ibc_v1_ClientData_size depends on runtime parameters */ +/* penumbra_core_component_ibc_v1_VerifiedHeights_size depends on runtime parameters */ +/* penumbra_core_component_ibc_v1_ClientConnections_size depends on runtime parameters */ +#if defined(google_protobuf_Any_size) +#define penumbra_core_component_ibc_v1_ConsensusState_size (6 + google_protobuf_Any_size) +#define penumbra_core_component_ibc_v1_IbcRelay_size (6 + google_protobuf_Any_size) +#endif +#define PENUMBRA_CORE_COMPONENT_IBC_V1_PENUMBRA_CORE_COMPONENT_IBC_V1_IBC_PB_H_MAX_SIZE \ + penumbra_core_component_ibc_v1_ClientCounter_size +#define penumbra_core_component_ibc_v1_ClientCounter_size 11 +#define penumbra_core_component_ibc_v1_ConnectionCounter_size 11 +#define penumbra_core_component_ibc_v1_GenesisContent_size 8 +#define penumbra_core_component_ibc_v1_IbcParameters_size 6 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.c b/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.c new file mode 100644 index 0000000..790d309 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.c @@ -0,0 +1,56 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/sct/v1/sct.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_sct_v1_SctParameters, penumbra_core_component_sct_v1_SctParameters, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_GenesisContent, penumbra_core_component_sct_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_Epoch, penumbra_core_component_sct_v1_Epoch, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource, penumbra_core_component_sct_v1_CommitmentSource, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource_Genesis, penumbra_core_component_sct_v1_CommitmentSource_Genesis, + AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource_Transaction, + penumbra_core_component_sct_v1_CommitmentSource_Transaction, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward, + penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput, + penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer, + penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_Nullifier, penumbra_core_component_sct_v1_Nullifier, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_NullificationInfo, penumbra_core_component_sct_v1_NullificationInfo, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EventCommitment, penumbra_core_component_sct_v1_EventCommitment, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EventAnchor, penumbra_core_component_sct_v1_EventAnchor, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EventEpochRoot, penumbra_core_component_sct_v1_EventEpochRoot, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EventBlockRoot, penumbra_core_component_sct_v1_EventBlockRoot, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EpochByHeightRequest, penumbra_core_component_sct_v1_EpochByHeightRequest, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_EpochByHeightResponse, penumbra_core_component_sct_v1_EpochByHeightResponse, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_AnchorByHeightRequest, penumbra_core_component_sct_v1_AnchorByHeightRequest, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_AnchorByHeightResponse, penumbra_core_component_sct_v1_AnchorByHeightResponse, AUTO) + +PB_BIND(penumbra_core_component_sct_v1_TimestampByHeightRequest, penumbra_core_component_sct_v1_TimestampByHeightRequest, + AUTO) + +PB_BIND(penumbra_core_component_sct_v1_TimestampByHeightResponse, penumbra_core_component_sct_v1_TimestampByHeightResponse, + AUTO) diff --git a/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.h b/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.h new file mode 100644 index 0000000..51c5d68 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/sct/v1/sct.pb.h @@ -0,0 +1,532 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_SCT_V1_PENUMBRA_CORE_COMPONENT_SCT_V1_SCT_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_SCT_V1_PENUMBRA_CORE_COMPONENT_SCT_V1_SCT_PB_H_INCLUDED +#include + +#include "google/protobuf/timestamp.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Configuration data for the SCT component. */ +typedef struct _penumbra_core_component_sct_v1_SctParameters { + /* The default duration of each epoch, in number of blocks. */ + uint64_t epoch_duration; +} penumbra_core_component_sct_v1_SctParameters; + +/* Sct-specific genesis content. */ +typedef struct _penumbra_core_component_sct_v1_GenesisContent { + /* The SctParameters present at genesis. */ + bool has_sct_params; + penumbra_core_component_sct_v1_SctParameters sct_params; +} penumbra_core_component_sct_v1_GenesisContent; + +/* An epoch is a sequentially numbered collection of contiguous blocks. */ +typedef struct _penumbra_core_component_sct_v1_Epoch { + /* The unique index of the epoch. */ + uint64_t index; + /* The starting height for the epoch. */ + uint64_t start_height; +} penumbra_core_component_sct_v1_Epoch; + +/* The state commitment was included in the genesis state. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource_Genesis { + char dummy_field; +} penumbra_core_component_sct_v1_CommitmentSource_Genesis; + +/* The commitment was created by a transaction. + + When included in a `CompactBlock` via a `StatePayload`, the transaction source is "dehydrated" + by stripping the `id` field and putting empty bytes in its place. When clients perform extended + transaction fetch, they should match up transaction hashes to "rehydrate" the source info. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource_Transaction { + /* The transaction ID, if specified. + + This field may be omitted to save space, and should not be required to be present. + If the bytes are missing, the message should be interpreted as "Transaction (Unknown)". */ + pb_callback_t id; +} penumbra_core_component_sct_v1_CommitmentSource_Transaction; + +/* The commitment was created through a validator's funding stream. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward { + /* The epoch index the rewards were issued in. */ + uint64_t epoch_index; +} penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward; + +/* The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput { + char dummy_field; +} penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput; + +/* The commitment was created by an inbound ICS20 transfer. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer { + /* The sequence number of the packet that triggered the transfer */ + uint64_t packet_seq; + /* The channel id the transfer happened on */ + pb_callback_t channel_id; + /* The sender address on the counterparty chain */ + pb_callback_t sender; +} penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer; + +/* Metadata describing the source of a commitment in the state commitment tree. + + This message allows clients to track provenance of state commitments, and to + decide whether or not to download block data. */ +typedef struct _penumbra_core_component_sct_v1_CommitmentSource { + pb_size_t which_source; + union { + penumbra_core_component_sct_v1_CommitmentSource_Transaction transaction; + penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer ics_20_transfer; + penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward funding_stream_reward; + penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput community_pool_output; + penumbra_core_component_sct_v1_CommitmentSource_Genesis genesis; + } source; +} penumbra_core_component_sct_v1_CommitmentSource; + +typedef struct _penumbra_core_component_sct_v1_Nullifier { + pb_callback_t inner; +} penumbra_core_component_sct_v1_Nullifier; + +/* Records information about what transaction spent a nullifier. */ +typedef struct _penumbra_core_component_sct_v1_NullificationInfo { + pb_callback_t id; + uint64_t spend_height; +} penumbra_core_component_sct_v1_NullificationInfo; + +/* Event recording a new commitment added to the SCT. */ +typedef struct _penumbra_core_component_sct_v1_EventCommitment { + bool has_commitment; + penumbra_crypto_tct_v1_StateCommitment commitment; + uint64_t position; + bool has_source; + penumbra_core_component_sct_v1_CommitmentSource source; +} penumbra_core_component_sct_v1_EventCommitment; + +/* Event recording an SCT anchor (global root). */ +typedef struct _penumbra_core_component_sct_v1_EventAnchor { + bool has_anchor; + penumbra_crypto_tct_v1_MerkleRoot anchor; + uint64_t height; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} penumbra_core_component_sct_v1_EventAnchor; + +/* Event recording an SCT epoch root. */ +typedef struct _penumbra_core_component_sct_v1_EventEpochRoot { + bool has_root; + penumbra_crypto_tct_v1_MerkleRoot root; + uint64_t index; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} penumbra_core_component_sct_v1_EventEpochRoot; + +/* Event recording an SCT block root. */ +typedef struct _penumbra_core_component_sct_v1_EventBlockRoot { + bool has_root; + penumbra_crypto_tct_v1_MerkleRoot root; + uint64_t height; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} penumbra_core_component_sct_v1_EventBlockRoot; + +typedef struct _penumbra_core_component_sct_v1_EpochByHeightRequest { + uint64_t height; +} penumbra_core_component_sct_v1_EpochByHeightRequest; + +typedef struct _penumbra_core_component_sct_v1_EpochByHeightResponse { + bool has_epoch; + penumbra_core_component_sct_v1_Epoch epoch; +} penumbra_core_component_sct_v1_EpochByHeightResponse; + +typedef struct _penumbra_core_component_sct_v1_AnchorByHeightRequest { + uint64_t height; +} penumbra_core_component_sct_v1_AnchorByHeightRequest; + +typedef struct _penumbra_core_component_sct_v1_AnchorByHeightResponse { + bool has_anchor; + penumbra_crypto_tct_v1_MerkleRoot anchor; +} penumbra_core_component_sct_v1_AnchorByHeightResponse; + +typedef struct _penumbra_core_component_sct_v1_TimestampByHeightRequest { + uint64_t height; +} penumbra_core_component_sct_v1_TimestampByHeightRequest; + +typedef struct _penumbra_core_component_sct_v1_TimestampByHeightResponse { + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} penumbra_core_component_sct_v1_TimestampByHeightResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_sct_v1_SctParameters_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_GenesisContent_init_default \ + { false, penumbra_core_component_sct_v1_SctParameters_init_default } +#define penumbra_core_component_sct_v1_Epoch_init_default \ + { 0, 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_init_default \ + { \ + 0, { penumbra_core_component_sct_v1_CommitmentSource_Transaction_init_default } \ + } +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_Nullifier_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_NullificationInfo_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_component_sct_v1_EventCommitment_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, 0, false, \ + penumbra_core_component_sct_v1_CommitmentSource_init_default \ + } +#define penumbra_core_component_sct_v1_EventAnchor_init_default \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_default, 0, false, google_protobuf_Timestamp_init_default } +#define penumbra_core_component_sct_v1_EventEpochRoot_init_default \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_default, 0, false, google_protobuf_Timestamp_init_default } +#define penumbra_core_component_sct_v1_EventBlockRoot_init_default \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_default, 0, false, google_protobuf_Timestamp_init_default } +#define penumbra_core_component_sct_v1_EpochByHeightRequest_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_EpochByHeightResponse_init_default \ + { false, penumbra_core_component_sct_v1_Epoch_init_default } +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_init_default \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_default } +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_init_default \ + { 0 } +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_init_default \ + { false, google_protobuf_Timestamp_init_default } +#define penumbra_core_component_sct_v1_SctParameters_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_GenesisContent_init_zero \ + { false, penumbra_core_component_sct_v1_SctParameters_init_zero } +#define penumbra_core_component_sct_v1_Epoch_init_zero \ + { 0, 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_init_zero \ + { \ + 0, { penumbra_core_component_sct_v1_CommitmentSource_Transaction_init_zero } \ + } +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_Nullifier_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_sct_v1_NullificationInfo_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_component_sct_v1_EventCommitment_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, 0, false, \ + penumbra_core_component_sct_v1_CommitmentSource_init_zero \ + } +#define penumbra_core_component_sct_v1_EventAnchor_init_zero \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_zero, 0, false, google_protobuf_Timestamp_init_zero } +#define penumbra_core_component_sct_v1_EventEpochRoot_init_zero \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_zero, 0, false, google_protobuf_Timestamp_init_zero } +#define penumbra_core_component_sct_v1_EventBlockRoot_init_zero \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_zero, 0, false, google_protobuf_Timestamp_init_zero } +#define penumbra_core_component_sct_v1_EpochByHeightRequest_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_EpochByHeightResponse_init_zero \ + { false, penumbra_core_component_sct_v1_Epoch_init_zero } +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_init_zero \ + { false, penumbra_crypto_tct_v1_MerkleRoot_init_zero } +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_init_zero \ + { 0 } +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_init_zero \ + { false, google_protobuf_Timestamp_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_sct_v1_SctParameters_epoch_duration_tag 1 +#define penumbra_core_component_sct_v1_GenesisContent_sct_params_tag 1 +#define penumbra_core_component_sct_v1_Epoch_index_tag 1 +#define penumbra_core_component_sct_v1_Epoch_start_height_tag 2 +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_id_tag 1 +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_epoch_index_tag 1 +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_packet_seq_tag 1 +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_channel_id_tag 2 +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_sender_tag 3 +#define penumbra_core_component_sct_v1_CommitmentSource_transaction_tag 1 +#define penumbra_core_component_sct_v1_CommitmentSource_ics_20_transfer_tag 2 +#define penumbra_core_component_sct_v1_CommitmentSource_funding_stream_reward_tag 20 +#define penumbra_core_component_sct_v1_CommitmentSource_community_pool_output_tag 30 +#define penumbra_core_component_sct_v1_CommitmentSource_genesis_tag 40 +#define penumbra_core_component_sct_v1_Nullifier_inner_tag 1 +#define penumbra_core_component_sct_v1_NullificationInfo_id_tag 1 +#define penumbra_core_component_sct_v1_NullificationInfo_spend_height_tag 2 +#define penumbra_core_component_sct_v1_EventCommitment_commitment_tag 1 +#define penumbra_core_component_sct_v1_EventCommitment_position_tag 2 +#define penumbra_core_component_sct_v1_EventCommitment_source_tag 3 +#define penumbra_core_component_sct_v1_EventAnchor_anchor_tag 1 +#define penumbra_core_component_sct_v1_EventAnchor_height_tag 2 +#define penumbra_core_component_sct_v1_EventAnchor_timestamp_tag 3 +#define penumbra_core_component_sct_v1_EventEpochRoot_root_tag 1 +#define penumbra_core_component_sct_v1_EventEpochRoot_index_tag 2 +#define penumbra_core_component_sct_v1_EventEpochRoot_timestamp_tag 3 +#define penumbra_core_component_sct_v1_EventBlockRoot_root_tag 1 +#define penumbra_core_component_sct_v1_EventBlockRoot_height_tag 2 +#define penumbra_core_component_sct_v1_EventBlockRoot_timestamp_tag 3 +#define penumbra_core_component_sct_v1_EpochByHeightRequest_height_tag 1 +#define penumbra_core_component_sct_v1_EpochByHeightResponse_epoch_tag 1 +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_height_tag 1 +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_anchor_tag 1 +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_height_tag 1 +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_timestamp_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_sct_v1_SctParameters_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, epoch_duration, 1) +#define penumbra_core_component_sct_v1_SctParameters_CALLBACK NULL +#define penumbra_core_component_sct_v1_SctParameters_DEFAULT NULL + +#define penumbra_core_component_sct_v1_GenesisContent_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, sct_params, 1) +#define penumbra_core_component_sct_v1_GenesisContent_CALLBACK NULL +#define penumbra_core_component_sct_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_sct_v1_GenesisContent_sct_params_MSGTYPE penumbra_core_component_sct_v1_SctParameters + +#define penumbra_core_component_sct_v1_Epoch_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, index, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 2) +#define penumbra_core_component_sct_v1_Epoch_CALLBACK NULL +#define penumbra_core_component_sct_v1_Epoch_DEFAULT NULL + +#define penumbra_core_component_sct_v1_CommitmentSource_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (source, transaction, source.transaction), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (source, ics_20_transfer, source.ics_20_transfer), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (source, funding_stream_reward, source.funding_stream_reward), 20) \ + X(a, STATIC, ONEOF, MESSAGE, (source, community_pool_output, source.community_pool_output), 30) \ + X(a, STATIC, ONEOF, MESSAGE, (source, genesis, source.genesis), 40) +#define penumbra_core_component_sct_v1_CommitmentSource_CALLBACK NULL +#define penumbra_core_component_sct_v1_CommitmentSource_DEFAULT NULL +#define penumbra_core_component_sct_v1_CommitmentSource_source_transaction_MSGTYPE \ + penumbra_core_component_sct_v1_CommitmentSource_Transaction +#define penumbra_core_component_sct_v1_CommitmentSource_source_ics_20_transfer_MSGTYPE \ + penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer +#define penumbra_core_component_sct_v1_CommitmentSource_source_funding_stream_reward_MSGTYPE \ + penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward +#define penumbra_core_component_sct_v1_CommitmentSource_source_community_pool_output_MSGTYPE \ + penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput +#define penumbra_core_component_sct_v1_CommitmentSource_source_genesis_MSGTYPE \ + penumbra_core_component_sct_v1_CommitmentSource_Genesis + +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_FIELDLIST(X, a) + +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_CALLBACK NULL +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_DEFAULT NULL + +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, id, 1) +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_CALLBACK pb_default_field_callback +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_DEFAULT NULL + +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 1) +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_CALLBACK NULL +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_DEFAULT NULL + +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_FIELDLIST(X, a) + +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_CALLBACK NULL +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_DEFAULT NULL + +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, packet_seq, 1) \ + X(a, CALLBACK, SINGULAR, STRING, channel_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_CALLBACK pb_default_field_callback +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_DEFAULT NULL + +#define penumbra_core_component_sct_v1_Nullifier_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_sct_v1_Nullifier_CALLBACK pb_default_field_callback +#define penumbra_core_component_sct_v1_Nullifier_DEFAULT NULL + +#define penumbra_core_component_sct_v1_NullificationInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, id, 1) \ + X(a, STATIC, SINGULAR, UINT64, spend_height, 2) +#define penumbra_core_component_sct_v1_NullificationInfo_CALLBACK pb_default_field_callback +#define penumbra_core_component_sct_v1_NullificationInfo_DEFAULT NULL + +#define penumbra_core_component_sct_v1_EventCommitment_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 1) \ + X(a, STATIC, SINGULAR, UINT64, position, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, source, 3) +#define penumbra_core_component_sct_v1_EventCommitment_CALLBACK NULL +#define penumbra_core_component_sct_v1_EventCommitment_DEFAULT NULL +#define penumbra_core_component_sct_v1_EventCommitment_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_sct_v1_EventCommitment_source_MSGTYPE penumbra_core_component_sct_v1_CommitmentSource + +#define penumbra_core_component_sct_v1_EventAnchor_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, anchor, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) +#define penumbra_core_component_sct_v1_EventAnchor_CALLBACK NULL +#define penumbra_core_component_sct_v1_EventAnchor_DEFAULT NULL +#define penumbra_core_component_sct_v1_EventAnchor_anchor_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_component_sct_v1_EventAnchor_timestamp_MSGTYPE google_protobuf_Timestamp + +#define penumbra_core_component_sct_v1_EventEpochRoot_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, root, 1) \ + X(a, STATIC, SINGULAR, UINT64, index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) +#define penumbra_core_component_sct_v1_EventEpochRoot_CALLBACK NULL +#define penumbra_core_component_sct_v1_EventEpochRoot_DEFAULT NULL +#define penumbra_core_component_sct_v1_EventEpochRoot_root_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_component_sct_v1_EventEpochRoot_timestamp_MSGTYPE google_protobuf_Timestamp + +#define penumbra_core_component_sct_v1_EventBlockRoot_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, root, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) +#define penumbra_core_component_sct_v1_EventBlockRoot_CALLBACK NULL +#define penumbra_core_component_sct_v1_EventBlockRoot_DEFAULT NULL +#define penumbra_core_component_sct_v1_EventBlockRoot_root_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_component_sct_v1_EventBlockRoot_timestamp_MSGTYPE google_protobuf_Timestamp + +#define penumbra_core_component_sct_v1_EpochByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, height, 1) +#define penumbra_core_component_sct_v1_EpochByHeightRequest_CALLBACK NULL +#define penumbra_core_component_sct_v1_EpochByHeightRequest_DEFAULT NULL + +#define penumbra_core_component_sct_v1_EpochByHeightResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, epoch, 1) +#define penumbra_core_component_sct_v1_EpochByHeightResponse_CALLBACK NULL +#define penumbra_core_component_sct_v1_EpochByHeightResponse_DEFAULT NULL +#define penumbra_core_component_sct_v1_EpochByHeightResponse_epoch_MSGTYPE penumbra_core_component_sct_v1_Epoch + +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, height, 1) +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_CALLBACK NULL +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_DEFAULT NULL + +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, anchor, 1) +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_CALLBACK NULL +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_DEFAULT NULL +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_anchor_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot + +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, height, 1) +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_CALLBACK NULL +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_DEFAULT NULL + +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 1) +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_CALLBACK NULL +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_DEFAULT NULL +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_timestamp_MSGTYPE google_protobuf_Timestamp + +extern const pb_msgdesc_t penumbra_core_component_sct_v1_SctParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_Epoch_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_Genesis_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_Transaction_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_Nullifier_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_NullificationInfo_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EventCommitment_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EventAnchor_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EventEpochRoot_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EventBlockRoot_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EpochByHeightRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_EpochByHeightResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_AnchorByHeightRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_AnchorByHeightResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_TimestampByHeightRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_sct_v1_TimestampByHeightResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_sct_v1_SctParameters_fields &penumbra_core_component_sct_v1_SctParameters_msg +#define penumbra_core_component_sct_v1_GenesisContent_fields &penumbra_core_component_sct_v1_GenesisContent_msg +#define penumbra_core_component_sct_v1_Epoch_fields &penumbra_core_component_sct_v1_Epoch_msg +#define penumbra_core_component_sct_v1_CommitmentSource_fields &penumbra_core_component_sct_v1_CommitmentSource_msg +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_fields \ + &penumbra_core_component_sct_v1_CommitmentSource_Genesis_msg +#define penumbra_core_component_sct_v1_CommitmentSource_Transaction_fields \ + &penumbra_core_component_sct_v1_CommitmentSource_Transaction_msg +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_fields \ + &penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_msg +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_fields \ + &penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_msg +#define penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_fields \ + &penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_msg +#define penumbra_core_component_sct_v1_Nullifier_fields &penumbra_core_component_sct_v1_Nullifier_msg +#define penumbra_core_component_sct_v1_NullificationInfo_fields &penumbra_core_component_sct_v1_NullificationInfo_msg +#define penumbra_core_component_sct_v1_EventCommitment_fields &penumbra_core_component_sct_v1_EventCommitment_msg +#define penumbra_core_component_sct_v1_EventAnchor_fields &penumbra_core_component_sct_v1_EventAnchor_msg +#define penumbra_core_component_sct_v1_EventEpochRoot_fields &penumbra_core_component_sct_v1_EventEpochRoot_msg +#define penumbra_core_component_sct_v1_EventBlockRoot_fields &penumbra_core_component_sct_v1_EventBlockRoot_msg +#define penumbra_core_component_sct_v1_EpochByHeightRequest_fields &penumbra_core_component_sct_v1_EpochByHeightRequest_msg +#define penumbra_core_component_sct_v1_EpochByHeightResponse_fields &penumbra_core_component_sct_v1_EpochByHeightResponse_msg +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_fields &penumbra_core_component_sct_v1_AnchorByHeightRequest_msg +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_fields \ + &penumbra_core_component_sct_v1_AnchorByHeightResponse_msg +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_fields \ + &penumbra_core_component_sct_v1_TimestampByHeightRequest_msg +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_fields \ + &penumbra_core_component_sct_v1_TimestampByHeightResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_sct_v1_CommitmentSource_size depends on runtime parameters */ +/* penumbra_core_component_sct_v1_CommitmentSource_Transaction_size depends on runtime parameters */ +/* penumbra_core_component_sct_v1_CommitmentSource_Ics20Transfer_size depends on runtime parameters */ +/* penumbra_core_component_sct_v1_Nullifier_size depends on runtime parameters */ +/* penumbra_core_component_sct_v1_NullificationInfo_size depends on runtime parameters */ +/* penumbra_core_component_sct_v1_EventCommitment_size depends on runtime parameters */ +#define penumbra_core_component_sct_v1_AnchorByHeightRequest_size 11 +#define penumbra_core_component_sct_v1_CommitmentSource_CommunityPoolOutput_size 0 +#define penumbra_core_component_sct_v1_CommitmentSource_FundingStreamReward_size 11 +#define penumbra_core_component_sct_v1_CommitmentSource_Genesis_size 0 +#define penumbra_core_component_sct_v1_EpochByHeightRequest_size 11 +#define penumbra_core_component_sct_v1_EpochByHeightResponse_size 24 +#define penumbra_core_component_sct_v1_Epoch_size 22 +#define penumbra_core_component_sct_v1_GenesisContent_size 13 +#define penumbra_core_component_sct_v1_SctParameters_size 11 +#define penumbra_core_component_sct_v1_TimestampByHeightRequest_size 11 +#define penumbra_core_component_sct_v1_TimestampByHeightResponse_size 24 +#if defined(penumbra_crypto_tct_v1_MerkleRoot_size) +#define PENUMBRA_CORE_COMPONENT_SCT_V1_PENUMBRA_CORE_COMPONENT_SCT_V1_SCT_PB_H_MAX_SIZE \ + penumbra_core_component_sct_v1_EventAnchor_size +#define penumbra_core_component_sct_v1_AnchorByHeightResponse_size (6 + penumbra_crypto_tct_v1_MerkleRoot_size) +#define penumbra_core_component_sct_v1_EventAnchor_size (41 + penumbra_crypto_tct_v1_MerkleRoot_size) +#define penumbra_core_component_sct_v1_EventBlockRoot_size (41 + penumbra_crypto_tct_v1_MerkleRoot_size) +#define penumbra_core_component_sct_v1_EventEpochRoot_size (41 + penumbra_crypto_tct_v1_MerkleRoot_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.c b/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.c new file mode 100644 index 0000000..82e296c --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.c @@ -0,0 +1,96 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters, + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_GenesisContent, penumbra_core_component_shielded_pool_v1_GenesisContent, + AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation, + penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdMetaParameters, + penumbra_core_component_shielded_pool_v1_FmdMetaParameters, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow, + penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState, + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState, + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState, + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_FmdParameters, penumbra_core_component_shielded_pool_v1_FmdParameters, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_Note, penumbra_core_component_shielded_pool_v1_Note, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_NoteView, penumbra_core_component_shielded_pool_v1_NoteView, 2) + +PB_BIND(penumbra_core_component_shielded_pool_v1_NoteCiphertext, penumbra_core_component_shielded_pool_v1_NoteCiphertext, + AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_NotePayload, penumbra_core_component_shielded_pool_v1_NotePayload, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_ZKOutputProof, penumbra_core_component_shielded_pool_v1_ZKOutputProof, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_ZKSpendProof, penumbra_core_component_shielded_pool_v1_ZKSpendProof, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof, + penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_Spend, penumbra_core_component_shielded_pool_v1_Spend, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_EventSpend, penumbra_core_component_shielded_pool_v1_EventSpend, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_EventOutput, penumbra_core_component_shielded_pool_v1_EventOutput, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_EventBroadcastClue, + penumbra_core_component_shielded_pool_v1_EventBroadcastClue, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_SpendBody, penumbra_core_component_shielded_pool_v1_SpendBody, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_SpendView, penumbra_core_component_shielded_pool_v1_SpendView, 2) + +PB_BIND(penumbra_core_component_shielded_pool_v1_SpendView_Visible, + penumbra_core_component_shielded_pool_v1_SpendView_Visible, 2) + +PB_BIND(penumbra_core_component_shielded_pool_v1_SpendView_Opaque, penumbra_core_component_shielded_pool_v1_SpendView_Opaque, + AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_SpendPlan, penumbra_core_component_shielded_pool_v1_SpendPlan, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_Output, penumbra_core_component_shielded_pool_v1_Output, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_OutputBody, penumbra_core_component_shielded_pool_v1_OutputBody, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_OutputView, penumbra_core_component_shielded_pool_v1_OutputView, 2) + +PB_BIND(penumbra_core_component_shielded_pool_v1_OutputView_Visible, + penumbra_core_component_shielded_pool_v1_OutputView_Visible, 2) + +PB_BIND(penumbra_core_component_shielded_pool_v1_OutputView_Opaque, + penumbra_core_component_shielded_pool_v1_OutputView_Opaque, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_OutputPlan, penumbra_core_component_shielded_pool_v1_OutputPlan, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest, + penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse, + penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest, + penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest, AUTO) + +PB_BIND(penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse, + penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h b/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h new file mode 100644 index 0000000..2b2b2ce --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h @@ -0,0 +1,1099 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_SHIELDED_POOL_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_SHIELDED_POOL_PB_H_INCLUDED +#include + +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" +#include "penumbra/core/txhash/v1/txhash.pb.h" +#include "penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h" +#include "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation { + bool has_amount; + penumbra_core_num_v1_Amount amount; + pb_callback_t denom; + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation; + +/* A sliding window algorithm for updating the parameters. */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow { + /* The window size, in terms of the number of update periods. + + The update period is 16 blocks, by default, but can change with governance. */ + uint32_t window_update_periods; + /* The number of detections we aim to see per window. */ + uint32_t targeted_detections_per_window; +} penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow; + +/* The parameters which control how the FMD parameters evolve over time. */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdMetaParameters { + /* How much time users have to transition to new parameters. */ + uint64_t fmd_grace_period_blocks; + pb_size_t which_algorithm; + union { + uint32_t fixed_precision_bits; + penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow sliding_window; + } algorithm; +} penumbra_core_component_shielded_pool_v1_FmdMetaParameters; + +/* The state used for the fixed algorithm. */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState { + char dummy_field; +} penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState; + +/* The state used for the sliding window algorithm. */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState { + /* The number of clues previously observed, approximately. */ + uint32_t approximate_clue_count; +} penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState; + +/* Used to potentially store state for the FMD Meta Parameters algorithm. */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState { + pb_size_t which_state; + union { + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState fixed; + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState sliding_window; + } state; +} penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState; + +/* Parameters for Fuzzy Message Detection */ +typedef struct _penumbra_core_component_shielded_pool_v1_FmdParameters { + uint32_t precision_bits; + uint64_t as_of_block_height; +} penumbra_core_component_shielded_pool_v1_FmdParameters; + +/* Configuration data for the shielded pool component. */ +typedef struct _penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters { + bool has_fixed_fmd_params; + penumbra_core_component_shielded_pool_v1_FmdParameters fixed_fmd_params; + bool has_fmd_meta_params; + penumbra_core_component_shielded_pool_v1_FmdMetaParameters fmd_meta_params; +} penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters; + +/* Genesis data for the shielded pool component. */ +typedef struct _penumbra_core_component_shielded_pool_v1_GenesisContent { + bool has_shielded_pool_params; + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters shielded_pool_params; + /* The allocations present at genesis */ + pb_callback_t allocations; +} penumbra_core_component_shielded_pool_v1_GenesisContent; + +typedef struct _penumbra_core_component_shielded_pool_v1_Note { + bool has_value; + penumbra_core_asset_v1_Value value; + pb_callback_t rseed; + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_core_component_shielded_pool_v1_Note; + +typedef struct _penumbra_core_component_shielded_pool_v1_NoteView { + bool has_value; + penumbra_core_asset_v1_ValueView value; + pb_callback_t rseed; + bool has_address; + penumbra_core_keys_v1_AddressView address; +} penumbra_core_component_shielded_pool_v1_NoteView; + +/* An encrypted note. + 176 = 80(address) + 16(amount) + 32(asset ID) + 32(rseed) + 16(MAC) bytes. */ +typedef struct _penumbra_core_component_shielded_pool_v1_NoteCiphertext { + pb_callback_t inner; +} penumbra_core_component_shielded_pool_v1_NoteCiphertext; + +/* The body of an output description, including only the minimal + data required to scan and process the output. */ +typedef struct _penumbra_core_component_shielded_pool_v1_NotePayload { + /* The note commitment for the output note. 32 bytes. */ + bool has_note_commitment; + penumbra_crypto_tct_v1_StateCommitment note_commitment; + /* The encoding of an ephemeral public key. 32 bytes. */ + pb_callback_t ephemeral_key; + /* An encryption of the newly created note. + 176 = 80(address) + 16(amount) + 32(asset ID) + 32(rseed) + 16(MAC) bytes. */ + bool has_encrypted_note; + penumbra_core_component_shielded_pool_v1_NoteCiphertext encrypted_note; +} penumbra_core_component_shielded_pool_v1_NotePayload; + +/* A Penumbra ZK output proof. */ +typedef struct _penumbra_core_component_shielded_pool_v1_ZKOutputProof { + pb_callback_t inner; +} penumbra_core_component_shielded_pool_v1_ZKOutputProof; + +/* A Penumbra ZK spend proof. */ +typedef struct _penumbra_core_component_shielded_pool_v1_ZKSpendProof { + pb_callback_t inner; +} penumbra_core_component_shielded_pool_v1_ZKSpendProof; + +/* A Penumbra ZK nullifier derivation proof. */ +typedef struct _penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof { + pb_callback_t inner; +} penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof; + +/* ABCI Event recording a spend. */ +typedef struct _penumbra_core_component_shielded_pool_v1_EventSpend { + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; +} penumbra_core_component_shielded_pool_v1_EventSpend; + +/* ABCI Event recording an output. */ +typedef struct _penumbra_core_component_shielded_pool_v1_EventOutput { + bool has_note_commitment; + penumbra_crypto_tct_v1_StateCommitment note_commitment; +} penumbra_core_component_shielded_pool_v1_EventOutput; + +/* ABCI Event recording a clue. */ +typedef struct _penumbra_core_component_shielded_pool_v1_EventBroadcastClue { + bool has_clue; + penumbra_crypto_decaf377_fmd_v1_Clue clue; + bool has_tx; + penumbra_core_txhash_v1_TransactionId tx; +} penumbra_core_component_shielded_pool_v1_EventBroadcastClue; + +/* The body of a spend description, containing only the effecting data + describing changes to the ledger, and not the authorizing data that allows + those changes to be performed. */ +typedef struct _penumbra_core_component_shielded_pool_v1_SpendBody { + /* A commitment to the value of the input note. */ + bool has_balance_commitment; + penumbra_core_asset_v1_BalanceCommitment balance_commitment; + /* The randomized validating key for the spend authorization signature. */ + bool has_rk; + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey rk; + /* The nullifier of the input note. */ + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; +} penumbra_core_component_shielded_pool_v1_SpendBody; + +/* Spends a shielded note. */ +typedef struct _penumbra_core_component_shielded_pool_v1_Spend { + /* The effecting data of the spend. */ + bool has_body; + penumbra_core_component_shielded_pool_v1_SpendBody body; + /* The authorizing signature for the spend. */ + bool has_auth_sig; + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature auth_sig; + /* The proof that the spend is well-formed is authorizing data. */ + bool has_proof; + penumbra_core_component_shielded_pool_v1_ZKSpendProof proof; +} penumbra_core_component_shielded_pool_v1_Spend; + +typedef struct _penumbra_core_component_shielded_pool_v1_SpendView_Visible { + bool has_spend; + penumbra_core_component_shielded_pool_v1_Spend spend; + bool has_note; + penumbra_core_component_shielded_pool_v1_NoteView note; +} penumbra_core_component_shielded_pool_v1_SpendView_Visible; + +typedef struct _penumbra_core_component_shielded_pool_v1_SpendView_Opaque { + bool has_spend; + penumbra_core_component_shielded_pool_v1_Spend spend; +} penumbra_core_component_shielded_pool_v1_SpendView_Opaque; + +typedef struct _penumbra_core_component_shielded_pool_v1_SpendView { + pb_size_t which_spend_view; + union { + penumbra_core_component_shielded_pool_v1_SpendView_Visible visible; + penumbra_core_component_shielded_pool_v1_SpendView_Opaque opaque; + } spend_view; +} penumbra_core_component_shielded_pool_v1_SpendView; + +typedef struct _penumbra_core_component_shielded_pool_v1_SpendPlan { + /* The plaintext note we plan to spend. */ + bool has_note; + penumbra_core_component_shielded_pool_v1_Note note; + /* The position of the note we plan to spend. */ + uint64_t position; + /* The randomizer to use for the spend. */ + pb_callback_t randomizer; + /* The blinding factor to use for the value commitment. */ + pb_callback_t value_blinding; + /* The first blinding factor to use for the ZK spend proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK spend proof. */ + pb_callback_t proof_blinding_s; +} penumbra_core_component_shielded_pool_v1_SpendPlan; + +/* The body of an output description, containing only the effecting data + describing changes to the ledger, and not the authorizing data that allows + those changes to be performed. */ +typedef struct _penumbra_core_component_shielded_pool_v1_OutputBody { + /* The minimal data required to scan and process the new output note. */ + bool has_note_payload; + penumbra_core_component_shielded_pool_v1_NotePayload note_payload; + /* A commitment to the value of the output note. 32 bytes. */ + bool has_balance_commitment; + penumbra_core_asset_v1_BalanceCommitment balance_commitment; + /* An encrypted key for decrypting the memo. */ + pb_callback_t wrapped_memo_key; + /* The key material used for note encryption, wrapped in encryption to the + sender's outgoing viewing key. 48 bytes. */ + pb_callback_t ovk_wrapped_key; +} penumbra_core_component_shielded_pool_v1_OutputBody; + +/* Creates a new shielded note. */ +typedef struct _penumbra_core_component_shielded_pool_v1_Output { + /* The effecting data for the output. */ + bool has_body; + penumbra_core_component_shielded_pool_v1_OutputBody body; + /* The output proof is authorizing data. */ + bool has_proof; + penumbra_core_component_shielded_pool_v1_ZKOutputProof proof; +} penumbra_core_component_shielded_pool_v1_Output; + +typedef struct _penumbra_core_component_shielded_pool_v1_OutputView_Visible { + bool has_output; + penumbra_core_component_shielded_pool_v1_Output output; + bool has_note; + penumbra_core_component_shielded_pool_v1_NoteView note; + bool has_payload_key; + penumbra_core_keys_v1_PayloadKey payload_key; +} penumbra_core_component_shielded_pool_v1_OutputView_Visible; + +typedef struct _penumbra_core_component_shielded_pool_v1_OutputView_Opaque { + bool has_output; + penumbra_core_component_shielded_pool_v1_Output output; +} penumbra_core_component_shielded_pool_v1_OutputView_Opaque; + +typedef struct _penumbra_core_component_shielded_pool_v1_OutputView { + pb_size_t which_output_view; + union { + penumbra_core_component_shielded_pool_v1_OutputView_Visible visible; + penumbra_core_component_shielded_pool_v1_OutputView_Opaque opaque; + } output_view; +} penumbra_core_component_shielded_pool_v1_OutputView; + +typedef struct _penumbra_core_component_shielded_pool_v1_OutputPlan { + /* The value to send to this output. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The destination address to send it to. */ + bool has_dest_address; + penumbra_core_keys_v1_Address dest_address; + /* The rseed to use for the new note. */ + pb_callback_t rseed; + /* The blinding factor to use for the value commitment. */ + pb_callback_t value_blinding; + /* The first blinding factor to use for the ZK output proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK output proof. */ + pb_callback_t proof_blinding_s; +} penumbra_core_component_shielded_pool_v1_OutputPlan; + +/* Requests information on an asset by asset id */ +typedef struct _penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest { + /* The asset id to request information on. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest; + +typedef struct _penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse { + /* If present, information on the requested asset. + + If the requested asset was unknown, this field will not be present. */ + bool has_denom_metadata; + penumbra_core_asset_v1_Metadata denom_metadata; +} penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse; + +/* Requests information on an asset by multiple asset ids */ +typedef struct _penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest { + /* The asset IDs to request information on. Note that node is neither required + nor expected to stream responses in the same order as this array. */ + pb_callback_t asset_id; +} penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest; + +typedef struct _penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse { + /* A single asset metadata streamed from the node. */ + bool has_denom_metadata; + penumbra_core_asset_v1_Metadata denom_metadata; +} penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_FmdParameters_init_default, false, \ + penumbra_core_component_shielded_pool_v1_FmdMetaParameters_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_GenesisContent_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, {{NULL}, NULL}, false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_init_default \ + { \ + 0, 0, { 0 } \ + } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_init_default \ + { 0, 0 } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_init_default } \ + } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_init_default \ + { 0 } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_init_default \ + { 0 } +#define penumbra_core_component_shielded_pool_v1_FmdParameters_init_default \ + { 0, 0 } +#define penumbra_core_component_shielded_pool_v1_Note_init_default \ + { false, penumbra_core_asset_v1_Value_init_default, {{NULL}, NULL}, false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_core_component_shielded_pool_v1_NoteView_init_default \ + { \ + false, penumbra_core_asset_v1_ValueView_init_default, {{NULL}, NULL}, false, \ + penumbra_core_keys_v1_AddressView_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_NotePayload_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, {{NULL}, NULL}, false, \ + penumbra_core_component_shielded_pool_v1_NoteCiphertext_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_Spend_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_SpendBody_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default, false, \ + penumbra_core_component_shielded_pool_v1_ZKSpendProof_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_EventSpend_init_default \ + { false, penumbra_core_component_sct_v1_Nullifier_init_default } +#define penumbra_core_component_shielded_pool_v1_EventOutput_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default } +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_init_default \ + { false, penumbra_crypto_decaf377_fmd_v1_Clue_init_default, false, penumbra_core_txhash_v1_TransactionId_init_default } +#define penumbra_core_component_shielded_pool_v1_SpendBody_init_default \ + { \ + false, penumbra_core_asset_v1_BalanceCommitment_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_default, false, \ + penumbra_core_component_sct_v1_Nullifier_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendView_Visible_init_default } \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_Spend_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_init_default \ + { false, penumbra_core_component_shielded_pool_v1_Spend_init_default } +#define penumbra_core_component_shielded_pool_v1_SpendPlan_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_Note_init_default, 0, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_Output_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_OutputBody_init_default, false, \ + penumbra_core_component_shielded_pool_v1_ZKOutputProof_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_OutputBody_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_NotePayload_init_default, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_OutputView_Visible_init_default } \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_init_default \ + { \ + false, penumbra_core_component_shielded_pool_v1_Output_init_default, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_default, false, \ + penumbra_core_keys_v1_PayloadKey_init_default \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_init_default \ + { false, penumbra_core_component_shielded_pool_v1_Output_init_default } +#define penumbra_core_component_shielded_pool_v1_OutputPlan_init_default \ + { \ + false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_keys_v1_Address_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_init_default \ + { false, penumbra_core_asset_v1_Metadata_init_default } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_init_default \ + { false, penumbra_core_asset_v1_Metadata_init_default } +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_FmdParameters_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_FmdMetaParameters_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_GenesisContent_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, {{NULL}, NULL}, false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_init_zero \ + { \ + 0, 0, { 0 } \ + } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_init_zero \ + { 0, 0 } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_init_zero } \ + } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_init_zero \ + { 0 } +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_init_zero \ + { 0 } +#define penumbra_core_component_shielded_pool_v1_FmdParameters_init_zero \ + { 0, 0 } +#define penumbra_core_component_shielded_pool_v1_Note_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero, {{NULL}, NULL}, false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_core_component_shielded_pool_v1_NoteView_init_zero \ + { false, penumbra_core_asset_v1_ValueView_init_zero, {{NULL}, NULL}, false, penumbra_core_keys_v1_AddressView_init_zero } +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_NotePayload_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, {{NULL}, NULL}, false, \ + penumbra_core_component_shielded_pool_v1_NoteCiphertext_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_Spend_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_SpendBody_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_ZKSpendProof_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_EventSpend_init_zero \ + { false, penumbra_core_component_sct_v1_Nullifier_init_zero } +#define penumbra_core_component_shielded_pool_v1_EventOutput_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero } +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_init_zero \ + { false, penumbra_crypto_decaf377_fmd_v1_Clue_init_zero, false, penumbra_core_txhash_v1_TransactionId_init_zero } +#define penumbra_core_component_shielded_pool_v1_SpendBody_init_zero \ + { \ + false, penumbra_core_asset_v1_BalanceCommitment_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_zero, false, \ + penumbra_core_component_sct_v1_Nullifier_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendView_Visible_init_zero } \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_Spend_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_init_zero \ + { false, penumbra_core_component_shielded_pool_v1_Spend_init_zero } +#define penumbra_core_component_shielded_pool_v1_SpendPlan_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_Note_init_zero, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_Output_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_OutputBody_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_ZKOutputProof_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_OutputBody_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_NotePayload_init_zero, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_OutputView_Visible_init_zero } \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_init_zero \ + { \ + false, penumbra_core_component_shielded_pool_v1_Output_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_NoteView_init_zero, false, penumbra_core_keys_v1_PayloadKey_init_zero \ + } +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_init_zero \ + { false, penumbra_core_component_shielded_pool_v1_Output_init_zero } +#define penumbra_core_component_shielded_pool_v1_OutputPlan_init_zero \ + { \ + false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_keys_v1_Address_init_zero, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_init_zero \ + { false, penumbra_core_asset_v1_Metadata_init_zero } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_init_zero \ + { false, penumbra_core_asset_v1_Metadata_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_amount_tag 1 +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_denom_tag 2 +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_address_tag 3 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_window_update_periods_tag 1 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_targeted_detections_per_window_tag \ + 2 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_fmd_grace_period_blocks_tag 1 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_fixed_precision_bits_tag 2 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_sliding_window_tag 3 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_approximate_clue_count_tag \ + 1 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_fixed_tag 1 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_sliding_window_tag 2 +#define penumbra_core_component_shielded_pool_v1_FmdParameters_precision_bits_tag 1 +#define penumbra_core_component_shielded_pool_v1_FmdParameters_as_of_block_height_tag 2 +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_fixed_fmd_params_tag 1 +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_fmd_meta_params_tag 2 +#define penumbra_core_component_shielded_pool_v1_GenesisContent_shielded_pool_params_tag 1 +#define penumbra_core_component_shielded_pool_v1_GenesisContent_allocations_tag 3 +#define penumbra_core_component_shielded_pool_v1_Note_value_tag 1 +#define penumbra_core_component_shielded_pool_v1_Note_rseed_tag 2 +#define penumbra_core_component_shielded_pool_v1_Note_address_tag 3 +#define penumbra_core_component_shielded_pool_v1_NoteView_value_tag 1 +#define penumbra_core_component_shielded_pool_v1_NoteView_rseed_tag 2 +#define penumbra_core_component_shielded_pool_v1_NoteView_address_tag 3 +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_inner_tag 1 +#define penumbra_core_component_shielded_pool_v1_NotePayload_note_commitment_tag 1 +#define penumbra_core_component_shielded_pool_v1_NotePayload_ephemeral_key_tag 2 +#define penumbra_core_component_shielded_pool_v1_NotePayload_encrypted_note_tag 3 +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_inner_tag 1 +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_inner_tag 1 +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_inner_tag 1 +#define penumbra_core_component_shielded_pool_v1_EventSpend_nullifier_tag 1 +#define penumbra_core_component_shielded_pool_v1_EventOutput_note_commitment_tag 1 +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_clue_tag 1 +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_tx_tag 2 +#define penumbra_core_component_shielded_pool_v1_SpendBody_balance_commitment_tag 1 +#define penumbra_core_component_shielded_pool_v1_SpendBody_rk_tag 4 +#define penumbra_core_component_shielded_pool_v1_SpendBody_nullifier_tag 6 +#define penumbra_core_component_shielded_pool_v1_Spend_body_tag 1 +#define penumbra_core_component_shielded_pool_v1_Spend_auth_sig_tag 2 +#define penumbra_core_component_shielded_pool_v1_Spend_proof_tag 3 +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_spend_tag 1 +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_note_tag 2 +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_spend_tag 1 +#define penumbra_core_component_shielded_pool_v1_SpendView_visible_tag 1 +#define penumbra_core_component_shielded_pool_v1_SpendView_opaque_tag 2 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_note_tag 1 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_position_tag 2 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_randomizer_tag 3 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_value_blinding_tag 4 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_proof_blinding_r_tag 5 +#define penumbra_core_component_shielded_pool_v1_SpendPlan_proof_blinding_s_tag 6 +#define penumbra_core_component_shielded_pool_v1_OutputBody_note_payload_tag 1 +#define penumbra_core_component_shielded_pool_v1_OutputBody_balance_commitment_tag 2 +#define penumbra_core_component_shielded_pool_v1_OutputBody_wrapped_memo_key_tag 3 +#define penumbra_core_component_shielded_pool_v1_OutputBody_ovk_wrapped_key_tag 4 +#define penumbra_core_component_shielded_pool_v1_Output_body_tag 1 +#define penumbra_core_component_shielded_pool_v1_Output_proof_tag 2 +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_output_tag 1 +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_note_tag 2 +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_payload_key_tag 3 +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_output_tag 1 +#define penumbra_core_component_shielded_pool_v1_OutputView_visible_tag 1 +#define penumbra_core_component_shielded_pool_v1_OutputView_opaque_tag 2 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_value_tag 1 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_dest_address_tag 2 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_rseed_tag 3 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_value_blinding_tag 4 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_proof_blinding_r_tag 5 +#define penumbra_core_component_shielded_pool_v1_OutputPlan_proof_blinding_s_tag 6 +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_asset_id_tag 2 +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_denom_metadata_tag 1 +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_asset_id_tag 1 +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_denom_metadata_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, fixed_fmd_params, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, fmd_meta_params, 2) +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_fixed_fmd_params_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdParameters +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_fmd_meta_params_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdMetaParameters + +#define penumbra_core_component_shielded_pool_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, shielded_pool_params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, allocations, 3) +#define penumbra_core_component_shielded_pool_v1_GenesisContent_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_GenesisContent_shielded_pool_params_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters +#define penumbra_core_component_shielded_pool_v1_GenesisContent_allocations_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation + +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, CALLBACK, SINGULAR, STRING, denom, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 3) +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, fmd_grace_period_blocks, 1) \ + X(a, STATIC, ONEOF, UINT32, (algorithm, fixed_precision_bits, algorithm.fixed_precision_bits), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (algorithm, sliding_window, algorithm.sliding_window), 3) +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_algorithm_sliding_window_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, window_update_periods, 1) \ + X(a, STATIC, SINGULAR, UINT32, targeted_detections_per_window, 2) +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (state, fixed, state.fixed), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (state, sliding_window, state.sliding_window), 2) +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_state_fixed_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_state_sliding_window_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_FIELDLIST(X, a) + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, approximate_clue_count, 1) +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_FmdParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, precision_bits, 1) \ + X(a, STATIC, SINGULAR, UINT64, as_of_block_height, 2) +#define penumbra_core_component_shielded_pool_v1_FmdParameters_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_FmdParameters_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_Note_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, rseed, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 3) +#define penumbra_core_component_shielded_pool_v1_Note_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_Note_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_Note_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_shielded_pool_v1_Note_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_component_shielded_pool_v1_NoteView_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, rseed, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 3) +#define penumbra_core_component_shielded_pool_v1_NoteView_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_NoteView_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_NoteView_value_MSGTYPE penumbra_core_asset_v1_ValueView +#define penumbra_core_component_shielded_pool_v1_NoteView_address_MSGTYPE penumbra_core_keys_v1_AddressView + +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_NotePayload_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_commitment, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, ephemeral_key, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, encrypted_note, 3) +#define penumbra_core_component_shielded_pool_v1_NotePayload_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_NotePayload_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_NotePayload_note_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_component_shielded_pool_v1_NotePayload_encrypted_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteCiphertext + +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_DEFAULT NULL + +#define penumbra_core_component_shielded_pool_v1_Spend_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auth_sig, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 3) +#define penumbra_core_component_shielded_pool_v1_Spend_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_Spend_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_Spend_body_MSGTYPE penumbra_core_component_shielded_pool_v1_SpendBody +#define penumbra_core_component_shielded_pool_v1_Spend_auth_sig_MSGTYPE penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature +#define penumbra_core_component_shielded_pool_v1_Spend_proof_MSGTYPE penumbra_core_component_shielded_pool_v1_ZKSpendProof + +#define penumbra_core_component_shielded_pool_v1_EventSpend_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 1) +#define penumbra_core_component_shielded_pool_v1_EventSpend_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_EventSpend_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_EventSpend_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier + +#define penumbra_core_component_shielded_pool_v1_EventOutput_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_commitment, 1) +#define penumbra_core_component_shielded_pool_v1_EventOutput_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_EventOutput_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_EventOutput_note_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, clue, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx, 2) +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_clue_MSGTYPE penumbra_crypto_decaf377_fmd_v1_Clue +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_tx_MSGTYPE penumbra_core_txhash_v1_TransactionId + +#define penumbra_core_component_shielded_pool_v1_SpendBody_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance_commitment, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rk, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 6) +#define penumbra_core_component_shielded_pool_v1_SpendBody_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_SpendBody_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_SpendBody_balance_commitment_MSGTYPE \ + penumbra_core_asset_v1_BalanceCommitment +#define penumbra_core_component_shielded_pool_v1_SpendBody_rk_MSGTYPE penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey +#define penumbra_core_component_shielded_pool_v1_SpendBody_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier + +#define penumbra_core_component_shielded_pool_v1_SpendView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (spend_view, visible, spend_view.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (spend_view, opaque, spend_view.opaque), 2) +#define penumbra_core_component_shielded_pool_v1_SpendView_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_spend_view_visible_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_SpendView_Visible +#define penumbra_core_component_shielded_pool_v1_SpendView_spend_view_opaque_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_SpendView_Opaque + +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, spend, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 2) +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_spend_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Spend +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteView + +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, spend, 1) +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_spend_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Spend + +#define penumbra_core_component_shielded_pool_v1_SpendPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 1) \ + X(a, STATIC, SINGULAR, UINT64, position, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, randomizer, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, value_blinding, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 6) +#define penumbra_core_component_shielded_pool_v1_SpendPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_SpendPlan_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_SpendPlan_note_MSGTYPE penumbra_core_component_shielded_pool_v1_Note + +#define penumbra_core_component_shielded_pool_v1_Output_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 2) +#define penumbra_core_component_shielded_pool_v1_Output_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_Output_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_Output_body_MSGTYPE penumbra_core_component_shielded_pool_v1_OutputBody +#define penumbra_core_component_shielded_pool_v1_Output_proof_MSGTYPE penumbra_core_component_shielded_pool_v1_ZKOutputProof + +#define penumbra_core_component_shielded_pool_v1_OutputBody_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_payload, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance_commitment, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, wrapped_memo_key, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, ovk_wrapped_key, 4) +#define penumbra_core_component_shielded_pool_v1_OutputBody_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_OutputBody_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_OutputBody_note_payload_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NotePayload +#define penumbra_core_component_shielded_pool_v1_OutputBody_balance_commitment_MSGTYPE \ + penumbra_core_asset_v1_BalanceCommitment + +#define penumbra_core_component_shielded_pool_v1_OutputView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (output_view, visible, output_view.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (output_view, opaque, output_view.opaque), 2) +#define penumbra_core_component_shielded_pool_v1_OutputView_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_output_view_visible_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_OutputView_Visible +#define penumbra_core_component_shielded_pool_v1_OutputView_output_view_opaque_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_OutputView_Opaque + +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, output, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, payload_key, 3) +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_output_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Output +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_note_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_NoteView +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_payload_key_MSGTYPE penumbra_core_keys_v1_PayloadKey + +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, output, 1) +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_output_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Output + +#define penumbra_core_component_shielded_pool_v1_OutputPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, dest_address, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, rseed, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, value_blinding, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 6) +#define penumbra_core_component_shielded_pool_v1_OutputPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_OutputPlan_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_OutputPlan_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_core_component_shielded_pool_v1_OutputPlan_dest_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 2) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, denom_metadata, 1) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_denom_metadata_MSGTYPE \ + penumbra_core_asset_v1_Metadata + +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, asset_id, 1) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_CALLBACK pb_default_field_callback +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, denom_metadata, 1) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_CALLBACK NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_DEFAULT NULL +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_denom_metadata_MSGTYPE \ + penumbra_core_asset_v1_Metadata + +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdMetaParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_FmdParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_Note_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_NoteView_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_NoteCiphertext_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_NotePayload_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_ZKOutputProof_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_ZKSpendProof_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_Spend_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_EventSpend_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_EventOutput_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_EventBroadcastClue_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_SpendBody_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_SpendView_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_SpendView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_SpendView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_SpendPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_Output_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_OutputBody_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_OutputView_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_OutputView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_OutputView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_OutputPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_fields \ + &penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_msg +#define penumbra_core_component_shielded_pool_v1_GenesisContent_fields \ + &penumbra_core_component_shielded_pool_v1_GenesisContent_msg +#define penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_fields \ + &penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_msg +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_fields \ + &penumbra_core_component_shielded_pool_v1_FmdMetaParameters_msg +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_fields \ + &penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_msg +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_fields \ + &penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_msg +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_fields \ + &penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_msg +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_fields \ + &penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_msg +#define penumbra_core_component_shielded_pool_v1_FmdParameters_fields \ + &penumbra_core_component_shielded_pool_v1_FmdParameters_msg +#define penumbra_core_component_shielded_pool_v1_Note_fields &penumbra_core_component_shielded_pool_v1_Note_msg +#define penumbra_core_component_shielded_pool_v1_NoteView_fields &penumbra_core_component_shielded_pool_v1_NoteView_msg +#define penumbra_core_component_shielded_pool_v1_NoteCiphertext_fields \ + &penumbra_core_component_shielded_pool_v1_NoteCiphertext_msg +#define penumbra_core_component_shielded_pool_v1_NotePayload_fields &penumbra_core_component_shielded_pool_v1_NotePayload_msg +#define penumbra_core_component_shielded_pool_v1_ZKOutputProof_fields \ + &penumbra_core_component_shielded_pool_v1_ZKOutputProof_msg +#define penumbra_core_component_shielded_pool_v1_ZKSpendProof_fields \ + &penumbra_core_component_shielded_pool_v1_ZKSpendProof_msg +#define penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_fields \ + &penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_msg +#define penumbra_core_component_shielded_pool_v1_Spend_fields &penumbra_core_component_shielded_pool_v1_Spend_msg +#define penumbra_core_component_shielded_pool_v1_EventSpend_fields &penumbra_core_component_shielded_pool_v1_EventSpend_msg +#define penumbra_core_component_shielded_pool_v1_EventOutput_fields &penumbra_core_component_shielded_pool_v1_EventOutput_msg +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_fields \ + &penumbra_core_component_shielded_pool_v1_EventBroadcastClue_msg +#define penumbra_core_component_shielded_pool_v1_SpendBody_fields &penumbra_core_component_shielded_pool_v1_SpendBody_msg +#define penumbra_core_component_shielded_pool_v1_SpendView_fields &penumbra_core_component_shielded_pool_v1_SpendView_msg +#define penumbra_core_component_shielded_pool_v1_SpendView_Visible_fields \ + &penumbra_core_component_shielded_pool_v1_SpendView_Visible_msg +#define penumbra_core_component_shielded_pool_v1_SpendView_Opaque_fields \ + &penumbra_core_component_shielded_pool_v1_SpendView_Opaque_msg +#define penumbra_core_component_shielded_pool_v1_SpendPlan_fields &penumbra_core_component_shielded_pool_v1_SpendPlan_msg +#define penumbra_core_component_shielded_pool_v1_Output_fields &penumbra_core_component_shielded_pool_v1_Output_msg +#define penumbra_core_component_shielded_pool_v1_OutputBody_fields &penumbra_core_component_shielded_pool_v1_OutputBody_msg +#define penumbra_core_component_shielded_pool_v1_OutputView_fields &penumbra_core_component_shielded_pool_v1_OutputView_msg +#define penumbra_core_component_shielded_pool_v1_OutputView_Visible_fields \ + &penumbra_core_component_shielded_pool_v1_OutputView_Visible_msg +#define penumbra_core_component_shielded_pool_v1_OutputView_Opaque_fields \ + &penumbra_core_component_shielded_pool_v1_OutputView_Opaque_msg +#define penumbra_core_component_shielded_pool_v1_OutputPlan_fields &penumbra_core_component_shielded_pool_v1_OutputPlan_msg +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_fields \ + &penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_msg +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_fields \ + &penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_msg +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_fields \ + &penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_msg +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_fields \ + &penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_shielded_pool_v1_GenesisContent_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_GenesisContent_Allocation_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_Note_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_NoteView_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_NoteCiphertext_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_NotePayload_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_ZKOutputProof_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_ZKSpendProof_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_ZKNullifierDerivationProof_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_Spend_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_SpendView_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_SpendView_Visible_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_SpendView_Opaque_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_SpendPlan_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_Output_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_OutputBody_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_OutputView_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_OutputView_Visible_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_OutputView_Opaque_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_OutputPlan_size depends on runtime parameters */ +/* penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsRequest_size depends on runtime parameters */ +#define PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_PENUMBRA_CORE_COMPONENT_SHIELDED_POOL_V1_SHIELDED_POOL_PB_H_MAX_SIZE \ + penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_size +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_FixedState_size 0 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_SlidingWindowState_size 6 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParametersAlgorithmState_size 8 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_AlgorithmSlidingWindow_size 12 +#define penumbra_core_component_shielded_pool_v1_FmdMetaParameters_size 25 +#define penumbra_core_component_shielded_pool_v1_FmdParameters_size 17 +#define penumbra_core_component_shielded_pool_v1_ShieldedPoolParameters_size 46 +#if defined(penumbra_core_component_sct_v1_Nullifier_size) +#define penumbra_core_component_shielded_pool_v1_EventSpend_size (6 + penumbra_core_component_sct_v1_Nullifier_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_core_component_shielded_pool_v1_EventOutput_size (6 + penumbra_crypto_tct_v1_StateCommitment_size) +#endif +#if defined(penumbra_crypto_decaf377_fmd_v1_Clue_size) && defined(penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_core_component_shielded_pool_v1_EventBroadcastClue_size \ + (12 + penumbra_crypto_decaf377_fmd_v1_Clue_size + penumbra_core_txhash_v1_TransactionId_size) +#endif +#if defined(penumbra_core_asset_v1_BalanceCommitment_size) && \ + defined(penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_size) && \ + defined(penumbra_core_component_sct_v1_Nullifier_size) +#define penumbra_core_component_shielded_pool_v1_SpendBody_size \ + (18 + penumbra_core_asset_v1_BalanceCommitment_size + penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_size + \ + penumbra_core_component_sct_v1_Nullifier_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdRequest_size (6 + penumbra_core_asset_v1_AssetId_size) +#endif +#if defined(penumbra_core_asset_v1_Metadata_size) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdResponse_size (6 + penumbra_core_asset_v1_Metadata_size) +#define penumbra_core_component_shielded_pool_v1_AssetMetadataByIdsResponse_size (6 + penumbra_core_asset_v1_Metadata_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.c b/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.c new file mode 100644 index 0000000..e6caa96 --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.c @@ -0,0 +1,119 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/component/stake/v1/stake.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_component_stake_v1_ZKUndelegateClaimProof, penumbra_core_component_stake_v1_ZKUndelegateClaimProof, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_Validator, penumbra_core_component_stake_v1_Validator, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorList, penumbra_core_component_stake_v1_ValidatorList, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_FundingStream, penumbra_core_component_stake_v1_FundingStream, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_FundingStream_ToAddress, penumbra_core_component_stake_v1_FundingStream_ToAddress, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_FundingStream_ToCommunityPool, + penumbra_core_component_stake_v1_FundingStream_ToCommunityPool, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_RateData, penumbra_core_component_stake_v1_RateData, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_BaseRateData, penumbra_core_component_stake_v1_BaseRateData, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorStatus, penumbra_core_component_stake_v1_ValidatorStatus, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_BondingState, penumbra_core_component_stake_v1_BondingState, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorState, penumbra_core_component_stake_v1_ValidatorState, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorInfo, penumbra_core_component_stake_v1_ValidatorInfo, 2) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorDefinition, penumbra_core_component_stake_v1_ValidatorDefinition, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_Delegate, penumbra_core_component_stake_v1_Delegate, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_Undelegate, penumbra_core_component_stake_v1_Undelegate, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_UndelegateClaim, penumbra_core_component_stake_v1_UndelegateClaim, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_UndelegateClaimBody, penumbra_core_component_stake_v1_UndelegateClaimBody, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_UndelegateClaimPlan, penumbra_core_component_stake_v1_UndelegateClaimPlan, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_DelegationChanges, penumbra_core_component_stake_v1_DelegationChanges, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_Uptime, penumbra_core_component_stake_v1_Uptime, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_CurrentConsensusKeys, penumbra_core_component_stake_v1_CurrentConsensusKeys, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_Penalty, penumbra_core_component_stake_v1_Penalty, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_GetValidatorInfoRequest, penumbra_core_component_stake_v1_GetValidatorInfoRequest, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_GetValidatorInfoResponse, penumbra_core_component_stake_v1_GetValidatorInfoResponse, + 2) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorInfoRequest, penumbra_core_component_stake_v1_ValidatorInfoRequest, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorInfoResponse, penumbra_core_component_stake_v1_ValidatorInfoResponse, 2) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorStatusRequest, penumbra_core_component_stake_v1_ValidatorStatusRequest, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorStatusResponse, penumbra_core_component_stake_v1_ValidatorStatusResponse, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorPenaltyRequest, penumbra_core_component_stake_v1_ValidatorPenaltyRequest, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorPenaltyResponse, penumbra_core_component_stake_v1_ValidatorPenaltyResponse, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_CurrentValidatorRateRequest, + penumbra_core_component_stake_v1_CurrentValidatorRateRequest, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_CurrentValidatorRateResponse, + penumbra_core_component_stake_v1_CurrentValidatorRateResponse, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorUptimeRequest, penumbra_core_component_stake_v1_ValidatorUptimeRequest, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_ValidatorUptimeResponse, penumbra_core_component_stake_v1_ValidatorUptimeResponse, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_StakeParameters, penumbra_core_component_stake_v1_StakeParameters, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_GenesisContent, penumbra_core_component_stake_v1_GenesisContent, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventTombstoneValidator, penumbra_core_component_stake_v1_EventTombstoneValidator, + AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventValidatorStateChange, + penumbra_core_component_stake_v1_EventValidatorStateChange, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventValidatorVotingPowerChange, + penumbra_core_component_stake_v1_EventValidatorVotingPowerChange, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventValidatorBondingStateChange, + penumbra_core_component_stake_v1_EventValidatorBondingStateChange, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventRateDataChange, penumbra_core_component_stake_v1_EventRateDataChange, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventValidatorDefinitionUpload, + penumbra_core_component_stake_v1_EventValidatorDefinitionUpload, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventValidatorMissedBlock, + penumbra_core_component_stake_v1_EventValidatorMissedBlock, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventDelegate, penumbra_core_component_stake_v1_EventDelegate, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventUndelegate, penumbra_core_component_stake_v1_EventUndelegate, AUTO) + +PB_BIND(penumbra_core_component_stake_v1_EventSlashingPenaltyApplied, + penumbra_core_component_stake_v1_EventSlashingPenaltyApplied, AUTO) diff --git a/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.h b/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.h new file mode 100644 index 0000000..2c2c5ea --- /dev/null +++ b/app/src/protobuf/penumbra/core/component/stake/v1/stake.pb.h @@ -0,0 +1,1449 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_COMPONENT_STAKE_V1_PENUMBRA_CORE_COMPONENT_STAKE_V1_STAKE_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_COMPONENT_STAKE_V1_PENUMBRA_CORE_COMPONENT_STAKE_V1_STAKE_PB_H_INCLUDED +#include + +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _penumbra_core_component_stake_v1_BondingState_BondingStateEnum { + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNSPECIFIED = 0, + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_BONDED = 1, + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNBONDING = 2, + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNBONDED = 3 +} penumbra_core_component_stake_v1_BondingState_BondingStateEnum; + +typedef enum _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum { + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_UNSPECIFIED = 0, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_DEFINED = 1, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_INACTIVE = 2, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_ACTIVE = 3, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_JAILED = 4, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_TOMBSTONED = 5, + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_DISABLED = 6 +} penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum; + +/* Struct definitions */ +/* A Penumbra ZK undelegate claim proof. */ +typedef struct _penumbra_core_component_stake_v1_ZKUndelegateClaimProof { + pb_callback_t inner; +} penumbra_core_component_stake_v1_ZKUndelegateClaimProof; + +/* Describes a validator's configuration data. */ +typedef struct _penumbra_core_component_stake_v1_Validator { + /* The validator's identity verification key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The validator's consensus pubkey for use in Tendermint (Ed25519). */ + pb_callback_t consensus_key; + /* The validator's (human-readable) name. */ + pb_callback_t name; + /* The validator's website. */ + pb_callback_t website; + /* The validator's description. */ + pb_callback_t description; + /* A list of funding streams describing the validator's commission. */ + pb_callback_t funding_streams; + /* The sequence number determines which validator data takes priority, and + prevents replay attacks. The chain only accepts new validator definitions + with increasing sequence numbers. */ + uint32_t sequence_number; + /* Whether the validator is enabled or not. + + Disabled validators cannot be delegated to, and immediately begin unbonding. */ + bool enabled; + /* The validator's governance key. */ + bool has_governance_key; + penumbra_core_keys_v1_GovernanceKey governance_key; +} penumbra_core_component_stake_v1_Validator; + +/* For storing the list of keys of known validators. */ +typedef struct _penumbra_core_component_stake_v1_ValidatorList { + pb_callback_t validator_keys; +} penumbra_core_component_stake_v1_ValidatorList; + +typedef struct _penumbra_core_component_stake_v1_FundingStream_ToAddress { + /* The destination address for the funding stream. */ + pb_callback_t address; + /* The portion of the staking reward for the entire delegation pool + allocated to this funding stream, specified in basis points. */ + uint32_t rate_bps; +} penumbra_core_component_stake_v1_FundingStream_ToAddress; + +typedef struct _penumbra_core_component_stake_v1_FundingStream_ToCommunityPool { + /* The portion of the staking reward for the entire delegation pool + allocated to this funding stream, specified in basis points. */ + uint32_t rate_bps; +} penumbra_core_component_stake_v1_FundingStream_ToCommunityPool; + +/* A portion of a validator's commission. */ +typedef struct _penumbra_core_component_stake_v1_FundingStream { + pb_size_t which_recipient; + union { + penumbra_core_component_stake_v1_FundingStream_ToAddress to_address; + penumbra_core_component_stake_v1_FundingStream_ToCommunityPool to_community_pool; + } recipient; +} penumbra_core_component_stake_v1_FundingStream; + +/* Describes the reward and exchange rates and voting power for a validator in some epoch. */ +typedef struct _penumbra_core_component_stake_v1_RateData { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + uint64_t epoch_index; + bool has_validator_reward_rate; + penumbra_core_num_v1_Amount validator_reward_rate; + /* The validator exchange rate between delegation tokens and staking tokens. + The rate is expressed in fixed-point representation with a scaling factor + of 10^8. For example, a decimal rate of `1.234` will be represented as + `123400000` */ + bool has_validator_exchange_rate; + penumbra_core_num_v1_Amount validator_exchange_rate; +} penumbra_core_component_stake_v1_RateData; + +/* Describes the base reward and exchange rates in some epoch. */ +typedef struct _penumbra_core_component_stake_v1_BaseRateData { + uint64_t epoch_index; + bool has_base_reward_rate; + penumbra_core_num_v1_Amount base_reward_rate; + bool has_base_exchange_rate; + penumbra_core_num_v1_Amount base_exchange_rate; +} penumbra_core_component_stake_v1_BaseRateData; + +/* Describes the unbonding state of a validator's stake pool. */ +typedef struct _penumbra_core_component_stake_v1_BondingState { + penumbra_core_component_stake_v1_BondingState_BondingStateEnum state; + uint64_t unbonds_at_epoch; + uint64_t unbonds_at_height; +} penumbra_core_component_stake_v1_BondingState; + +/* Describes the state of a validator */ +typedef struct _penumbra_core_component_stake_v1_ValidatorState { + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum state; +} penumbra_core_component_stake_v1_ValidatorState; + +/* Describes the current state of a validator on-chain */ +typedef struct _penumbra_core_component_stake_v1_ValidatorStatus { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + bool has_state; + penumbra_core_component_stake_v1_ValidatorState state; + bool has_voting_power; + penumbra_core_num_v1_Amount voting_power; + bool has_bonding_state; + penumbra_core_component_stake_v1_BondingState bonding_state; +} penumbra_core_component_stake_v1_ValidatorStatus; + +/* Combines all validator info into a single packet. */ +typedef struct _penumbra_core_component_stake_v1_ValidatorInfo { + bool has_validator; + penumbra_core_component_stake_v1_Validator validator; + bool has_status; + penumbra_core_component_stake_v1_ValidatorStatus status; + bool has_rate_data; + penumbra_core_component_stake_v1_RateData rate_data; +} penumbra_core_component_stake_v1_ValidatorInfo; + +/* A transaction action (re)defining a validator. */ +typedef struct _penumbra_core_component_stake_v1_ValidatorDefinition { + /* The configuration data for the validator. */ + bool has_validator; + penumbra_core_component_stake_v1_Validator validator; + /* A signature by the validator's identity key over the validator data. */ + pb_callback_t auth_sig; +} penumbra_core_component_stake_v1_ValidatorDefinition; + +/* A transaction action adding stake to a validator's delegation pool. */ +typedef struct _penumbra_core_component_stake_v1_Delegate { + /* The identity key of the validator to delegate to. */ + bool has_validator_identity; + penumbra_core_keys_v1_IdentityKey validator_identity; + /* The index of the epoch in which this delegation was performed. + The delegation takes effect in the next epoch. */ + uint64_t epoch_index; + /* The delegation amount, in units of unbonded stake. + TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; */ + bool has_unbonded_amount; + penumbra_core_num_v1_Amount unbonded_amount; + /* The amount of delegation tokens produced by this action. + + This is implied by the validator's exchange rate in the specified epoch + (and should be checked in transaction validation!), but including it allows + stateless verification that the transaction is internally consistent. */ + bool has_delegation_amount; + penumbra_core_num_v1_Amount delegation_amount; +} penumbra_core_component_stake_v1_Delegate; + +/* A transaction action withdrawing stake from a validator's delegation pool. */ +typedef struct _penumbra_core_component_stake_v1_Undelegate { + /* The identity key of the validator to undelegate from. */ + bool has_validator_identity; + penumbra_core_keys_v1_IdentityKey validator_identity; + /* The index of the epoch in which this undelegation was performed. */ + uint64_t start_epoch_index; + /* The amount to undelegate, in units of unbonding tokens. */ + bool has_unbonded_amount; + penumbra_core_num_v1_Amount unbonded_amount; + /* The amount of delegation tokens consumed by this action. + + This is implied by the validator's exchange rate in the specified epoch + (and should be checked in transaction validation!), but including it allows + stateless verification that the transaction is internally consistent. */ + bool has_delegation_amount; + penumbra_core_num_v1_Amount delegation_amount; + /* The epoch in which this delegation was performed. */ + bool has_from_epoch; + penumbra_core_component_sct_v1_Epoch from_epoch; +} penumbra_core_component_stake_v1_Undelegate; + +/* A list of pending delegations and undelegations. */ +typedef struct _penumbra_core_component_stake_v1_DelegationChanges { + pb_callback_t delegations; + pb_callback_t undelegations; +} penumbra_core_component_stake_v1_DelegationChanges; + +/* Track's a validator's uptime. */ +typedef struct _penumbra_core_component_stake_v1_Uptime { + uint64_t as_of_block_height; + uint32_t window_len; + pb_callback_t bitvec; +} penumbra_core_component_stake_v1_Uptime; + +/* Tracks our view of Tendermint's view of the validator set, so we can keep it + from getting confused. */ +typedef struct _penumbra_core_component_stake_v1_CurrentConsensusKeys { + pb_callback_t consensus_keys; +} penumbra_core_component_stake_v1_CurrentConsensusKeys; + +/* Tracks slashing penalties applied to a validator in some epoch. */ +typedef struct _penumbra_core_component_stake_v1_Penalty { + pb_callback_t inner; +} penumbra_core_component_stake_v1_Penalty; + +typedef struct _penumbra_core_component_stake_v1_UndelegateClaimBody { + /* The identity key of the validator to finish undelegating from. */ + bool has_validator_identity; + penumbra_core_keys_v1_IdentityKey validator_identity; + /* The epoch in which unbonding began, used to verify the penalty. */ + uint64_t start_epoch_index; + /* The penalty applied to undelegation, in bps^2 (10e-8). + In the happy path (no slashing), this is 0. */ + bool has_penalty; + penumbra_core_component_stake_v1_Penalty penalty; + /* The action's contribution to the transaction's value balance. */ + bool has_balance_commitment; + penumbra_core_asset_v1_BalanceCommitment balance_commitment; + /* / The starting height of the epoch during which unbonding began. */ + uint64_t unbonding_start_height; +} penumbra_core_component_stake_v1_UndelegateClaimBody; + +/* A transaction action finishing an undelegation, converting (slashable) + "unbonding tokens" to (unslashable) staking tokens. */ +typedef struct _penumbra_core_component_stake_v1_UndelegateClaim { + bool has_body; + penumbra_core_component_stake_v1_UndelegateClaimBody body; + pb_callback_t proof; +} penumbra_core_component_stake_v1_UndelegateClaim; + +typedef struct _penumbra_core_component_stake_v1_UndelegateClaimPlan { + /* The identity key of the validator to finish undelegating from. */ + bool has_validator_identity; + penumbra_core_keys_v1_IdentityKey validator_identity; + /* The epoch in which unbonding began, used to verify the penalty. */ + uint64_t start_epoch_index; + /* The penalty applied to undelegation, in bps^2 (10e-8). + In the happy path (no slashing), this is 0. */ + bool has_penalty; + penumbra_core_component_stake_v1_Penalty penalty; + /* The amount of unbonding tokens to claim. + This is a bare number because its denom is determined by the preceding data. */ + bool has_unbonding_amount; + penumbra_core_num_v1_Amount unbonding_amount; + /* The blinding factor to use for the balance commitment. */ + pb_callback_t balance_blinding; + /* The first blinding factor to use for the ZK undelegate claim proof. */ + pb_callback_t proof_blinding_r; + /* The second blinding factor to use for the ZK undelegate claim proof. */ + pb_callback_t proof_blinding_s; + /* The height during which unbonding began. */ + uint64_t unbonding_start_height; +} penumbra_core_component_stake_v1_UndelegateClaimPlan; + +/* Requests information about a specific validator. */ +typedef struct _penumbra_core_component_stake_v1_GetValidatorInfoRequest { + /* The identity key of the validator. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_stake_v1_GetValidatorInfoRequest; + +typedef struct _penumbra_core_component_stake_v1_GetValidatorInfoResponse { + bool has_validator_info; + penumbra_core_component_stake_v1_ValidatorInfo validator_info; +} penumbra_core_component_stake_v1_GetValidatorInfoResponse; + +/* Requests information on the chain's validators. */ +typedef struct _penumbra_core_component_stake_v1_ValidatorInfoRequest { + /* Whether or not to return inactive validators */ + bool show_inactive; +} penumbra_core_component_stake_v1_ValidatorInfoRequest; + +typedef struct _penumbra_core_component_stake_v1_ValidatorInfoResponse { + bool has_validator_info; + penumbra_core_component_stake_v1_ValidatorInfo validator_info; +} penumbra_core_component_stake_v1_ValidatorInfoResponse; + +typedef struct _penumbra_core_component_stake_v1_ValidatorStatusRequest { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_stake_v1_ValidatorStatusRequest; + +typedef struct _penumbra_core_component_stake_v1_ValidatorStatusResponse { + bool has_status; + penumbra_core_component_stake_v1_ValidatorStatus status; +} penumbra_core_component_stake_v1_ValidatorStatusResponse; + +/* Requests the compounded penalty for a validator over a range of epochs. */ +typedef struct _penumbra_core_component_stake_v1_ValidatorPenaltyRequest { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + uint64_t start_epoch_index; + uint64_t end_epoch_index; +} penumbra_core_component_stake_v1_ValidatorPenaltyRequest; + +typedef struct _penumbra_core_component_stake_v1_ValidatorPenaltyResponse { + bool has_penalty; + penumbra_core_component_stake_v1_Penalty penalty; +} penumbra_core_component_stake_v1_ValidatorPenaltyResponse; + +typedef struct _penumbra_core_component_stake_v1_CurrentValidatorRateRequest { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_stake_v1_CurrentValidatorRateRequest; + +typedef struct _penumbra_core_component_stake_v1_CurrentValidatorRateResponse { + bool has_data; + penumbra_core_component_stake_v1_RateData data; +} penumbra_core_component_stake_v1_CurrentValidatorRateResponse; + +typedef struct _penumbra_core_component_stake_v1_ValidatorUptimeRequest { + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_stake_v1_ValidatorUptimeRequest; + +typedef struct _penumbra_core_component_stake_v1_ValidatorUptimeResponse { + bool has_uptime; + penumbra_core_component_stake_v1_Uptime uptime; +} penumbra_core_component_stake_v1_ValidatorUptimeResponse; + +/* Staking configuration data. */ +typedef struct _penumbra_core_component_stake_v1_StakeParameters { + /* The number of epochs an unbonding note for before being released. */ + uint64_t unbonding_epochs; + /* The maximum number of validators in the consensus set. */ + uint64_t active_validator_limit; + /* The base reward rate, expressed in basis points of basis points */ + uint64_t base_reward_rate; + /* The penalty for slashing due to misbehavior. */ + uint64_t slashing_penalty_misbehavior; + /* The penalty for slashing due to downtime. */ + uint64_t slashing_penalty_downtime; + /* The number of blocks in the window to check for downtime. */ + uint64_t signed_blocks_window_len; + /* The maximum number of blocks in the window each validator can miss signing without slashing. */ + uint64_t missed_blocks_maximum; + /* The minimum amount of stake required for a validator to be indexed by the protocol. */ + bool has_min_validator_stake; + penumbra_core_num_v1_Amount min_validator_stake; + /* The number of blocks that must elapse before an unbonding note can be claimed. */ + uint64_t unbonding_delay; +} penumbra_core_component_stake_v1_StakeParameters; + +/* Genesis data for the staking component. */ +typedef struct _penumbra_core_component_stake_v1_GenesisContent { + /* The configuration parameters for the staking component present at genesis */ + bool has_stake_params; + penumbra_core_component_stake_v1_StakeParameters stake_params; + /* The list of validators present at genesis. */ + pb_callback_t validators; +} penumbra_core_component_stake_v1_GenesisContent; + +typedef struct _penumbra_core_component_stake_v1_EventTombstoneValidator { + /* The height at which the offense occurred. */ + uint64_t evidence_height; + /* The height at which the evidence was processed. */ + uint64_t current_height; + /* The validator identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The validator's Comet address. */ + pb_callback_t address; + /* The voting power for the validator. */ + uint64_t voting_power; +} penumbra_core_component_stake_v1_EventTombstoneValidator; + +typedef struct _penumbra_core_component_stake_v1_EventValidatorStateChange { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The new state of the validator. */ + bool has_state; + penumbra_core_component_stake_v1_ValidatorState state; +} penumbra_core_component_stake_v1_EventValidatorStateChange; + +typedef struct _penumbra_core_component_stake_v1_EventValidatorVotingPowerChange { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The new voting power of the validator. */ + bool has_voting_power; + penumbra_core_num_v1_Amount voting_power; +} penumbra_core_component_stake_v1_EventValidatorVotingPowerChange; + +typedef struct _penumbra_core_component_stake_v1_EventValidatorBondingStateChange { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The new bonding state of the validator. */ + bool has_bonding_state; + penumbra_core_component_stake_v1_BondingState bonding_state; +} penumbra_core_component_stake_v1_EventValidatorBondingStateChange; + +typedef struct _penumbra_core_component_stake_v1_EventRateDataChange { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The new rate data. */ + bool has_rate_data; + penumbra_core_component_stake_v1_RateData rate_data; +} penumbra_core_component_stake_v1_EventRateDataChange; + +typedef struct _penumbra_core_component_stake_v1_EventValidatorDefinitionUpload { + /* The validator definition. */ + bool has_validator; + penumbra_core_component_stake_v1_Validator validator; +} penumbra_core_component_stake_v1_EventValidatorDefinitionUpload; + +typedef struct _penumbra_core_component_stake_v1_EventValidatorMissedBlock { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_core_component_stake_v1_EventValidatorMissedBlock; + +typedef struct _penumbra_core_component_stake_v1_EventDelegate { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The amount of stake delegated, in the staking token. */ + bool has_amount; + penumbra_core_num_v1_Amount amount; +} penumbra_core_component_stake_v1_EventDelegate; + +typedef struct _penumbra_core_component_stake_v1_EventUndelegate { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The amount of stake undelegated, in the staking token. */ + bool has_amount; + penumbra_core_num_v1_Amount amount; +} penumbra_core_component_stake_v1_EventUndelegate; + +/* Indicates a slashing penalty was applied to a validator's reward rates. */ +typedef struct _penumbra_core_component_stake_v1_EventSlashingPenaltyApplied { + /* The validator's identity key. */ + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; + /* The epoch in which the penalty was applied. */ + uint64_t epoch_index; + /* The penalty amount after slashing. */ + bool has_new_penalty; + penumbra_core_component_stake_v1_Penalty new_penalty; +} penumbra_core_component_stake_v1_EventSlashingPenaltyApplied; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_core_component_stake_v1_BondingState_BondingStateEnum_MIN \ + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNSPECIFIED +#define _penumbra_core_component_stake_v1_BondingState_BondingStateEnum_MAX \ + penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNBONDED +#define _penumbra_core_component_stake_v1_BondingState_BondingStateEnum_ARRAYSIZE \ + ((penumbra_core_component_stake_v1_BondingState_BondingStateEnum)(penumbra_core_component_stake_v1_BondingState_BondingStateEnum_BONDING_STATE_ENUM_UNBONDED + \ + 1)) + +#define _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_MIN \ + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_UNSPECIFIED +#define _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_MAX \ + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_DISABLED +#define _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_ARRAYSIZE \ + ((penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum)(penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_VALIDATOR_STATE_ENUM_DISABLED + \ + 1)) + +#define penumbra_core_component_stake_v1_BondingState_state_ENUMTYPE \ + penumbra_core_component_stake_v1_BondingState_BondingStateEnum + +#define penumbra_core_component_stake_v1_ValidatorState_state_ENUMTYPE \ + penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum + +/* Initializer values for message structs */ +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Validator_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, false, penumbra_core_keys_v1_GovernanceKey_init_default \ + } +#define penumbra_core_component_stake_v1_ValidatorList_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_FundingStream_init_default \ + { \ + 0, { penumbra_core_component_stake_v1_FundingStream_ToAddress_init_default } \ + } +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_init_default \ + { 0 } +#define penumbra_core_component_stake_v1_RateData_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_stake_v1_BaseRateData_init_default \ + { 0, false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_stake_v1_ValidatorStatus_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, false, \ + penumbra_core_component_stake_v1_ValidatorState_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + false, penumbra_core_component_stake_v1_BondingState_init_default \ + } +#define penumbra_core_component_stake_v1_BondingState_init_default \ + { _penumbra_core_component_stake_v1_BondingState_BondingStateEnum_MIN, 0, 0 } +#define penumbra_core_component_stake_v1_ValidatorState_init_default \ + { _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_MIN } +#define penumbra_core_component_stake_v1_ValidatorInfo_init_default \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_default, false, \ + penumbra_core_component_stake_v1_ValidatorStatus_init_default, false, \ + penumbra_core_component_stake_v1_RateData_init_default \ + } +#define penumbra_core_component_stake_v1_ValidatorDefinition_init_default \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Delegate_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_core_component_stake_v1_Undelegate_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, penumbra_core_num_v1_Amount_init_default, false, \ + penumbra_core_num_v1_Amount_init_default, false, penumbra_core_component_sct_v1_Epoch_init_default \ + } +#define penumbra_core_component_stake_v1_UndelegateClaim_init_default \ + { \ + false, penumbra_core_component_stake_v1_UndelegateClaimBody_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_UndelegateClaimBody_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, \ + penumbra_core_component_stake_v1_Penalty_init_default, false, \ + penumbra_core_asset_v1_BalanceCommitment_init_default, 0 \ + } +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, \ + penumbra_core_component_stake_v1_Penalty_init_default, false, penumbra_core_num_v1_Amount_init_default, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define penumbra_core_component_stake_v1_DelegationChanges_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Uptime_init_default \ + { \ + 0, 0, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Penalty_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_init_default \ + { false, penumbra_core_component_stake_v1_ValidatorInfo_init_default } +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_init_default \ + { 0 } +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_init_default \ + { false, penumbra_core_component_stake_v1_ValidatorInfo_init_default } +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_init_default \ + { false, penumbra_core_component_stake_v1_ValidatorStatus_init_default } +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default, 0, 0 } +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_init_default \ + { false, penumbra_core_component_stake_v1_Penalty_init_default } +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_init_default \ + { false, penumbra_core_component_stake_v1_RateData_init_default } +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_init_default \ + { false, penumbra_core_component_stake_v1_Uptime_init_default } +#define penumbra_core_component_stake_v1_StakeParameters_init_default \ + { 0, 0, 0, 0, 0, 0, 0, false, penumbra_core_num_v1_Amount_init_default, 0 } +#define penumbra_core_component_stake_v1_GenesisContent_init_default \ + { \ + false, penumbra_core_component_stake_v1_StakeParameters_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_EventTombstoneValidator_init_default \ + { 0, 0, false, penumbra_core_keys_v1_IdentityKey_init_default, {{NULL}, NULL}, 0 } +#define penumbra_core_component_stake_v1_EventValidatorStateChange_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, false, \ + penumbra_core_component_stake_v1_ValidatorState_init_default \ + } +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, false, \ + penumbra_core_component_stake_v1_BondingState_init_default \ + } +#define penumbra_core_component_stake_v1_EventRateDataChange_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default, false, penumbra_core_component_stake_v1_RateData_init_default } +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_init_default \ + { false, penumbra_core_component_stake_v1_Validator_init_default } +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_core_component_stake_v1_EventDelegate_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_stake_v1_EventUndelegate_init_default \ + { false, penumbra_core_keys_v1_IdentityKey_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, \ + penumbra_core_component_stake_v1_Penalty_init_default \ + } +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Validator_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, 0, 0, false, penumbra_core_keys_v1_GovernanceKey_init_zero \ + } +#define penumbra_core_component_stake_v1_ValidatorList_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_FundingStream_init_zero \ + { \ + 0, { penumbra_core_component_stake_v1_FundingStream_ToAddress_init_zero } \ + } +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_init_zero \ + { 0 } +#define penumbra_core_component_stake_v1_RateData_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_stake_v1_BaseRateData_init_zero \ + { 0, false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_stake_v1_ValidatorStatus_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, false, \ + penumbra_core_component_stake_v1_ValidatorState_init_zero, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_component_stake_v1_BondingState_init_zero \ + } +#define penumbra_core_component_stake_v1_BondingState_init_zero \ + { _penumbra_core_component_stake_v1_BondingState_BondingStateEnum_MIN, 0, 0 } +#define penumbra_core_component_stake_v1_ValidatorState_init_zero \ + { _penumbra_core_component_stake_v1_ValidatorState_ValidatorStateEnum_MIN } +#define penumbra_core_component_stake_v1_ValidatorInfo_init_zero \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_zero, false, \ + penumbra_core_component_stake_v1_ValidatorStatus_init_zero, false, \ + penumbra_core_component_stake_v1_RateData_init_zero \ + } +#define penumbra_core_component_stake_v1_ValidatorDefinition_init_zero \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Delegate_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_core_component_stake_v1_Undelegate_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_num_v1_Amount_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_component_sct_v1_Epoch_init_zero \ + } +#define penumbra_core_component_stake_v1_UndelegateClaim_init_zero \ + { \ + false, penumbra_core_component_stake_v1_UndelegateClaimBody_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_UndelegateClaimBody_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_component_stake_v1_Penalty_init_zero, \ + false, penumbra_core_asset_v1_BalanceCommitment_init_zero, 0 \ + } +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_component_stake_v1_Penalty_init_zero, \ + false, penumbra_core_num_v1_Amount_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define penumbra_core_component_stake_v1_DelegationChanges_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Uptime_init_zero \ + { \ + 0, 0, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_Penalty_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_init_zero \ + { false, penumbra_core_component_stake_v1_ValidatorInfo_init_zero } +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_init_zero \ + { 0 } +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_init_zero \ + { false, penumbra_core_component_stake_v1_ValidatorInfo_init_zero } +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_init_zero \ + { false, penumbra_core_component_stake_v1_ValidatorStatus_init_zero } +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, 0 } +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_init_zero \ + { false, penumbra_core_component_stake_v1_Penalty_init_zero } +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_init_zero \ + { false, penumbra_core_component_stake_v1_RateData_init_zero } +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_init_zero \ + { false, penumbra_core_component_stake_v1_Uptime_init_zero } +#define penumbra_core_component_stake_v1_StakeParameters_init_zero \ + { 0, 0, 0, 0, 0, 0, 0, false, penumbra_core_num_v1_Amount_init_zero, 0 } +#define penumbra_core_component_stake_v1_GenesisContent_init_zero \ + { \ + false, penumbra_core_component_stake_v1_StakeParameters_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_component_stake_v1_EventTombstoneValidator_init_zero \ + { 0, 0, false, penumbra_core_keys_v1_IdentityKey_init_zero, {{NULL}, NULL}, 0 } +#define penumbra_core_component_stake_v1_EventValidatorStateChange_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_component_stake_v1_ValidatorState_init_zero } +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_component_stake_v1_BondingState_init_zero } +#define penumbra_core_component_stake_v1_EventRateDataChange_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_component_stake_v1_RateData_init_zero } +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_init_zero \ + { false, penumbra_core_component_stake_v1_Validator_init_zero } +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_core_component_stake_v1_EventDelegate_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_stake_v1_EventUndelegate_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_init_zero \ + { false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_component_stake_v1_Penalty_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_inner_tag 1 +#define penumbra_core_component_stake_v1_Validator_identity_key_tag 1 +#define penumbra_core_component_stake_v1_Validator_consensus_key_tag 2 +#define penumbra_core_component_stake_v1_Validator_name_tag 3 +#define penumbra_core_component_stake_v1_Validator_website_tag 4 +#define penumbra_core_component_stake_v1_Validator_description_tag 5 +#define penumbra_core_component_stake_v1_Validator_funding_streams_tag 6 +#define penumbra_core_component_stake_v1_Validator_sequence_number_tag 7 +#define penumbra_core_component_stake_v1_Validator_enabled_tag 8 +#define penumbra_core_component_stake_v1_Validator_governance_key_tag 9 +#define penumbra_core_component_stake_v1_ValidatorList_validator_keys_tag 1 +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_address_tag 1 +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_rate_bps_tag 2 +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_rate_bps_tag 2 +#define penumbra_core_component_stake_v1_FundingStream_to_address_tag 1 +#define penumbra_core_component_stake_v1_FundingStream_to_community_pool_tag 2 +#define penumbra_core_component_stake_v1_RateData_identity_key_tag 1 +#define penumbra_core_component_stake_v1_RateData_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_RateData_validator_reward_rate_tag 4 +#define penumbra_core_component_stake_v1_RateData_validator_exchange_rate_tag 5 +#define penumbra_core_component_stake_v1_BaseRateData_epoch_index_tag 1 +#define penumbra_core_component_stake_v1_BaseRateData_base_reward_rate_tag 2 +#define penumbra_core_component_stake_v1_BaseRateData_base_exchange_rate_tag 3 +#define penumbra_core_component_stake_v1_BondingState_state_tag 1 +#define penumbra_core_component_stake_v1_BondingState_unbonds_at_epoch_tag 2 +#define penumbra_core_component_stake_v1_BondingState_unbonds_at_height_tag 3 +#define penumbra_core_component_stake_v1_ValidatorState_state_tag 1 +#define penumbra_core_component_stake_v1_ValidatorStatus_identity_key_tag 1 +#define penumbra_core_component_stake_v1_ValidatorStatus_state_tag 2 +#define penumbra_core_component_stake_v1_ValidatorStatus_voting_power_tag 3 +#define penumbra_core_component_stake_v1_ValidatorStatus_bonding_state_tag 4 +#define penumbra_core_component_stake_v1_ValidatorInfo_validator_tag 1 +#define penumbra_core_component_stake_v1_ValidatorInfo_status_tag 2 +#define penumbra_core_component_stake_v1_ValidatorInfo_rate_data_tag 3 +#define penumbra_core_component_stake_v1_ValidatorDefinition_validator_tag 1 +#define penumbra_core_component_stake_v1_ValidatorDefinition_auth_sig_tag 2 +#define penumbra_core_component_stake_v1_Delegate_validator_identity_tag 1 +#define penumbra_core_component_stake_v1_Delegate_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_Delegate_unbonded_amount_tag 3 +#define penumbra_core_component_stake_v1_Delegate_delegation_amount_tag 4 +#define penumbra_core_component_stake_v1_Undelegate_validator_identity_tag 1 +#define penumbra_core_component_stake_v1_Undelegate_start_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_Undelegate_unbonded_amount_tag 3 +#define penumbra_core_component_stake_v1_Undelegate_delegation_amount_tag 4 +#define penumbra_core_component_stake_v1_Undelegate_from_epoch_tag 5 +#define penumbra_core_component_stake_v1_DelegationChanges_delegations_tag 1 +#define penumbra_core_component_stake_v1_DelegationChanges_undelegations_tag 2 +#define penumbra_core_component_stake_v1_Uptime_as_of_block_height_tag 1 +#define penumbra_core_component_stake_v1_Uptime_window_len_tag 2 +#define penumbra_core_component_stake_v1_Uptime_bitvec_tag 3 +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_consensus_keys_tag 1 +#define penumbra_core_component_stake_v1_Penalty_inner_tag 1 +#define penumbra_core_component_stake_v1_UndelegateClaimBody_validator_identity_tag 1 +#define penumbra_core_component_stake_v1_UndelegateClaimBody_start_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_UndelegateClaimBody_penalty_tag 3 +#define penumbra_core_component_stake_v1_UndelegateClaimBody_balance_commitment_tag 4 +#define penumbra_core_component_stake_v1_UndelegateClaimBody_unbonding_start_height_tag 5 +#define penumbra_core_component_stake_v1_UndelegateClaim_body_tag 1 +#define penumbra_core_component_stake_v1_UndelegateClaim_proof_tag 2 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_validator_identity_tag 1 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_start_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_penalty_tag 4 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_unbonding_amount_tag 5 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_balance_blinding_tag 6 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_proof_blinding_r_tag 7 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_proof_blinding_s_tag 8 +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_unbonding_start_height_tag 9 +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_identity_key_tag 2 +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_validator_info_tag 1 +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_show_inactive_tag 2 +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_validator_info_tag 1 +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_identity_key_tag 2 +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_status_tag 1 +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_identity_key_tag 2 +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_start_epoch_index_tag 3 +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_end_epoch_index_tag 4 +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_penalty_tag 1 +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_identity_key_tag 2 +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_data_tag 1 +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_identity_key_tag 2 +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_uptime_tag 1 +#define penumbra_core_component_stake_v1_StakeParameters_unbonding_epochs_tag 1 +#define penumbra_core_component_stake_v1_StakeParameters_active_validator_limit_tag 2 +#define penumbra_core_component_stake_v1_StakeParameters_base_reward_rate_tag 3 +#define penumbra_core_component_stake_v1_StakeParameters_slashing_penalty_misbehavior_tag 4 +#define penumbra_core_component_stake_v1_StakeParameters_slashing_penalty_downtime_tag 5 +#define penumbra_core_component_stake_v1_StakeParameters_signed_blocks_window_len_tag 6 +#define penumbra_core_component_stake_v1_StakeParameters_missed_blocks_maximum_tag 7 +#define penumbra_core_component_stake_v1_StakeParameters_min_validator_stake_tag 8 +#define penumbra_core_component_stake_v1_StakeParameters_unbonding_delay_tag 9 +#define penumbra_core_component_stake_v1_GenesisContent_stake_params_tag 1 +#define penumbra_core_component_stake_v1_GenesisContent_validators_tag 2 +#define penumbra_core_component_stake_v1_EventTombstoneValidator_evidence_height_tag 1 +#define penumbra_core_component_stake_v1_EventTombstoneValidator_current_height_tag 2 +#define penumbra_core_component_stake_v1_EventTombstoneValidator_identity_key_tag 4 +#define penumbra_core_component_stake_v1_EventTombstoneValidator_address_tag 5 +#define penumbra_core_component_stake_v1_EventTombstoneValidator_voting_power_tag 6 +#define penumbra_core_component_stake_v1_EventValidatorStateChange_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventValidatorStateChange_state_tag 2 +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_voting_power_tag 2 +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_bonding_state_tag 2 +#define penumbra_core_component_stake_v1_EventRateDataChange_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventRateDataChange_rate_data_tag 2 +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_validator_tag 1 +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventDelegate_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventDelegate_amount_tag 3 +#define penumbra_core_component_stake_v1_EventUndelegate_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventUndelegate_amount_tag 3 +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_identity_key_tag 1 +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_epoch_index_tag 2 +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_new_penalty_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_DEFAULT NULL + +#define penumbra_core_component_stake_v1_Validator_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, consensus_key, 2) \ + X(a, CALLBACK, SINGULAR, STRING, name, 3) \ + X(a, CALLBACK, SINGULAR, STRING, website, 4) \ + X(a, CALLBACK, SINGULAR, STRING, description, 5) \ + X(a, CALLBACK, REPEATED, MESSAGE, funding_streams, 6) \ + X(a, STATIC, SINGULAR, UINT32, sequence_number, 7) \ + X(a, STATIC, SINGULAR, BOOL, enabled, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, governance_key, 9) +#define penumbra_core_component_stake_v1_Validator_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_Validator_DEFAULT NULL +#define penumbra_core_component_stake_v1_Validator_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_Validator_funding_streams_MSGTYPE penumbra_core_component_stake_v1_FundingStream +#define penumbra_core_component_stake_v1_Validator_governance_key_MSGTYPE penumbra_core_keys_v1_GovernanceKey + +#define penumbra_core_component_stake_v1_ValidatorList_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, validator_keys, 1) +#define penumbra_core_component_stake_v1_ValidatorList_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_ValidatorList_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorList_validator_keys_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_FundingStream_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (recipient, to_address, recipient.to_address), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (recipient, to_community_pool, recipient.to_community_pool), 2) +#define penumbra_core_component_stake_v1_FundingStream_CALLBACK NULL +#define penumbra_core_component_stake_v1_FundingStream_DEFAULT NULL +#define penumbra_core_component_stake_v1_FundingStream_recipient_to_address_MSGTYPE \ + penumbra_core_component_stake_v1_FundingStream_ToAddress +#define penumbra_core_component_stake_v1_FundingStream_recipient_to_community_pool_MSGTYPE \ + penumbra_core_component_stake_v1_FundingStream_ToCommunityPool + +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, address, 1) \ + X(a, STATIC, SINGULAR, UINT32, rate_bps, 2) +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_DEFAULT NULL + +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, rate_bps, 2) +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_CALLBACK NULL +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_DEFAULT NULL + +#define penumbra_core_component_stake_v1_RateData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_reward_rate, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_exchange_rate, 5) +#define penumbra_core_component_stake_v1_RateData_CALLBACK NULL +#define penumbra_core_component_stake_v1_RateData_DEFAULT NULL +#define penumbra_core_component_stake_v1_RateData_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_RateData_validator_reward_rate_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_RateData_validator_exchange_rate_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_BaseRateData_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_reward_rate, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, base_exchange_rate, 3) +#define penumbra_core_component_stake_v1_BaseRateData_CALLBACK NULL +#define penumbra_core_component_stake_v1_BaseRateData_DEFAULT NULL +#define penumbra_core_component_stake_v1_BaseRateData_base_reward_rate_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_BaseRateData_base_exchange_rate_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_ValidatorStatus_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_power, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, bonding_state, 4) +#define penumbra_core_component_stake_v1_ValidatorStatus_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorStatus_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorStatus_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_ValidatorStatus_state_MSGTYPE penumbra_core_component_stake_v1_ValidatorState +#define penumbra_core_component_stake_v1_ValidatorStatus_voting_power_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_ValidatorStatus_bonding_state_MSGTYPE penumbra_core_component_stake_v1_BondingState + +#define penumbra_core_component_stake_v1_BondingState_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, state, 1) \ + X(a, STATIC, SINGULAR, UINT64, unbonds_at_epoch, 2) \ + X(a, STATIC, SINGULAR, UINT64, unbonds_at_height, 3) +#define penumbra_core_component_stake_v1_BondingState_CALLBACK NULL +#define penumbra_core_component_stake_v1_BondingState_DEFAULT NULL + +#define penumbra_core_component_stake_v1_ValidatorState_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, state, 1) +#define penumbra_core_component_stake_v1_ValidatorState_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorState_DEFAULT NULL + +#define penumbra_core_component_stake_v1_ValidatorInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, status, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, rate_data, 3) +#define penumbra_core_component_stake_v1_ValidatorInfo_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorInfo_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorInfo_validator_MSGTYPE penumbra_core_component_stake_v1_Validator +#define penumbra_core_component_stake_v1_ValidatorInfo_status_MSGTYPE penumbra_core_component_stake_v1_ValidatorStatus +#define penumbra_core_component_stake_v1_ValidatorInfo_rate_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_core_component_stake_v1_ValidatorDefinition_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, auth_sig, 2) +#define penumbra_core_component_stake_v1_ValidatorDefinition_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_ValidatorDefinition_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorDefinition_validator_MSGTYPE penumbra_core_component_stake_v1_Validator + +#define penumbra_core_component_stake_v1_Delegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity, 1) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonded_amount, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegation_amount, 4) +#define penumbra_core_component_stake_v1_Delegate_CALLBACK NULL +#define penumbra_core_component_stake_v1_Delegate_DEFAULT NULL +#define penumbra_core_component_stake_v1_Delegate_validator_identity_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_Delegate_unbonded_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_Delegate_delegation_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_Undelegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonded_amount, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, delegation_amount, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, from_epoch, 5) +#define penumbra_core_component_stake_v1_Undelegate_CALLBACK NULL +#define penumbra_core_component_stake_v1_Undelegate_DEFAULT NULL +#define penumbra_core_component_stake_v1_Undelegate_validator_identity_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_Undelegate_unbonded_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_Undelegate_delegation_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_core_component_stake_v1_Undelegate_from_epoch_MSGTYPE penumbra_core_component_sct_v1_Epoch + +#define penumbra_core_component_stake_v1_UndelegateClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof, 2) +#define penumbra_core_component_stake_v1_UndelegateClaim_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_UndelegateClaim_DEFAULT NULL +#define penumbra_core_component_stake_v1_UndelegateClaim_body_MSGTYPE penumbra_core_component_stake_v1_UndelegateClaimBody + +#define penumbra_core_component_stake_v1_UndelegateClaimBody_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, penalty, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance_commitment, 4) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_start_height, 5) +#define penumbra_core_component_stake_v1_UndelegateClaimBody_CALLBACK NULL +#define penumbra_core_component_stake_v1_UndelegateClaimBody_DEFAULT NULL +#define penumbra_core_component_stake_v1_UndelegateClaimBody_validator_identity_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_UndelegateClaimBody_penalty_MSGTYPE penumbra_core_component_stake_v1_Penalty +#define penumbra_core_component_stake_v1_UndelegateClaimBody_balance_commitment_MSGTYPE \ + penumbra_core_asset_v1_BalanceCommitment + +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, penalty, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonding_amount, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, balance_blinding, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_r, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_blinding_s, 8) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_start_height, 9) +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_DEFAULT NULL +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_validator_identity_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_penalty_MSGTYPE penumbra_core_component_stake_v1_Penalty +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_unbonding_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_DelegationChanges_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegations, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, undelegations, 2) +#define penumbra_core_component_stake_v1_DelegationChanges_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_DelegationChanges_DEFAULT NULL +#define penumbra_core_component_stake_v1_DelegationChanges_delegations_MSGTYPE penumbra_core_component_stake_v1_Delegate +#define penumbra_core_component_stake_v1_DelegationChanges_undelegations_MSGTYPE penumbra_core_component_stake_v1_Undelegate + +#define penumbra_core_component_stake_v1_Uptime_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, as_of_block_height, 1) \ + X(a, STATIC, SINGULAR, UINT32, window_len, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, bitvec, 3) +#define penumbra_core_component_stake_v1_Uptime_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_Uptime_DEFAULT NULL + +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, consensus_keys, 1) +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_DEFAULT NULL +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_consensus_keys_MSGTYPE penumbra_core_keys_v1_ConsensusKey + +#define penumbra_core_component_stake_v1_Penalty_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_component_stake_v1_Penalty_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_Penalty_DEFAULT NULL + +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_DEFAULT NULL +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_info, 1) +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_validator_info_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorInfo + +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, show_inactive, 2) +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_DEFAULT NULL + +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_info, 1) +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_validator_info_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorInfo + +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, status, 1) +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_status_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorStatus + +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) \ + X(a, STATIC, SINGULAR, UINT64, start_epoch_index, 3) \ + X(a, STATIC, SINGULAR, UINT64, end_epoch_index, 4) +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, penalty, 1) +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_penalty_MSGTYPE penumbra_core_component_stake_v1_Penalty + +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_DEFAULT NULL +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, uptime, 1) +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_CALLBACK NULL +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_DEFAULT NULL +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_uptime_MSGTYPE penumbra_core_component_stake_v1_Uptime + +#define penumbra_core_component_stake_v1_StakeParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_epochs, 1) \ + X(a, STATIC, SINGULAR, UINT64, active_validator_limit, 2) \ + X(a, STATIC, SINGULAR, UINT64, base_reward_rate, 3) \ + X(a, STATIC, SINGULAR, UINT64, slashing_penalty_misbehavior, 4) \ + X(a, STATIC, SINGULAR, UINT64, slashing_penalty_downtime, 5) \ + X(a, STATIC, SINGULAR, UINT64, signed_blocks_window_len, 6) \ + X(a, STATIC, SINGULAR, UINT64, missed_blocks_maximum, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, min_validator_stake, 8) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_delay, 9) +#define penumbra_core_component_stake_v1_StakeParameters_CALLBACK NULL +#define penumbra_core_component_stake_v1_StakeParameters_DEFAULT NULL +#define penumbra_core_component_stake_v1_StakeParameters_min_validator_stake_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_GenesisContent_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, stake_params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 2) +#define penumbra_core_component_stake_v1_GenesisContent_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_GenesisContent_DEFAULT NULL +#define penumbra_core_component_stake_v1_GenesisContent_stake_params_MSGTYPE penumbra_core_component_stake_v1_StakeParameters +#define penumbra_core_component_stake_v1_GenesisContent_validators_MSGTYPE penumbra_core_component_stake_v1_Validator + +#define penumbra_core_component_stake_v1_EventTombstoneValidator_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, evidence_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, current_height, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, address, 5) \ + X(a, STATIC, SINGULAR, UINT64, voting_power, 6) +#define penumbra_core_component_stake_v1_EventTombstoneValidator_CALLBACK pb_default_field_callback +#define penumbra_core_component_stake_v1_EventTombstoneValidator_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventTombstoneValidator_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_EventValidatorStateChange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, state, 2) +#define penumbra_core_component_stake_v1_EventValidatorStateChange_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventValidatorStateChange_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventValidatorStateChange_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventValidatorStateChange_state_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorState + +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, voting_power, 2) +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_identity_key_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_voting_power_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, bonding_state, 2) +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_identity_key_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_bonding_state_MSGTYPE \ + penumbra_core_component_stake_v1_BondingState + +#define penumbra_core_component_stake_v1_EventRateDataChange_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rate_data, 2) +#define penumbra_core_component_stake_v1_EventRateDataChange_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventRateDataChange_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventRateDataChange_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventRateDataChange_rate_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_validator_MSGTYPE \ + penumbra_core_component_stake_v1_Validator + +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_core_component_stake_v1_EventDelegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) +#define penumbra_core_component_stake_v1_EventDelegate_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventDelegate_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventDelegate_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventDelegate_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_EventUndelegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 3) +#define penumbra_core_component_stake_v1_EventUndelegate_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventUndelegate_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventUndelegate_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventUndelegate_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 1) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, new_penalty, 3) +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_CALLBACK NULL +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_DEFAULT NULL +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_new_penalty_MSGTYPE \ + penumbra_core_component_stake_v1_Penalty + +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ZKUndelegateClaimProof_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_Validator_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorList_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_FundingStream_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_FundingStream_ToAddress_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_RateData_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_BaseRateData_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorStatus_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_BondingState_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorState_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorInfo_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorDefinition_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_Delegate_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_Undelegate_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_UndelegateClaim_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_UndelegateClaimBody_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_UndelegateClaimPlan_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_DelegationChanges_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_Uptime_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_CurrentConsensusKeys_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_Penalty_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_GetValidatorInfoRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_GetValidatorInfoResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorInfoRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorInfoResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorStatusRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorStatusResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorPenaltyRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorPenaltyResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_CurrentValidatorRateRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_CurrentValidatorRateResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorUptimeRequest_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_ValidatorUptimeResponse_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_StakeParameters_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_GenesisContent_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventTombstoneValidator_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventValidatorStateChange_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventValidatorBondingStateChange_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventRateDataChange_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventValidatorMissedBlock_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventDelegate_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventUndelegate_msg; +extern const pb_msgdesc_t penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_component_stake_v1_ZKUndelegateClaimProof_fields \ + &penumbra_core_component_stake_v1_ZKUndelegateClaimProof_msg +#define penumbra_core_component_stake_v1_Validator_fields &penumbra_core_component_stake_v1_Validator_msg +#define penumbra_core_component_stake_v1_ValidatorList_fields &penumbra_core_component_stake_v1_ValidatorList_msg +#define penumbra_core_component_stake_v1_FundingStream_fields &penumbra_core_component_stake_v1_FundingStream_msg +#define penumbra_core_component_stake_v1_FundingStream_ToAddress_fields \ + &penumbra_core_component_stake_v1_FundingStream_ToAddress_msg +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_fields \ + &penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_msg +#define penumbra_core_component_stake_v1_RateData_fields &penumbra_core_component_stake_v1_RateData_msg +#define penumbra_core_component_stake_v1_BaseRateData_fields &penumbra_core_component_stake_v1_BaseRateData_msg +#define penumbra_core_component_stake_v1_ValidatorStatus_fields &penumbra_core_component_stake_v1_ValidatorStatus_msg +#define penumbra_core_component_stake_v1_BondingState_fields &penumbra_core_component_stake_v1_BondingState_msg +#define penumbra_core_component_stake_v1_ValidatorState_fields &penumbra_core_component_stake_v1_ValidatorState_msg +#define penumbra_core_component_stake_v1_ValidatorInfo_fields &penumbra_core_component_stake_v1_ValidatorInfo_msg +#define penumbra_core_component_stake_v1_ValidatorDefinition_fields &penumbra_core_component_stake_v1_ValidatorDefinition_msg +#define penumbra_core_component_stake_v1_Delegate_fields &penumbra_core_component_stake_v1_Delegate_msg +#define penumbra_core_component_stake_v1_Undelegate_fields &penumbra_core_component_stake_v1_Undelegate_msg +#define penumbra_core_component_stake_v1_UndelegateClaim_fields &penumbra_core_component_stake_v1_UndelegateClaim_msg +#define penumbra_core_component_stake_v1_UndelegateClaimBody_fields &penumbra_core_component_stake_v1_UndelegateClaimBody_msg +#define penumbra_core_component_stake_v1_UndelegateClaimPlan_fields &penumbra_core_component_stake_v1_UndelegateClaimPlan_msg +#define penumbra_core_component_stake_v1_DelegationChanges_fields &penumbra_core_component_stake_v1_DelegationChanges_msg +#define penumbra_core_component_stake_v1_Uptime_fields &penumbra_core_component_stake_v1_Uptime_msg +#define penumbra_core_component_stake_v1_CurrentConsensusKeys_fields \ + &penumbra_core_component_stake_v1_CurrentConsensusKeys_msg +#define penumbra_core_component_stake_v1_Penalty_fields &penumbra_core_component_stake_v1_Penalty_msg +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_fields \ + &penumbra_core_component_stake_v1_GetValidatorInfoRequest_msg +#define penumbra_core_component_stake_v1_GetValidatorInfoResponse_fields \ + &penumbra_core_component_stake_v1_GetValidatorInfoResponse_msg +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_fields \ + &penumbra_core_component_stake_v1_ValidatorInfoRequest_msg +#define penumbra_core_component_stake_v1_ValidatorInfoResponse_fields \ + &penumbra_core_component_stake_v1_ValidatorInfoResponse_msg +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_fields \ + &penumbra_core_component_stake_v1_ValidatorStatusRequest_msg +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_fields \ + &penumbra_core_component_stake_v1_ValidatorStatusResponse_msg +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_fields \ + &penumbra_core_component_stake_v1_ValidatorPenaltyRequest_msg +#define penumbra_core_component_stake_v1_ValidatorPenaltyResponse_fields \ + &penumbra_core_component_stake_v1_ValidatorPenaltyResponse_msg +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_fields \ + &penumbra_core_component_stake_v1_CurrentValidatorRateRequest_msg +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_fields \ + &penumbra_core_component_stake_v1_CurrentValidatorRateResponse_msg +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_fields \ + &penumbra_core_component_stake_v1_ValidatorUptimeRequest_msg +#define penumbra_core_component_stake_v1_ValidatorUptimeResponse_fields \ + &penumbra_core_component_stake_v1_ValidatorUptimeResponse_msg +#define penumbra_core_component_stake_v1_StakeParameters_fields &penumbra_core_component_stake_v1_StakeParameters_msg +#define penumbra_core_component_stake_v1_GenesisContent_fields &penumbra_core_component_stake_v1_GenesisContent_msg +#define penumbra_core_component_stake_v1_EventTombstoneValidator_fields \ + &penumbra_core_component_stake_v1_EventTombstoneValidator_msg +#define penumbra_core_component_stake_v1_EventValidatorStateChange_fields \ + &penumbra_core_component_stake_v1_EventValidatorStateChange_msg +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_fields \ + &penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_msg +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_fields \ + &penumbra_core_component_stake_v1_EventValidatorBondingStateChange_msg +#define penumbra_core_component_stake_v1_EventRateDataChange_fields &penumbra_core_component_stake_v1_EventRateDataChange_msg +#define penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_fields \ + &penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_msg +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_fields \ + &penumbra_core_component_stake_v1_EventValidatorMissedBlock_msg +#define penumbra_core_component_stake_v1_EventDelegate_fields &penumbra_core_component_stake_v1_EventDelegate_msg +#define penumbra_core_component_stake_v1_EventUndelegate_fields &penumbra_core_component_stake_v1_EventUndelegate_msg +#define penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_fields \ + &penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_component_stake_v1_ZKUndelegateClaimProof_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_Validator_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorList_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_FundingStream_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_FundingStream_ToAddress_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorInfo_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorDefinition_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_UndelegateClaim_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_UndelegateClaimBody_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_UndelegateClaimPlan_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_DelegationChanges_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_Uptime_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_CurrentConsensusKeys_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_Penalty_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_GetValidatorInfoResponse_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorInfoResponse_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorPenaltyResponse_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_ValidatorUptimeResponse_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_GenesisContent_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_EventTombstoneValidator_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_EventValidatorDefinitionUpload_size depends on runtime parameters */ +/* penumbra_core_component_stake_v1_EventSlashingPenaltyApplied_size depends on runtime parameters */ +#define PENUMBRA_CORE_COMPONENT_STAKE_V1_PENUMBRA_CORE_COMPONENT_STAKE_V1_STAKE_PB_H_MAX_SIZE \ + penumbra_core_component_stake_v1_StakeParameters_size +#define penumbra_core_component_stake_v1_BaseRateData_size 59 +#define penumbra_core_component_stake_v1_BondingState_size 24 +#define penumbra_core_component_stake_v1_FundingStream_ToCommunityPool_size 6 +#define penumbra_core_component_stake_v1_StakeParameters_size 112 +#define penumbra_core_component_stake_v1_ValidatorInfoRequest_size 2 +#define penumbra_core_component_stake_v1_ValidatorState_size 2 +#if defined(penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_CurrentValidatorRateRequest_size (6 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_CurrentValidatorRateResponse_size (71 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_Delegate_size (65 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventDelegate_size (30 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventUndelegate_size (30 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventValidatorBondingStateChange_size (32 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventValidatorMissedBlock_size (6 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventValidatorStateChange_size (10 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventValidatorVotingPowerChange_size (30 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_GetValidatorInfoRequest_size (6 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_RateData_size (65 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_Undelegate_size (89 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_ValidatorPenaltyRequest_size (28 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_ValidatorStatusRequest_size (6 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_ValidatorStatusResponse_size (66 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_ValidatorStatus_size (60 + penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_ValidatorUptimeRequest_size (6 + penumbra_core_keys_v1_IdentityKey_size) +#endif +#if defined(penumbra_core_keys_v1_IdentityKey_size) && defined(penumbra_core_keys_v1_IdentityKey_size) +#define penumbra_core_component_stake_v1_EventRateDataChange_size \ + (77 + penumbra_core_keys_v1_IdentityKey_size + penumbra_core_keys_v1_IdentityKey_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/keys/v1/keys.pb.c b/app/src/protobuf/penumbra/core/keys/v1/keys.pb.c new file mode 100644 index 0000000..1d0b89d --- /dev/null +++ b/app/src/protobuf/penumbra/core/keys/v1/keys.pb.c @@ -0,0 +1,33 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/keys/v1/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_keys_v1_Address, penumbra_core_keys_v1_Address, AUTO) + +PB_BIND(penumbra_core_keys_v1_AddressView, penumbra_core_keys_v1_AddressView, AUTO) + +PB_BIND(penumbra_core_keys_v1_AddressView_Decoded, penumbra_core_keys_v1_AddressView_Decoded, AUTO) + +PB_BIND(penumbra_core_keys_v1_AddressView_Opaque, penumbra_core_keys_v1_AddressView_Opaque, AUTO) + +PB_BIND(penumbra_core_keys_v1_PayloadKey, penumbra_core_keys_v1_PayloadKey, AUTO) + +PB_BIND(penumbra_core_keys_v1_SpendKey, penumbra_core_keys_v1_SpendKey, AUTO) + +PB_BIND(penumbra_core_keys_v1_FullViewingKey, penumbra_core_keys_v1_FullViewingKey, AUTO) + +PB_BIND(penumbra_core_keys_v1_WalletId, penumbra_core_keys_v1_WalletId, AUTO) + +PB_BIND(penumbra_core_keys_v1_Diversifier, penumbra_core_keys_v1_Diversifier, AUTO) + +PB_BIND(penumbra_core_keys_v1_AddressIndex, penumbra_core_keys_v1_AddressIndex, AUTO) + +PB_BIND(penumbra_core_keys_v1_IdentityKey, penumbra_core_keys_v1_IdentityKey, AUTO) + +PB_BIND(penumbra_core_keys_v1_GovernanceKey, penumbra_core_keys_v1_GovernanceKey, AUTO) + +PB_BIND(penumbra_core_keys_v1_ConsensusKey, penumbra_core_keys_v1_ConsensusKey, AUTO) diff --git a/app/src/protobuf/penumbra/core/keys/v1/keys.pb.h b/app/src/protobuf/penumbra/core/keys/v1/keys.pb.h new file mode 100644 index 0000000..d50c81e --- /dev/null +++ b/app/src/protobuf/penumbra/core/keys/v1/keys.pb.h @@ -0,0 +1,336 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_KEYS_V1_PENUMBRA_CORE_KEYS_V1_KEYS_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_KEYS_V1_PENUMBRA_CORE_KEYS_V1_KEYS_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A Penumbra address. An address in Penumbra is a Bech32m-encoded + string, with the human-readable prefix (HRP) `penumbrav2t`. */ +typedef struct _penumbra_core_keys_v1_Address { + /* The bytes of the address. Must be represented as a series of + `uint8` (i.e. values 0 through 255), with a length of 80 elements. */ + pb_callback_t inner; + /* Alternatively, a Bech32m-encoded string representation of the `inner` + bytes. + + NOTE: implementations are not required to support parsing this field. + Implementations should prefer to encode the bytes in all messages they + produce. Implementations must not accept messages with both `inner` and + `alt_bech32m` set. */ + pb_callback_t alt_bech32m; +} penumbra_core_keys_v1_Address; + +/* An opaque address, with no information about the address index or wallet ID visible. */ +typedef struct _penumbra_core_keys_v1_AddressView_Opaque { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_core_keys_v1_AddressView_Opaque; + +typedef struct _penumbra_core_keys_v1_PayloadKey { + pb_callback_t inner; +} penumbra_core_keys_v1_PayloadKey; + +typedef struct _penumbra_core_keys_v1_SpendKey { + pb_callback_t inner; +} penumbra_core_keys_v1_SpendKey; + +typedef struct _penumbra_core_keys_v1_FullViewingKey { + pb_callback_t inner; +} penumbra_core_keys_v1_FullViewingKey; + +typedef struct _penumbra_core_keys_v1_WalletId { + pb_callback_t inner; +} penumbra_core_keys_v1_WalletId; + +typedef struct _penumbra_core_keys_v1_Diversifier { + pb_callback_t inner; +} penumbra_core_keys_v1_Diversifier; + +typedef struct _penumbra_core_keys_v1_AddressIndex { + uint32_t account; + pb_callback_t randomizer; +} penumbra_core_keys_v1_AddressIndex; + +/* A decoded address, with information about the address index and wallet ID visible. */ +typedef struct _penumbra_core_keys_v1_AddressView_Decoded { + bool has_address; + penumbra_core_keys_v1_Address address; + bool has_index; + penumbra_core_keys_v1_AddressIndex index; + bool has_wallet_id; + penumbra_core_keys_v1_WalletId wallet_id; +} penumbra_core_keys_v1_AddressView_Decoded; + +typedef struct _penumbra_core_keys_v1_AddressView { + pb_size_t which_address_view; + union { + penumbra_core_keys_v1_AddressView_Decoded decoded; + penumbra_core_keys_v1_AddressView_Opaque opaque; + } address_view; +} penumbra_core_keys_v1_AddressView; + +/* A validator's identity key (decaf377-rdsa spendauth verification key). */ +typedef struct _penumbra_core_keys_v1_IdentityKey { + pb_callback_t ik; +} penumbra_core_keys_v1_IdentityKey; + +/* A validator's governance key (decaf377-rdsa spendauth verification key). */ +typedef struct _penumbra_core_keys_v1_GovernanceKey { + pb_callback_t gk; +} penumbra_core_keys_v1_GovernanceKey; + +typedef struct _penumbra_core_keys_v1_ConsensusKey { + pb_callback_t inner; +} penumbra_core_keys_v1_ConsensusKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_keys_v1_Address_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_AddressView_init_default \ + { \ + 0, { penumbra_core_keys_v1_AddressView_Decoded_init_default } \ + } +#define penumbra_core_keys_v1_AddressView_Decoded_init_default \ + { \ + false, penumbra_core_keys_v1_Address_init_default, false, penumbra_core_keys_v1_AddressIndex_init_default, false, \ + penumbra_core_keys_v1_WalletId_init_default \ + } +#define penumbra_core_keys_v1_AddressView_Opaque_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_core_keys_v1_PayloadKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_SpendKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_FullViewingKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_WalletId_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_Diversifier_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_AddressIndex_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_IdentityKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_GovernanceKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_ConsensusKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_Address_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_AddressView_init_zero \ + { \ + 0, { penumbra_core_keys_v1_AddressView_Decoded_init_zero } \ + } +#define penumbra_core_keys_v1_AddressView_Decoded_init_zero \ + { \ + false, penumbra_core_keys_v1_Address_init_zero, false, penumbra_core_keys_v1_AddressIndex_init_zero, false, \ + penumbra_core_keys_v1_WalletId_init_zero \ + } +#define penumbra_core_keys_v1_AddressView_Opaque_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_core_keys_v1_PayloadKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_SpendKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_FullViewingKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_WalletId_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_Diversifier_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_AddressIndex_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_IdentityKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_GovernanceKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_keys_v1_ConsensusKey_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_keys_v1_Address_inner_tag 1 +#define penumbra_core_keys_v1_Address_alt_bech32m_tag 2 +#define penumbra_core_keys_v1_AddressView_Opaque_address_tag 1 +#define penumbra_core_keys_v1_PayloadKey_inner_tag 1 +#define penumbra_core_keys_v1_SpendKey_inner_tag 1 +#define penumbra_core_keys_v1_FullViewingKey_inner_tag 1 +#define penumbra_core_keys_v1_WalletId_inner_tag 1 +#define penumbra_core_keys_v1_Diversifier_inner_tag 1 +#define penumbra_core_keys_v1_AddressIndex_account_tag 2 +#define penumbra_core_keys_v1_AddressIndex_randomizer_tag 3 +#define penumbra_core_keys_v1_AddressView_Decoded_address_tag 1 +#define penumbra_core_keys_v1_AddressView_Decoded_index_tag 2 +#define penumbra_core_keys_v1_AddressView_Decoded_wallet_id_tag 3 +#define penumbra_core_keys_v1_AddressView_decoded_tag 1 +#define penumbra_core_keys_v1_AddressView_opaque_tag 2 +#define penumbra_core_keys_v1_IdentityKey_ik_tag 1 +#define penumbra_core_keys_v1_GovernanceKey_gk_tag 1 +#define penumbra_core_keys_v1_ConsensusKey_inner_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_keys_v1_Address_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, inner, 1) \ + X(a, CALLBACK, SINGULAR, STRING, alt_bech32m, 2) +#define penumbra_core_keys_v1_Address_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_Address_DEFAULT NULL + +#define penumbra_core_keys_v1_AddressView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (address_view, decoded, address_view.decoded), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (address_view, opaque, address_view.opaque), 2) +#define penumbra_core_keys_v1_AddressView_CALLBACK NULL +#define penumbra_core_keys_v1_AddressView_DEFAULT NULL +#define penumbra_core_keys_v1_AddressView_address_view_decoded_MSGTYPE penumbra_core_keys_v1_AddressView_Decoded +#define penumbra_core_keys_v1_AddressView_address_view_opaque_MSGTYPE penumbra_core_keys_v1_AddressView_Opaque + +#define penumbra_core_keys_v1_AddressView_Decoded_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, wallet_id, 3) +#define penumbra_core_keys_v1_AddressView_Decoded_CALLBACK NULL +#define penumbra_core_keys_v1_AddressView_Decoded_DEFAULT NULL +#define penumbra_core_keys_v1_AddressView_Decoded_address_MSGTYPE penumbra_core_keys_v1_Address +#define penumbra_core_keys_v1_AddressView_Decoded_index_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_core_keys_v1_AddressView_Decoded_wallet_id_MSGTYPE penumbra_core_keys_v1_WalletId + +#define penumbra_core_keys_v1_AddressView_Opaque_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_core_keys_v1_AddressView_Opaque_CALLBACK NULL +#define penumbra_core_keys_v1_AddressView_Opaque_DEFAULT NULL +#define penumbra_core_keys_v1_AddressView_Opaque_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_keys_v1_PayloadKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_PayloadKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_PayloadKey_DEFAULT NULL + +#define penumbra_core_keys_v1_SpendKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_SpendKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_SpendKey_DEFAULT NULL + +#define penumbra_core_keys_v1_FullViewingKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_FullViewingKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_FullViewingKey_DEFAULT NULL + +#define penumbra_core_keys_v1_WalletId_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_WalletId_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_WalletId_DEFAULT NULL + +#define penumbra_core_keys_v1_Diversifier_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_Diversifier_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_Diversifier_DEFAULT NULL + +#define penumbra_core_keys_v1_AddressIndex_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, account, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, randomizer, 3) +#define penumbra_core_keys_v1_AddressIndex_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_AddressIndex_DEFAULT NULL + +#define penumbra_core_keys_v1_IdentityKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, ik, 1) +#define penumbra_core_keys_v1_IdentityKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_IdentityKey_DEFAULT NULL + +#define penumbra_core_keys_v1_GovernanceKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, gk, 1) +#define penumbra_core_keys_v1_GovernanceKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_GovernanceKey_DEFAULT NULL + +#define penumbra_core_keys_v1_ConsensusKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_keys_v1_ConsensusKey_CALLBACK pb_default_field_callback +#define penumbra_core_keys_v1_ConsensusKey_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_core_keys_v1_Address_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_AddressView_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_AddressView_Decoded_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_AddressView_Opaque_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_PayloadKey_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_SpendKey_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_FullViewingKey_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_WalletId_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_Diversifier_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_AddressIndex_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_IdentityKey_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_GovernanceKey_msg; +extern const pb_msgdesc_t penumbra_core_keys_v1_ConsensusKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_keys_v1_Address_fields &penumbra_core_keys_v1_Address_msg +#define penumbra_core_keys_v1_AddressView_fields &penumbra_core_keys_v1_AddressView_msg +#define penumbra_core_keys_v1_AddressView_Decoded_fields &penumbra_core_keys_v1_AddressView_Decoded_msg +#define penumbra_core_keys_v1_AddressView_Opaque_fields &penumbra_core_keys_v1_AddressView_Opaque_msg +#define penumbra_core_keys_v1_PayloadKey_fields &penumbra_core_keys_v1_PayloadKey_msg +#define penumbra_core_keys_v1_SpendKey_fields &penumbra_core_keys_v1_SpendKey_msg +#define penumbra_core_keys_v1_FullViewingKey_fields &penumbra_core_keys_v1_FullViewingKey_msg +#define penumbra_core_keys_v1_WalletId_fields &penumbra_core_keys_v1_WalletId_msg +#define penumbra_core_keys_v1_Diversifier_fields &penumbra_core_keys_v1_Diversifier_msg +#define penumbra_core_keys_v1_AddressIndex_fields &penumbra_core_keys_v1_AddressIndex_msg +#define penumbra_core_keys_v1_IdentityKey_fields &penumbra_core_keys_v1_IdentityKey_msg +#define penumbra_core_keys_v1_GovernanceKey_fields &penumbra_core_keys_v1_GovernanceKey_msg +#define penumbra_core_keys_v1_ConsensusKey_fields &penumbra_core_keys_v1_ConsensusKey_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_keys_v1_Address_size depends on runtime parameters */ +/* penumbra_core_keys_v1_AddressView_size depends on runtime parameters */ +/* penumbra_core_keys_v1_AddressView_Decoded_size depends on runtime parameters */ +/* penumbra_core_keys_v1_AddressView_Opaque_size depends on runtime parameters */ +/* penumbra_core_keys_v1_PayloadKey_size depends on runtime parameters */ +/* penumbra_core_keys_v1_SpendKey_size depends on runtime parameters */ +/* penumbra_core_keys_v1_FullViewingKey_size depends on runtime parameters */ +/* penumbra_core_keys_v1_WalletId_size depends on runtime parameters */ +/* penumbra_core_keys_v1_Diversifier_size depends on runtime parameters */ +/* penumbra_core_keys_v1_AddressIndex_size depends on runtime parameters */ +/* penumbra_core_keys_v1_IdentityKey_size depends on runtime parameters */ +/* penumbra_core_keys_v1_GovernanceKey_size depends on runtime parameters */ +/* penumbra_core_keys_v1_ConsensusKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/num/v1/num.pb.c b/app/src/protobuf/penumbra/core/num/v1/num.pb.c new file mode 100644 index 0000000..6af957c --- /dev/null +++ b/app/src/protobuf/penumbra/core/num/v1/num.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/num/v1/num.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_num_v1_Amount, penumbra_core_num_v1_Amount, AUTO) diff --git a/app/src/protobuf/penumbra/core/num/v1/num.pb.h b/app/src/protobuf/penumbra/core/num/v1/num.pb.h new file mode 100644 index 0000000..b342b81 --- /dev/null +++ b/app/src/protobuf/penumbra/core/num/v1/num.pb.h @@ -0,0 +1,57 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_NUM_V1_PENUMBRA_CORE_NUM_V1_NUM_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_NUM_V1_PENUMBRA_CORE_NUM_V1_NUM_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* The quantity of a particular Asset. Represented as a 128-bit unsigned integer, + split over two fields, `lo` and `hi`, representing the low- and high-order bytes + of the 128-bit value, respectively. Clients must assemble these bits in their + implementation into a `uint128` or comparable data structure, in order to model + the Amount accurately. */ +typedef struct _penumbra_core_num_v1_Amount { + uint64_t lo; + uint64_t hi; +} penumbra_core_num_v1_Amount; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_num_v1_Amount_init_default \ + { 0, 0 } +#define penumbra_core_num_v1_Amount_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_num_v1_Amount_lo_tag 1 +#define penumbra_core_num_v1_Amount_hi_tag 2 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_num_v1_Amount_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, lo, 1) \ + X(a, STATIC, SINGULAR, UINT64, hi, 2) +#define penumbra_core_num_v1_Amount_CALLBACK NULL +#define penumbra_core_num_v1_Amount_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_core_num_v1_Amount_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_num_v1_Amount_fields &penumbra_core_num_v1_Amount_msg + +/* Maximum encoded size of messages (where known) */ +#define PENUMBRA_CORE_NUM_V1_PENUMBRA_CORE_NUM_V1_NUM_PB_H_MAX_SIZE penumbra_core_num_v1_Amount_size +#define penumbra_core_num_v1_Amount_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.c b/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.c new file mode 100644 index 0000000..b079ac2 --- /dev/null +++ b/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.c @@ -0,0 +1,64 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/transaction/v1/transaction.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_transaction_v1_Transaction, penumbra_core_transaction_v1_Transaction, 2) + +PB_BIND(penumbra_core_transaction_v1_TransactionBody, penumbra_core_transaction_v1_TransactionBody, AUTO) + +PB_BIND(penumbra_core_transaction_v1_TransactionParameters, penumbra_core_transaction_v1_TransactionParameters, AUTO) + +PB_BIND(penumbra_core_transaction_v1_DetectionData, penumbra_core_transaction_v1_DetectionData, AUTO) + +PB_BIND(penumbra_core_transaction_v1_Action, penumbra_core_transaction_v1_Action, 2) + +PB_BIND(penumbra_core_transaction_v1_TransactionPerspective, penumbra_core_transaction_v1_TransactionPerspective, 2) + +PB_BIND(penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById, + penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById, AUTO) + +PB_BIND(penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier, + penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier, AUTO) + +PB_BIND(penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment, + penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment, AUTO) + +PB_BIND(penumbra_core_transaction_v1_PayloadKeyWithCommitment, penumbra_core_transaction_v1_PayloadKeyWithCommitment, AUTO) + +PB_BIND(penumbra_core_transaction_v1_NullifierWithNote, penumbra_core_transaction_v1_NullifierWithNote, AUTO) + +PB_BIND(penumbra_core_transaction_v1_TransactionView, penumbra_core_transaction_v1_TransactionView, 2) + +PB_BIND(penumbra_core_transaction_v1_TransactionBodyView, penumbra_core_transaction_v1_TransactionBodyView, 2) + +PB_BIND(penumbra_core_transaction_v1_ActionView, penumbra_core_transaction_v1_ActionView, 2) + +PB_BIND(penumbra_core_transaction_v1_AuthorizationData, penumbra_core_transaction_v1_AuthorizationData, AUTO) + +PB_BIND(penumbra_core_transaction_v1_WitnessData, penumbra_core_transaction_v1_WitnessData, AUTO) + +PB_BIND(penumbra_core_transaction_v1_TransactionPlan, penumbra_core_transaction_v1_TransactionPlan, 2) + +PB_BIND(penumbra_core_transaction_v1_DetectionDataPlan, penumbra_core_transaction_v1_DetectionDataPlan, AUTO) + +PB_BIND(penumbra_core_transaction_v1_ActionPlan, penumbra_core_transaction_v1_ActionPlan, 2) + +PB_BIND(penumbra_core_transaction_v1_CluePlan, penumbra_core_transaction_v1_CluePlan, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoPlan, penumbra_core_transaction_v1_MemoPlan, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoCiphertext, penumbra_core_transaction_v1_MemoCiphertext, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoPlaintext, penumbra_core_transaction_v1_MemoPlaintext, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoPlaintextView, penumbra_core_transaction_v1_MemoPlaintextView, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoView, penumbra_core_transaction_v1_MemoView, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoView_Visible, penumbra_core_transaction_v1_MemoView_Visible, AUTO) + +PB_BIND(penumbra_core_transaction_v1_MemoView_Opaque, penumbra_core_transaction_v1_MemoView_Opaque, AUTO) diff --git a/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.h b/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.h new file mode 100644 index 0000000..82e1e5a --- /dev/null +++ b/app/src/protobuf/penumbra/core/transaction/v1/transaction.pb.h @@ -0,0 +1,1555 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_TRANSACTION_V1_PENUMBRA_CORE_TRANSACTION_V1_TRANSACTION_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_TRANSACTION_V1_PENUMBRA_CORE_TRANSACTION_V1_TRANSACTION_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/auction/v1/auction.pb.h" +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/governance/v1/governance.pb.h" +#include "penumbra/core/component/ibc/v1/ibc.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/txhash/v1/txhash.pb.h" +#include "penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h" +#include "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* The parameters determining if a transaction should be accepted by the chain. */ +typedef struct _penumbra_core_transaction_v1_TransactionParameters { + /* The maximum height that this transaction can be included in the chain. + + If zero, there is no maximum. */ + uint64_t expiry_height; + /* The chain this transaction is intended for. Including this prevents + replaying a transaction on one chain onto a different chain. */ + pb_callback_t chain_id; + /* The transaction fee. */ + bool has_fee; + penumbra_core_component_fee_v1_Fee fee; +} penumbra_core_transaction_v1_TransactionParameters; + +/* Detection data used by a detection server performing Fuzzy Message Detection. */ +typedef struct _penumbra_core_transaction_v1_DetectionData { + /* A list of clues for use with Fuzzy Message Detection. */ + pb_callback_t fmd_clues; +} penumbra_core_transaction_v1_DetectionData; + +/* A state change performed by a transaction. */ +typedef struct _penumbra_core_transaction_v1_Action { + pb_size_t which_action; + union { + /* Common actions have numbers < 15, to save space. */ + penumbra_core_component_shielded_pool_v1_Spend spend; + penumbra_core_component_shielded_pool_v1_Output output; + penumbra_core_component_dex_v1_Swap swap; + penumbra_core_component_dex_v1_SwapClaim swap_claim; + penumbra_core_component_stake_v1_ValidatorDefinition validator_definition; + penumbra_core_component_ibc_v1_IbcRelay ibc_relay_action; + /* Governance: */ + penumbra_core_component_governance_v1_ProposalSubmit proposal_submit; + penumbra_core_component_governance_v1_ProposalWithdraw proposal_withdraw; + penumbra_core_component_governance_v1_ValidatorVote validator_vote; + penumbra_core_component_governance_v1_DelegatorVote delegator_vote; + penumbra_core_component_governance_v1_ProposalDepositClaim proposal_deposit_claim; + /* Positions */ + penumbra_core_component_dex_v1_PositionOpen position_open; + penumbra_core_component_dex_v1_PositionClose position_close; + penumbra_core_component_dex_v1_PositionWithdraw position_withdraw; + penumbra_core_component_dex_v1_PositionRewardClaim position_reward_claim; + /* (un)delegation */ + penumbra_core_component_stake_v1_Delegate delegate; + penumbra_core_component_stake_v1_Undelegate undelegate; + penumbra_core_component_stake_v1_UndelegateClaim undelegate_claim; + /* Community Pool */ + penumbra_core_component_governance_v1_CommunityPoolSpend community_pool_spend; + penumbra_core_component_governance_v1_CommunityPoolOutput community_pool_output; + penumbra_core_component_governance_v1_CommunityPoolDeposit community_pool_deposit; + /* Dutch auctions */ + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule action_dutch_auction_schedule; + penumbra_core_component_auction_v1_ActionDutchAuctionEnd action_dutch_auction_end; + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw action_dutch_auction_withdraw; + penumbra_core_component_ibc_v1_Ics20Withdrawal ics20_withdrawal; + } action; +} penumbra_core_transaction_v1_Action; + +/* A transaction perspective is a bundle of key material and commitment openings + that allow generating a view of a transaction from that perspective. */ +typedef struct _penumbra_core_transaction_v1_TransactionPerspective { + pb_callback_t payload_keys; + pb_callback_t spend_nullifiers; + /* The openings of note commitments referred to in the transaction + but not included in the transaction. */ + pb_callback_t advice_notes; + /* Any relevant address views. */ + pb_callback_t address_views; + /* Any relevant denoms for viewed assets. */ + pb_callback_t denoms; + /* The transaction ID associated with this TransactionPerspective */ + bool has_transaction_id; + penumbra_core_txhash_v1_TransactionId transaction_id; + /* Any relevant estimated prices */ + pb_callback_t prices; + /* Any relevant extended metadata, indexed by asset id. */ + pb_callback_t extended_metadata; + pb_callback_t creation_transaction_ids_by_nullifier; + pb_callback_t nullification_transaction_ids_by_commitment; + /* Any relevant BatchSwapOutputData to the transaction. + + This can be used to fill in information about swap outputs. */ + pb_callback_t batch_swap_output_data; +} penumbra_core_transaction_v1_TransactionPerspective; + +typedef struct _penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById { + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + bool has_extended_metadata; + google_protobuf_Any extended_metadata; +} penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById; + +/* Associates a nullifier with the transaction ID that created the nullified state commitment. + + Note: this is _not_ the transaction ID that revealed the nullifier. + + Allows walking backwards from a spend to the transaction that created the note. */ +typedef struct _penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier { + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + bool has_transaction_id; + penumbra_core_txhash_v1_TransactionId transaction_id; +} penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier; + +/* Associates a commitment with the transaction ID that eventually nullified it. + + Allows walking forwards from an output to the transaction that spent the note. */ +typedef struct _penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment { + bool has_commitment; + penumbra_crypto_tct_v1_StateCommitment commitment; + bool has_transaction_id; + penumbra_core_txhash_v1_TransactionId transaction_id; +} penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment; + +typedef struct _penumbra_core_transaction_v1_PayloadKeyWithCommitment { + bool has_payload_key; + penumbra_core_keys_v1_PayloadKey payload_key; + bool has_commitment; + penumbra_crypto_tct_v1_StateCommitment commitment; +} penumbra_core_transaction_v1_PayloadKeyWithCommitment; + +typedef struct _penumbra_core_transaction_v1_NullifierWithNote { + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + bool has_note; + penumbra_core_component_shielded_pool_v1_Note note; +} penumbra_core_transaction_v1_NullifierWithNote; + +/* A view of a specific state change action performed by a transaction. */ +typedef struct _penumbra_core_transaction_v1_ActionView { + pb_size_t which_action_view; + union { + /* Action types with visible/opaque variants */ + penumbra_core_component_shielded_pool_v1_SpendView spend; + penumbra_core_component_shielded_pool_v1_OutputView output; + penumbra_core_component_dex_v1_SwapView swap; + penumbra_core_component_dex_v1_SwapClaimView swap_claim; + /* Action types without visible/opaque variants */ + penumbra_core_component_stake_v1_ValidatorDefinition validator_definition; + penumbra_core_component_ibc_v1_IbcRelay ibc_relay_action; + /* Governance: */ + penumbra_core_component_governance_v1_ProposalSubmit proposal_submit; + penumbra_core_component_governance_v1_ProposalWithdraw proposal_withdraw; + penumbra_core_component_governance_v1_ValidatorVote validator_vote; + penumbra_core_component_governance_v1_DelegatorVoteView delegator_vote; + penumbra_core_component_governance_v1_ProposalDepositClaim proposal_deposit_claim; + penumbra_core_component_dex_v1_PositionOpen position_open; + penumbra_core_component_dex_v1_PositionClose position_close; + penumbra_core_component_dex_v1_PositionWithdraw position_withdraw; + penumbra_core_component_dex_v1_PositionRewardClaim position_reward_claim; + penumbra_core_component_stake_v1_Delegate delegate; + penumbra_core_component_stake_v1_Undelegate undelegate; + /* TODO: we have no way to recover the opening of the undelegate_claim's + balance commitment, and can only infer the value from looking at the rest + of the transaction. is that fine? */ + penumbra_core_component_stake_v1_UndelegateClaim undelegate_claim; + /* Community Pool */ + penumbra_core_component_governance_v1_CommunityPoolSpend community_pool_spend; + penumbra_core_component_governance_v1_CommunityPoolOutput community_pool_output; + penumbra_core_component_governance_v1_CommunityPoolDeposit community_pool_deposit; + /* Dutch auctions */ + penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView action_dutch_auction_schedule; + penumbra_core_component_auction_v1_ActionDutchAuctionEnd action_dutch_auction_end; + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView action_dutch_auction_withdraw; + penumbra_core_component_ibc_v1_Ics20Withdrawal ics20_withdrawal; + } action_view; +} penumbra_core_transaction_v1_ActionView; + +/* The data required to authorize a transaction plan. */ +typedef struct _penumbra_core_transaction_v1_AuthorizationData { + /* The computed auth hash for the approved transaction plan. */ + bool has_effect_hash; + penumbra_core_txhash_v1_EffectHash effect_hash; + /* The required spend authorizations, returned in the same order as the + Spend actions in the original request. */ + pb_callback_t spend_auths; + /* The required delegator vote authorizations, returned in the same order as the + DelegatorVote actions in the original request. */ + pb_callback_t delegator_vote_auths; +} penumbra_core_transaction_v1_AuthorizationData; + +/* The data required for proving when building a transaction from a plan. */ +typedef struct _penumbra_core_transaction_v1_WitnessData { + /* The anchor for the state transition proofs. */ + bool has_anchor; + penumbra_crypto_tct_v1_MerkleRoot anchor; + /* The auth paths for the notes the transaction spends, in the + same order as the spends in the transaction plan. */ + pb_callback_t state_commitment_proofs; +} penumbra_core_transaction_v1_WitnessData; + +typedef struct _penumbra_core_transaction_v1_DetectionDataPlan { + pb_callback_t clue_plans; +} penumbra_core_transaction_v1_DetectionDataPlan; + +/* Describes a planned transaction action. + + Some transaction Actions don't have any private data and are treated as being plans + themselves. */ +typedef struct _penumbra_core_transaction_v1_ActionPlan { + pb_size_t which_action; + union { + penumbra_core_component_shielded_pool_v1_SpendPlan spend; + penumbra_core_component_shielded_pool_v1_OutputPlan output; + penumbra_core_component_dex_v1_SwapPlan swap; + penumbra_core_component_dex_v1_SwapClaimPlan swap_claim; + /* This is just a message relayed to the chain. */ + penumbra_core_component_stake_v1_ValidatorDefinition validator_definition; + /* This is just a message relayed to the chain. */ + penumbra_core_component_ibc_v1_IbcRelay ibc_relay_action; + /* Governance: */ + penumbra_core_component_governance_v1_ProposalSubmit proposal_submit; + penumbra_core_component_governance_v1_ProposalWithdraw proposal_withdraw; + penumbra_core_component_governance_v1_ValidatorVote validator_vote; + penumbra_core_component_governance_v1_DelegatorVotePlan delegator_vote; + penumbra_core_component_governance_v1_ProposalDepositClaim proposal_deposit_claim; + penumbra_core_component_dex_v1_PositionOpen position_open; + penumbra_core_component_dex_v1_PositionClose position_close; + /* The position withdraw/reward claim actions require balance information so they have Plan types. */ + penumbra_core_component_dex_v1_PositionWithdrawPlan position_withdraw; + penumbra_core_component_dex_v1_PositionRewardClaimPlan position_reward_claim; + /* We don't need any extra information (yet) to understand delegations, + because we don't yet use flow encryption. */ + penumbra_core_component_stake_v1_Delegate delegate; + /* We don't need any extra information (yet) to understand undelegations, + because we don't yet use flow encryption. */ + penumbra_core_component_stake_v1_Undelegate undelegate; + penumbra_core_component_stake_v1_UndelegateClaimPlan undelegate_claim; + /* Community Pool */ + penumbra_core_component_governance_v1_CommunityPoolSpend community_pool_spend; + penumbra_core_component_governance_v1_CommunityPoolOutput community_pool_output; + penumbra_core_component_governance_v1_CommunityPoolDeposit community_pool_deposit; + /* Dutch auctions */ + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule action_dutch_auction_schedule; + penumbra_core_component_auction_v1_ActionDutchAuctionEnd action_dutch_auction_end; + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan action_dutch_auction_withdraw; + penumbra_core_component_ibc_v1_Ics20Withdrawal ics20_withdrawal; + } action; +} penumbra_core_transaction_v1_ActionPlan; + +/* Describes a plan for forming a `Clue`. */ +typedef struct _penumbra_core_transaction_v1_CluePlan { + /* The address. */ + bool has_address; + penumbra_core_keys_v1_Address address; + /* The random seed to use for the clue plan. */ + pb_callback_t rseed; + /* The bits of precision. */ + uint64_t precision_bits; +} penumbra_core_transaction_v1_CluePlan; + +/* The encrypted memo data describing information about the purpose of a transaction. */ +typedef struct _penumbra_core_transaction_v1_MemoCiphertext { + /* The encrypted data. 528 bytes. */ + pb_callback_t inner; +} penumbra_core_transaction_v1_MemoCiphertext; + +/* The body of a transaction. */ +typedef struct _penumbra_core_transaction_v1_TransactionBody { + /* A list of actions (state changes) performed by this transaction. */ + pb_callback_t actions; + /* Parameters determining if a transaction should be accepted by this chain. */ + bool has_transaction_parameters; + penumbra_core_transaction_v1_TransactionParameters transaction_parameters; + /* Detection data for use with Fuzzy Message Detection */ + bool has_detection_data; + penumbra_core_transaction_v1_DetectionData detection_data; + /* The encrypted memo for this transaction. + + This field will be present if and only if the transaction has outputs. */ + bool has_memo; + penumbra_core_transaction_v1_MemoCiphertext memo; +} penumbra_core_transaction_v1_TransactionBody; + +/* A Penumbra transaction. */ +typedef struct _penumbra_core_transaction_v1_Transaction { + bool has_body; + penumbra_core_transaction_v1_TransactionBody body; + /* The binding signature is stored separately from the transaction body that it signs. */ + bool has_binding_sig; + penumbra_crypto_decaf377_rdsa_v1_BindingSignature binding_sig; + /* The root of some previous state of the state commitment tree, used as an anchor for all + ZK state transition proofs. */ + bool has_anchor; + penumbra_crypto_tct_v1_MerkleRoot anchor; +} penumbra_core_transaction_v1_Transaction; + +/* The plaintext describing information about the purpose of a transaction. */ +typedef struct _penumbra_core_transaction_v1_MemoPlaintext { + /* The sender's return address. + + This should always be a valid address; the sender is responsible for ensuring + that if the receiver returns funds to this address, they will not be lost. */ + bool has_return_address; + penumbra_core_keys_v1_Address return_address; + /* Free-form text, up to 432 bytes long. */ + pb_callback_t text; +} penumbra_core_transaction_v1_MemoPlaintext; + +/* Describes a plan for forming the transaction memo. */ +typedef struct _penumbra_core_transaction_v1_MemoPlan { + /* The plaintext. */ + bool has_plaintext; + penumbra_core_transaction_v1_MemoPlaintext plaintext; + /* The key to use to encrypt the memo. */ + pb_callback_t key; +} penumbra_core_transaction_v1_MemoPlan; + +/* Describes a planned transaction. Permits clients to prepare a transaction + prior submission, so that a user can review it prior to authorizing its execution. + + The `TransactionPlan` is a fully determined bundle binding all of a transaction's effects. + The only thing it does not include is the witness data used for proving. */ +typedef struct _penumbra_core_transaction_v1_TransactionPlan { + /* The sequence of actions planned for this transaction. */ + pb_callback_t actions; + /* Parameters determining if a transaction should be accepted by this chain. */ + bool has_transaction_parameters; + penumbra_core_transaction_v1_TransactionParameters transaction_parameters; + /* Detection data for use with Fuzzy Message Detection */ + bool has_detection_data; + penumbra_core_transaction_v1_DetectionDataPlan detection_data; + /* The memo plan for this transaction. */ + bool has_memo; + penumbra_core_transaction_v1_MemoPlan memo; +} penumbra_core_transaction_v1_TransactionPlan; + +typedef struct _penumbra_core_transaction_v1_MemoPlaintextView { + bool has_return_address; + penumbra_core_keys_v1_AddressView return_address; + pb_callback_t text; +} penumbra_core_transaction_v1_MemoPlaintextView; + +typedef struct _penumbra_core_transaction_v1_MemoView_Visible { + bool has_ciphertext; + penumbra_core_transaction_v1_MemoCiphertext ciphertext; + bool has_plaintext; + penumbra_core_transaction_v1_MemoPlaintextView plaintext; +} penumbra_core_transaction_v1_MemoView_Visible; + +typedef struct _penumbra_core_transaction_v1_MemoView_Opaque { + bool has_ciphertext; + penumbra_core_transaction_v1_MemoCiphertext ciphertext; +} penumbra_core_transaction_v1_MemoView_Opaque; + +typedef struct _penumbra_core_transaction_v1_MemoView { + pb_size_t which_memo_view; + union { + penumbra_core_transaction_v1_MemoView_Visible visible; + penumbra_core_transaction_v1_MemoView_Opaque opaque; + } memo_view; +} penumbra_core_transaction_v1_MemoView; + +typedef struct _penumbra_core_transaction_v1_TransactionBodyView { + /* A list views into of actions (state changes) performed by this transaction. */ + pb_callback_t action_views; + /* Transaction parameters. */ + bool has_transaction_parameters; + penumbra_core_transaction_v1_TransactionParameters transaction_parameters; + /* The detection data in this transaction, only populated if + there are outputs in the actions of this transaction. */ + bool has_detection_data; + penumbra_core_transaction_v1_DetectionData detection_data; + /* An optional view of a transaction memo. It will only be populated if there are + outputs in the actions of this transaction. */ + bool has_memo_view; + penumbra_core_transaction_v1_MemoView memo_view; +} penumbra_core_transaction_v1_TransactionBodyView; + +/* View of a Penumbra transaction. */ +typedef struct _penumbra_core_transaction_v1_TransactionView { + /* View of the transaction body */ + bool has_body_view; + penumbra_core_transaction_v1_TransactionBodyView body_view; + /* The binding signature is stored separately from the transaction body that it signs. */ + bool has_binding_sig; + penumbra_crypto_decaf377_rdsa_v1_BindingSignature binding_sig; + /* The root of some previous state of the state commitment tree, used as an anchor for all + ZK state transition proofs. */ + bool has_anchor; + penumbra_crypto_tct_v1_MerkleRoot anchor; +} penumbra_core_transaction_v1_TransactionView; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_transaction_v1_Transaction_init_default \ + { \ + false, penumbra_core_transaction_v1_TransactionBody_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_default, false, \ + penumbra_crypto_tct_v1_MerkleRoot_init_default \ + } +#define penumbra_core_transaction_v1_TransactionBody_init_default \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_default, false, \ + penumbra_core_transaction_v1_DetectionData_init_default, false, \ + penumbra_core_transaction_v1_MemoCiphertext_init_default \ + } +#define penumbra_core_transaction_v1_TransactionParameters_init_default \ + { 0, {{NULL}, NULL}, false, penumbra_core_component_fee_v1_Fee_init_default } +#define penumbra_core_transaction_v1_DetectionData_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_Action_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_Spend_init_default } \ + } +#define penumbra_core_transaction_v1_TransactionPerspective_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + penumbra_core_txhash_v1_TransactionId_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default, false, google_protobuf_Any_init_default } +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_init_default \ + { \ + false, penumbra_core_component_sct_v1_Nullifier_init_default, false, \ + penumbra_core_txhash_v1_TransactionId_init_default \ + } +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default, false, penumbra_core_txhash_v1_TransactionId_init_default } +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_init_default \ + { false, penumbra_core_keys_v1_PayloadKey_init_default, false, penumbra_crypto_tct_v1_StateCommitment_init_default } +#define penumbra_core_transaction_v1_NullifierWithNote_init_default \ + { \ + false, penumbra_core_component_sct_v1_Nullifier_init_default, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_default \ + } +#define penumbra_core_transaction_v1_TransactionView_init_default \ + { \ + false, penumbra_core_transaction_v1_TransactionBodyView_init_default, false, \ + penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_default, false, \ + penumbra_crypto_tct_v1_MerkleRoot_init_default \ + } +#define penumbra_core_transaction_v1_TransactionBodyView_init_default \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_default, false, \ + penumbra_core_transaction_v1_DetectionData_init_default, false, \ + penumbra_core_transaction_v1_MemoView_init_default \ + } +#define penumbra_core_transaction_v1_ActionView_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendView_init_default } \ + } +#define penumbra_core_transaction_v1_AuthorizationData_init_default \ + { \ + false, penumbra_core_txhash_v1_EffectHash_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_WitnessData_init_default \ + { \ + false, penumbra_crypto_tct_v1_MerkleRoot_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_TransactionPlan_init_default \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_default, false, \ + penumbra_core_transaction_v1_DetectionDataPlan_init_default, false, \ + penumbra_core_transaction_v1_MemoPlan_init_default \ + } +#define penumbra_core_transaction_v1_DetectionDataPlan_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_ActionPlan_init_default \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendPlan_init_default } \ + } +#define penumbra_core_transaction_v1_CluePlan_init_default \ + { false, penumbra_core_keys_v1_Address_init_default, {{NULL}, NULL}, 0 } +#define penumbra_core_transaction_v1_MemoPlan_init_default \ + { \ + false, penumbra_core_transaction_v1_MemoPlaintext_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoCiphertext_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoPlaintext_init_default \ + { \ + false, penumbra_core_keys_v1_Address_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoPlaintextView_init_default \ + { \ + false, penumbra_core_keys_v1_AddressView_init_default, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoView_init_default \ + { \ + 0, { penumbra_core_transaction_v1_MemoView_Visible_init_default } \ + } +#define penumbra_core_transaction_v1_MemoView_Visible_init_default \ + { \ + false, penumbra_core_transaction_v1_MemoCiphertext_init_default, false, \ + penumbra_core_transaction_v1_MemoPlaintextView_init_default \ + } +#define penumbra_core_transaction_v1_MemoView_Opaque_init_default \ + { false, penumbra_core_transaction_v1_MemoCiphertext_init_default } +#define penumbra_core_transaction_v1_Transaction_init_zero \ + { \ + false, penumbra_core_transaction_v1_TransactionBody_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_zero, false, penumbra_crypto_tct_v1_MerkleRoot_init_zero \ + } +#define penumbra_core_transaction_v1_TransactionBody_init_zero \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_zero, false, \ + penumbra_core_transaction_v1_DetectionData_init_zero, false, \ + penumbra_core_transaction_v1_MemoCiphertext_init_zero \ + } +#define penumbra_core_transaction_v1_TransactionParameters_init_zero \ + { 0, {{NULL}, NULL}, false, penumbra_core_component_fee_v1_Fee_init_zero } +#define penumbra_core_transaction_v1_DetectionData_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_Action_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_Spend_init_zero } \ + } +#define penumbra_core_transaction_v1_TransactionPerspective_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + penumbra_core_txhash_v1_TransactionId_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero, false, google_protobuf_Any_init_zero } +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_init_zero \ + { false, penumbra_core_component_sct_v1_Nullifier_init_zero, false, penumbra_core_txhash_v1_TransactionId_init_zero } +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero, false, penumbra_core_txhash_v1_TransactionId_init_zero } +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_init_zero \ + { false, penumbra_core_keys_v1_PayloadKey_init_zero, false, penumbra_crypto_tct_v1_StateCommitment_init_zero } +#define penumbra_core_transaction_v1_NullifierWithNote_init_zero \ + { \ + false, penumbra_core_component_sct_v1_Nullifier_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_zero \ + } +#define penumbra_core_transaction_v1_TransactionView_init_zero \ + { \ + false, penumbra_core_transaction_v1_TransactionBodyView_init_zero, false, \ + penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_zero, false, penumbra_crypto_tct_v1_MerkleRoot_init_zero \ + } +#define penumbra_core_transaction_v1_TransactionBodyView_init_zero \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_zero, false, \ + penumbra_core_transaction_v1_DetectionData_init_zero, false, penumbra_core_transaction_v1_MemoView_init_zero \ + } +#define penumbra_core_transaction_v1_ActionView_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendView_init_zero } \ + } +#define penumbra_core_transaction_v1_AuthorizationData_init_zero \ + { \ + false, penumbra_core_txhash_v1_EffectHash_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_WitnessData_init_zero \ + { \ + false, penumbra_crypto_tct_v1_MerkleRoot_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_TransactionPlan_init_zero \ + { \ + {{NULL}, NULL}, false, penumbra_core_transaction_v1_TransactionParameters_init_zero, false, \ + penumbra_core_transaction_v1_DetectionDataPlan_init_zero, false, \ + penumbra_core_transaction_v1_MemoPlan_init_zero \ + } +#define penumbra_core_transaction_v1_DetectionDataPlan_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_ActionPlan_init_zero \ + { \ + 0, { penumbra_core_component_shielded_pool_v1_SpendPlan_init_zero } \ + } +#define penumbra_core_transaction_v1_CluePlan_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero, {{NULL}, NULL}, 0 } +#define penumbra_core_transaction_v1_MemoPlan_init_zero \ + { \ + false, penumbra_core_transaction_v1_MemoPlaintext_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoCiphertext_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoPlaintext_init_zero \ + { \ + false, penumbra_core_keys_v1_Address_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoPlaintextView_init_zero \ + { \ + false, penumbra_core_keys_v1_AddressView_init_zero, { {NULL}, NULL } \ + } +#define penumbra_core_transaction_v1_MemoView_init_zero \ + { \ + 0, { penumbra_core_transaction_v1_MemoView_Visible_init_zero } \ + } +#define penumbra_core_transaction_v1_MemoView_Visible_init_zero \ + { \ + false, penumbra_core_transaction_v1_MemoCiphertext_init_zero, false, \ + penumbra_core_transaction_v1_MemoPlaintextView_init_zero \ + } +#define penumbra_core_transaction_v1_MemoView_Opaque_init_zero \ + { false, penumbra_core_transaction_v1_MemoCiphertext_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_transaction_v1_TransactionParameters_expiry_height_tag 1 +#define penumbra_core_transaction_v1_TransactionParameters_chain_id_tag 2 +#define penumbra_core_transaction_v1_TransactionParameters_fee_tag 3 +#define penumbra_core_transaction_v1_DetectionData_fmd_clues_tag 4 +#define penumbra_core_transaction_v1_Action_spend_tag 1 +#define penumbra_core_transaction_v1_Action_output_tag 2 +#define penumbra_core_transaction_v1_Action_swap_tag 3 +#define penumbra_core_transaction_v1_Action_swap_claim_tag 4 +#define penumbra_core_transaction_v1_Action_validator_definition_tag 16 +#define penumbra_core_transaction_v1_Action_ibc_relay_action_tag 17 +#define penumbra_core_transaction_v1_Action_proposal_submit_tag 18 +#define penumbra_core_transaction_v1_Action_proposal_withdraw_tag 19 +#define penumbra_core_transaction_v1_Action_validator_vote_tag 20 +#define penumbra_core_transaction_v1_Action_delegator_vote_tag 21 +#define penumbra_core_transaction_v1_Action_proposal_deposit_claim_tag 22 +#define penumbra_core_transaction_v1_Action_position_open_tag 30 +#define penumbra_core_transaction_v1_Action_position_close_tag 31 +#define penumbra_core_transaction_v1_Action_position_withdraw_tag 32 +#define penumbra_core_transaction_v1_Action_position_reward_claim_tag 34 +#define penumbra_core_transaction_v1_Action_delegate_tag 40 +#define penumbra_core_transaction_v1_Action_undelegate_tag 41 +#define penumbra_core_transaction_v1_Action_undelegate_claim_tag 42 +#define penumbra_core_transaction_v1_Action_community_pool_spend_tag 50 +#define penumbra_core_transaction_v1_Action_community_pool_output_tag 51 +#define penumbra_core_transaction_v1_Action_community_pool_deposit_tag 52 +#define penumbra_core_transaction_v1_Action_action_dutch_auction_schedule_tag 53 +#define penumbra_core_transaction_v1_Action_action_dutch_auction_end_tag 54 +#define penumbra_core_transaction_v1_Action_action_dutch_auction_withdraw_tag 55 +#define penumbra_core_transaction_v1_Action_ics20_withdrawal_tag 200 +#define penumbra_core_transaction_v1_TransactionPerspective_payload_keys_tag 1 +#define penumbra_core_transaction_v1_TransactionPerspective_spend_nullifiers_tag 2 +#define penumbra_core_transaction_v1_TransactionPerspective_advice_notes_tag 3 +#define penumbra_core_transaction_v1_TransactionPerspective_address_views_tag 4 +#define penumbra_core_transaction_v1_TransactionPerspective_denoms_tag 5 +#define penumbra_core_transaction_v1_TransactionPerspective_transaction_id_tag 6 +#define penumbra_core_transaction_v1_TransactionPerspective_prices_tag 20 +#define penumbra_core_transaction_v1_TransactionPerspective_extended_metadata_tag 30 +#define penumbra_core_transaction_v1_TransactionPerspective_creation_transaction_ids_by_nullifier_tag 40 +#define penumbra_core_transaction_v1_TransactionPerspective_nullification_transaction_ids_by_commitment_tag 50 +#define penumbra_core_transaction_v1_TransactionPerspective_batch_swap_output_data_tag 60 +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_asset_id_tag 1 +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_extended_metadata_tag 2 +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_nullifier_tag 1 +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_transaction_id_tag 2 +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_commitment_tag 1 +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_transaction_id_tag 2 +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_payload_key_tag 1 +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_commitment_tag 2 +#define penumbra_core_transaction_v1_NullifierWithNote_nullifier_tag 1 +#define penumbra_core_transaction_v1_NullifierWithNote_note_tag 2 +#define penumbra_core_transaction_v1_ActionView_spend_tag 1 +#define penumbra_core_transaction_v1_ActionView_output_tag 2 +#define penumbra_core_transaction_v1_ActionView_swap_tag 3 +#define penumbra_core_transaction_v1_ActionView_swap_claim_tag 4 +#define penumbra_core_transaction_v1_ActionView_validator_definition_tag 16 +#define penumbra_core_transaction_v1_ActionView_ibc_relay_action_tag 17 +#define penumbra_core_transaction_v1_ActionView_proposal_submit_tag 18 +#define penumbra_core_transaction_v1_ActionView_proposal_withdraw_tag 19 +#define penumbra_core_transaction_v1_ActionView_validator_vote_tag 20 +#define penumbra_core_transaction_v1_ActionView_delegator_vote_tag 21 +#define penumbra_core_transaction_v1_ActionView_proposal_deposit_claim_tag 22 +#define penumbra_core_transaction_v1_ActionView_position_open_tag 30 +#define penumbra_core_transaction_v1_ActionView_position_close_tag 31 +#define penumbra_core_transaction_v1_ActionView_position_withdraw_tag 32 +#define penumbra_core_transaction_v1_ActionView_position_reward_claim_tag 34 +#define penumbra_core_transaction_v1_ActionView_delegate_tag 41 +#define penumbra_core_transaction_v1_ActionView_undelegate_tag 42 +#define penumbra_core_transaction_v1_ActionView_undelegate_claim_tag 43 +#define penumbra_core_transaction_v1_ActionView_community_pool_spend_tag 50 +#define penumbra_core_transaction_v1_ActionView_community_pool_output_tag 51 +#define penumbra_core_transaction_v1_ActionView_community_pool_deposit_tag 52 +#define penumbra_core_transaction_v1_ActionView_action_dutch_auction_schedule_tag 53 +#define penumbra_core_transaction_v1_ActionView_action_dutch_auction_end_tag 54 +#define penumbra_core_transaction_v1_ActionView_action_dutch_auction_withdraw_tag 55 +#define penumbra_core_transaction_v1_ActionView_ics20_withdrawal_tag 200 +#define penumbra_core_transaction_v1_AuthorizationData_effect_hash_tag 1 +#define penumbra_core_transaction_v1_AuthorizationData_spend_auths_tag 2 +#define penumbra_core_transaction_v1_AuthorizationData_delegator_vote_auths_tag 3 +#define penumbra_core_transaction_v1_WitnessData_anchor_tag 1 +#define penumbra_core_transaction_v1_WitnessData_state_commitment_proofs_tag 2 +#define penumbra_core_transaction_v1_DetectionDataPlan_clue_plans_tag 5 +#define penumbra_core_transaction_v1_ActionPlan_spend_tag 1 +#define penumbra_core_transaction_v1_ActionPlan_output_tag 2 +#define penumbra_core_transaction_v1_ActionPlan_swap_tag 3 +#define penumbra_core_transaction_v1_ActionPlan_swap_claim_tag 4 +#define penumbra_core_transaction_v1_ActionPlan_validator_definition_tag 16 +#define penumbra_core_transaction_v1_ActionPlan_ibc_relay_action_tag 17 +#define penumbra_core_transaction_v1_ActionPlan_proposal_submit_tag 18 +#define penumbra_core_transaction_v1_ActionPlan_proposal_withdraw_tag 19 +#define penumbra_core_transaction_v1_ActionPlan_validator_vote_tag 20 +#define penumbra_core_transaction_v1_ActionPlan_delegator_vote_tag 21 +#define penumbra_core_transaction_v1_ActionPlan_proposal_deposit_claim_tag 22 +#define penumbra_core_transaction_v1_ActionPlan_position_open_tag 30 +#define penumbra_core_transaction_v1_ActionPlan_position_close_tag 31 +#define penumbra_core_transaction_v1_ActionPlan_position_withdraw_tag 32 +#define penumbra_core_transaction_v1_ActionPlan_position_reward_claim_tag 34 +#define penumbra_core_transaction_v1_ActionPlan_delegate_tag 40 +#define penumbra_core_transaction_v1_ActionPlan_undelegate_tag 41 +#define penumbra_core_transaction_v1_ActionPlan_undelegate_claim_tag 42 +#define penumbra_core_transaction_v1_ActionPlan_community_pool_spend_tag 50 +#define penumbra_core_transaction_v1_ActionPlan_community_pool_output_tag 51 +#define penumbra_core_transaction_v1_ActionPlan_community_pool_deposit_tag 52 +#define penumbra_core_transaction_v1_ActionPlan_action_dutch_auction_schedule_tag 53 +#define penumbra_core_transaction_v1_ActionPlan_action_dutch_auction_end_tag 54 +#define penumbra_core_transaction_v1_ActionPlan_action_dutch_auction_withdraw_tag 55 +#define penumbra_core_transaction_v1_ActionPlan_ics20_withdrawal_tag 200 +#define penumbra_core_transaction_v1_CluePlan_address_tag 1 +#define penumbra_core_transaction_v1_CluePlan_rseed_tag 2 +#define penumbra_core_transaction_v1_CluePlan_precision_bits_tag 3 +#define penumbra_core_transaction_v1_MemoCiphertext_inner_tag 1 +#define penumbra_core_transaction_v1_TransactionBody_actions_tag 1 +#define penumbra_core_transaction_v1_TransactionBody_transaction_parameters_tag 2 +#define penumbra_core_transaction_v1_TransactionBody_detection_data_tag 4 +#define penumbra_core_transaction_v1_TransactionBody_memo_tag 5 +#define penumbra_core_transaction_v1_Transaction_body_tag 1 +#define penumbra_core_transaction_v1_Transaction_binding_sig_tag 2 +#define penumbra_core_transaction_v1_Transaction_anchor_tag 3 +#define penumbra_core_transaction_v1_MemoPlaintext_return_address_tag 1 +#define penumbra_core_transaction_v1_MemoPlaintext_text_tag 2 +#define penumbra_core_transaction_v1_MemoPlan_plaintext_tag 1 +#define penumbra_core_transaction_v1_MemoPlan_key_tag 2 +#define penumbra_core_transaction_v1_TransactionPlan_actions_tag 1 +#define penumbra_core_transaction_v1_TransactionPlan_transaction_parameters_tag 2 +#define penumbra_core_transaction_v1_TransactionPlan_detection_data_tag 4 +#define penumbra_core_transaction_v1_TransactionPlan_memo_tag 5 +#define penumbra_core_transaction_v1_MemoPlaintextView_return_address_tag 1 +#define penumbra_core_transaction_v1_MemoPlaintextView_text_tag 2 +#define penumbra_core_transaction_v1_MemoView_Visible_ciphertext_tag 1 +#define penumbra_core_transaction_v1_MemoView_Visible_plaintext_tag 2 +#define penumbra_core_transaction_v1_MemoView_Opaque_ciphertext_tag 1 +#define penumbra_core_transaction_v1_MemoView_visible_tag 1 +#define penumbra_core_transaction_v1_MemoView_opaque_tag 2 +#define penumbra_core_transaction_v1_TransactionBodyView_action_views_tag 1 +#define penumbra_core_transaction_v1_TransactionBodyView_transaction_parameters_tag 2 +#define penumbra_core_transaction_v1_TransactionBodyView_detection_data_tag 4 +#define penumbra_core_transaction_v1_TransactionBodyView_memo_view_tag 5 +#define penumbra_core_transaction_v1_TransactionView_body_view_tag 1 +#define penumbra_core_transaction_v1_TransactionView_binding_sig_tag 2 +#define penumbra_core_transaction_v1_TransactionView_anchor_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_transaction_v1_Transaction_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, binding_sig, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, anchor, 3) +#define penumbra_core_transaction_v1_Transaction_CALLBACK NULL +#define penumbra_core_transaction_v1_Transaction_DEFAULT NULL +#define penumbra_core_transaction_v1_Transaction_body_MSGTYPE penumbra_core_transaction_v1_TransactionBody +#define penumbra_core_transaction_v1_Transaction_binding_sig_MSGTYPE penumbra_crypto_decaf377_rdsa_v1_BindingSignature +#define penumbra_core_transaction_v1_Transaction_anchor_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot + +#define penumbra_core_transaction_v1_TransactionBody_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, actions, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_parameters, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, detection_data, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, memo, 5) +#define penumbra_core_transaction_v1_TransactionBody_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_TransactionBody_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionBody_actions_MSGTYPE penumbra_core_transaction_v1_Action +#define penumbra_core_transaction_v1_TransactionBody_transaction_parameters_MSGTYPE \ + penumbra_core_transaction_v1_TransactionParameters +#define penumbra_core_transaction_v1_TransactionBody_detection_data_MSGTYPE penumbra_core_transaction_v1_DetectionData +#define penumbra_core_transaction_v1_TransactionBody_memo_MSGTYPE penumbra_core_transaction_v1_MemoCiphertext + +#define penumbra_core_transaction_v1_TransactionParameters_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, expiry_height, 1) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 3) +#define penumbra_core_transaction_v1_TransactionParameters_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_TransactionParameters_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionParameters_fee_MSGTYPE penumbra_core_component_fee_v1_Fee + +#define penumbra_core_transaction_v1_DetectionData_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, fmd_clues, 4) +#define penumbra_core_transaction_v1_DetectionData_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_DetectionData_DEFAULT NULL +#define penumbra_core_transaction_v1_DetectionData_fmd_clues_MSGTYPE penumbra_crypto_decaf377_fmd_v1_Clue + +#define penumbra_core_transaction_v1_Action_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (action, spend, action.spend), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (action, output, action.output), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (action, swap, action.swap), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (action, swap_claim, action.swap_claim), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (action, validator_definition, action.validator_definition), 16) \ + X(a, STATIC, ONEOF, MESSAGE, (action, ibc_relay_action, action.ibc_relay_action), 17) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_submit, action.proposal_submit), 18) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_withdraw, action.proposal_withdraw), 19) \ + X(a, STATIC, ONEOF, MESSAGE, (action, validator_vote, action.validator_vote), 20) \ + X(a, STATIC, ONEOF, MESSAGE, (action, delegator_vote, action.delegator_vote), 21) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_deposit_claim, action.proposal_deposit_claim), 22) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_open, action.position_open), 30) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_close, action.position_close), 31) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_withdraw, action.position_withdraw), 32) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_reward_claim, action.position_reward_claim), 34) \ + X(a, STATIC, ONEOF, MESSAGE, (action, delegate, action.delegate), 40) \ + X(a, STATIC, ONEOF, MESSAGE, (action, undelegate, action.undelegate), 41) \ + X(a, STATIC, ONEOF, MESSAGE, (action, undelegate_claim, action.undelegate_claim), 42) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_spend, action.community_pool_spend), 50) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_output, action.community_pool_output), 51) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_deposit, action.community_pool_deposit), 52) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_schedule, action.action_dutch_auction_schedule), 53) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_end, action.action_dutch_auction_end), 54) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_withdraw, action.action_dutch_auction_withdraw), 55) \ + X(a, STATIC, ONEOF, MESSAGE, (action, ics20_withdrawal, action.ics20_withdrawal), 200) +#define penumbra_core_transaction_v1_Action_CALLBACK NULL +#define penumbra_core_transaction_v1_Action_DEFAULT NULL +#define penumbra_core_transaction_v1_Action_action_spend_MSGTYPE penumbra_core_component_shielded_pool_v1_Spend +#define penumbra_core_transaction_v1_Action_action_output_MSGTYPE penumbra_core_component_shielded_pool_v1_Output +#define penumbra_core_transaction_v1_Action_action_swap_MSGTYPE penumbra_core_component_dex_v1_Swap +#define penumbra_core_transaction_v1_Action_action_swap_claim_MSGTYPE penumbra_core_component_dex_v1_SwapClaim +#define penumbra_core_transaction_v1_Action_action_validator_definition_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorDefinition +#define penumbra_core_transaction_v1_Action_action_ibc_relay_action_MSGTYPE penumbra_core_component_ibc_v1_IbcRelay +#define penumbra_core_transaction_v1_Action_action_proposal_submit_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalSubmit +#define penumbra_core_transaction_v1_Action_action_proposal_withdraw_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalWithdraw +#define penumbra_core_transaction_v1_Action_action_validator_vote_MSGTYPE penumbra_core_component_governance_v1_ValidatorVote +#define penumbra_core_transaction_v1_Action_action_delegator_vote_MSGTYPE penumbra_core_component_governance_v1_DelegatorVote +#define penumbra_core_transaction_v1_Action_action_proposal_deposit_claim_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalDepositClaim +#define penumbra_core_transaction_v1_Action_action_position_open_MSGTYPE penumbra_core_component_dex_v1_PositionOpen +#define penumbra_core_transaction_v1_Action_action_position_close_MSGTYPE penumbra_core_component_dex_v1_PositionClose +#define penumbra_core_transaction_v1_Action_action_position_withdraw_MSGTYPE penumbra_core_component_dex_v1_PositionWithdraw +#define penumbra_core_transaction_v1_Action_action_position_reward_claim_MSGTYPE \ + penumbra_core_component_dex_v1_PositionRewardClaim +#define penumbra_core_transaction_v1_Action_action_delegate_MSGTYPE penumbra_core_component_stake_v1_Delegate +#define penumbra_core_transaction_v1_Action_action_undelegate_MSGTYPE penumbra_core_component_stake_v1_Undelegate +#define penumbra_core_transaction_v1_Action_action_undelegate_claim_MSGTYPE penumbra_core_component_stake_v1_UndelegateClaim +#define penumbra_core_transaction_v1_Action_action_community_pool_spend_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolSpend +#define penumbra_core_transaction_v1_Action_action_community_pool_output_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolOutput +#define penumbra_core_transaction_v1_Action_action_community_pool_deposit_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolDeposit +#define penumbra_core_transaction_v1_Action_action_action_dutch_auction_schedule_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule +#define penumbra_core_transaction_v1_Action_action_action_dutch_auction_end_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionEnd +#define penumbra_core_transaction_v1_Action_action_action_dutch_auction_withdraw_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw +#define penumbra_core_transaction_v1_Action_action_ics20_withdrawal_MSGTYPE penumbra_core_component_ibc_v1_Ics20Withdrawal + +#define penumbra_core_transaction_v1_TransactionPerspective_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, payload_keys, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, spend_nullifiers, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, advice_notes, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, address_views, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, denoms, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_id, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, prices, 20) \ + X(a, CALLBACK, REPEATED, MESSAGE, extended_metadata, 30) \ + X(a, CALLBACK, REPEATED, MESSAGE, creation_transaction_ids_by_nullifier, 40) \ + X(a, CALLBACK, REPEATED, MESSAGE, nullification_transaction_ids_by_commitment, 50) \ + X(a, CALLBACK, REPEATED, MESSAGE, batch_swap_output_data, 60) +#define penumbra_core_transaction_v1_TransactionPerspective_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_TransactionPerspective_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionPerspective_payload_keys_MSGTYPE \ + penumbra_core_transaction_v1_PayloadKeyWithCommitment +#define penumbra_core_transaction_v1_TransactionPerspective_spend_nullifiers_MSGTYPE \ + penumbra_core_transaction_v1_NullifierWithNote +#define penumbra_core_transaction_v1_TransactionPerspective_advice_notes_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_Note +#define penumbra_core_transaction_v1_TransactionPerspective_address_views_MSGTYPE penumbra_core_keys_v1_AddressView +#define penumbra_core_transaction_v1_TransactionPerspective_denoms_MSGTYPE penumbra_core_asset_v1_Metadata +#define penumbra_core_transaction_v1_TransactionPerspective_transaction_id_MSGTYPE penumbra_core_txhash_v1_TransactionId +#define penumbra_core_transaction_v1_TransactionPerspective_prices_MSGTYPE penumbra_core_asset_v1_EstimatedPrice +#define penumbra_core_transaction_v1_TransactionPerspective_extended_metadata_MSGTYPE \ + penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById +#define penumbra_core_transaction_v1_TransactionPerspective_creation_transaction_ids_by_nullifier_MSGTYPE \ + penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier +#define penumbra_core_transaction_v1_TransactionPerspective_nullification_transaction_ids_by_commitment_MSGTYPE \ + penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment +#define penumbra_core_transaction_v1_TransactionPerspective_batch_swap_output_data_MSGTYPE \ + penumbra_core_component_dex_v1_BatchSwapOutputData + +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, extended_metadata, 2) +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_CALLBACK NULL +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_asset_id_MSGTYPE \ + penumbra_core_asset_v1_AssetId +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_extended_metadata_MSGTYPE \ + google_protobuf_Any + +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_id, 2) +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_CALLBACK NULL +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_nullifier_MSGTYPE \ + penumbra_core_component_sct_v1_Nullifier +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_transaction_id_MSGTYPE \ + penumbra_core_txhash_v1_TransactionId + +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_id, 2) +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_CALLBACK NULL +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_commitment_MSGTYPE \ + penumbra_crypto_tct_v1_StateCommitment +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_transaction_id_MSGTYPE \ + penumbra_core_txhash_v1_TransactionId + +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, payload_key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 2) +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_CALLBACK NULL +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_DEFAULT NULL +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_payload_key_MSGTYPE penumbra_core_keys_v1_PayloadKey +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_core_transaction_v1_NullifierWithNote_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 2) +#define penumbra_core_transaction_v1_NullifierWithNote_CALLBACK NULL +#define penumbra_core_transaction_v1_NullifierWithNote_DEFAULT NULL +#define penumbra_core_transaction_v1_NullifierWithNote_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_core_transaction_v1_NullifierWithNote_note_MSGTYPE penumbra_core_component_shielded_pool_v1_Note + +#define penumbra_core_transaction_v1_TransactionView_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, body_view, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, binding_sig, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, anchor, 3) +#define penumbra_core_transaction_v1_TransactionView_CALLBACK NULL +#define penumbra_core_transaction_v1_TransactionView_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionView_body_view_MSGTYPE penumbra_core_transaction_v1_TransactionBodyView +#define penumbra_core_transaction_v1_TransactionView_binding_sig_MSGTYPE penumbra_crypto_decaf377_rdsa_v1_BindingSignature +#define penumbra_core_transaction_v1_TransactionView_anchor_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot + +#define penumbra_core_transaction_v1_TransactionBodyView_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, action_views, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_parameters, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, detection_data, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, memo_view, 5) +#define penumbra_core_transaction_v1_TransactionBodyView_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_TransactionBodyView_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionBodyView_action_views_MSGTYPE penumbra_core_transaction_v1_ActionView +#define penumbra_core_transaction_v1_TransactionBodyView_transaction_parameters_MSGTYPE \ + penumbra_core_transaction_v1_TransactionParameters +#define penumbra_core_transaction_v1_TransactionBodyView_detection_data_MSGTYPE penumbra_core_transaction_v1_DetectionData +#define penumbra_core_transaction_v1_TransactionBodyView_memo_view_MSGTYPE penumbra_core_transaction_v1_MemoView + +#define penumbra_core_transaction_v1_ActionView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, spend, action_view.spend), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, output, action_view.output), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, swap, action_view.swap), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, swap_claim, action_view.swap_claim), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, validator_definition, action_view.validator_definition), 16) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, ibc_relay_action, action_view.ibc_relay_action), 17) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, proposal_submit, action_view.proposal_submit), 18) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, proposal_withdraw, action_view.proposal_withdraw), 19) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, validator_vote, action_view.validator_vote), 20) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, delegator_vote, action_view.delegator_vote), 21) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, proposal_deposit_claim, action_view.proposal_deposit_claim), 22) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, position_open, action_view.position_open), 30) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, position_close, action_view.position_close), 31) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, position_withdraw, action_view.position_withdraw), 32) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, position_reward_claim, action_view.position_reward_claim), 34) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, delegate, action_view.delegate), 41) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, undelegate, action_view.undelegate), 42) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, undelegate_claim, action_view.undelegate_claim), 43) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, community_pool_spend, action_view.community_pool_spend), 50) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, community_pool_output, action_view.community_pool_output), 51) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, community_pool_deposit, action_view.community_pool_deposit), 52) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, action_dutch_auction_schedule, action_view.action_dutch_auction_schedule), \ + 53) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, action_dutch_auction_end, action_view.action_dutch_auction_end), 54) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, action_dutch_auction_withdraw, action_view.action_dutch_auction_withdraw), \ + 55) \ + X(a, STATIC, ONEOF, MESSAGE, (action_view, ics20_withdrawal, action_view.ics20_withdrawal), 200) +#define penumbra_core_transaction_v1_ActionView_CALLBACK NULL +#define penumbra_core_transaction_v1_ActionView_DEFAULT NULL +#define penumbra_core_transaction_v1_ActionView_action_view_spend_MSGTYPE penumbra_core_component_shielded_pool_v1_SpendView +#define penumbra_core_transaction_v1_ActionView_action_view_output_MSGTYPE \ + penumbra_core_component_shielded_pool_v1_OutputView +#define penumbra_core_transaction_v1_ActionView_action_view_swap_MSGTYPE penumbra_core_component_dex_v1_SwapView +#define penumbra_core_transaction_v1_ActionView_action_view_swap_claim_MSGTYPE penumbra_core_component_dex_v1_SwapClaimView +#define penumbra_core_transaction_v1_ActionView_action_view_validator_definition_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorDefinition +#define penumbra_core_transaction_v1_ActionView_action_view_ibc_relay_action_MSGTYPE penumbra_core_component_ibc_v1_IbcRelay +#define penumbra_core_transaction_v1_ActionView_action_view_proposal_submit_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalSubmit +#define penumbra_core_transaction_v1_ActionView_action_view_proposal_withdraw_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalWithdraw +#define penumbra_core_transaction_v1_ActionView_action_view_validator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVote +#define penumbra_core_transaction_v1_ActionView_action_view_delegator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVoteView +#define penumbra_core_transaction_v1_ActionView_action_view_proposal_deposit_claim_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalDepositClaim +#define penumbra_core_transaction_v1_ActionView_action_view_position_open_MSGTYPE penumbra_core_component_dex_v1_PositionOpen +#define penumbra_core_transaction_v1_ActionView_action_view_position_close_MSGTYPE \ + penumbra_core_component_dex_v1_PositionClose +#define penumbra_core_transaction_v1_ActionView_action_view_position_withdraw_MSGTYPE \ + penumbra_core_component_dex_v1_PositionWithdraw +#define penumbra_core_transaction_v1_ActionView_action_view_position_reward_claim_MSGTYPE \ + penumbra_core_component_dex_v1_PositionRewardClaim +#define penumbra_core_transaction_v1_ActionView_action_view_delegate_MSGTYPE penumbra_core_component_stake_v1_Delegate +#define penumbra_core_transaction_v1_ActionView_action_view_undelegate_MSGTYPE penumbra_core_component_stake_v1_Undelegate +#define penumbra_core_transaction_v1_ActionView_action_view_undelegate_claim_MSGTYPE \ + penumbra_core_component_stake_v1_UndelegateClaim +#define penumbra_core_transaction_v1_ActionView_action_view_community_pool_spend_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolSpend +#define penumbra_core_transaction_v1_ActionView_action_view_community_pool_output_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolOutput +#define penumbra_core_transaction_v1_ActionView_action_view_community_pool_deposit_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolDeposit +#define penumbra_core_transaction_v1_ActionView_action_view_action_dutch_auction_schedule_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView +#define penumbra_core_transaction_v1_ActionView_action_view_action_dutch_auction_end_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionEnd +#define penumbra_core_transaction_v1_ActionView_action_view_action_dutch_auction_withdraw_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView +#define penumbra_core_transaction_v1_ActionView_action_view_ics20_withdrawal_MSGTYPE \ + penumbra_core_component_ibc_v1_Ics20Withdrawal + +#define penumbra_core_transaction_v1_AuthorizationData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, effect_hash, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, spend_auths, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegator_vote_auths, 3) +#define penumbra_core_transaction_v1_AuthorizationData_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_AuthorizationData_DEFAULT NULL +#define penumbra_core_transaction_v1_AuthorizationData_effect_hash_MSGTYPE penumbra_core_txhash_v1_EffectHash +#define penumbra_core_transaction_v1_AuthorizationData_spend_auths_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature +#define penumbra_core_transaction_v1_AuthorizationData_delegator_vote_auths_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature + +#define penumbra_core_transaction_v1_WitnessData_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, anchor, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, state_commitment_proofs, 2) +#define penumbra_core_transaction_v1_WitnessData_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_WitnessData_DEFAULT NULL +#define penumbra_core_transaction_v1_WitnessData_anchor_MSGTYPE penumbra_crypto_tct_v1_MerkleRoot +#define penumbra_core_transaction_v1_WitnessData_state_commitment_proofs_MSGTYPE penumbra_crypto_tct_v1_StateCommitmentProof + +#define penumbra_core_transaction_v1_TransactionPlan_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, actions, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_parameters, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, detection_data, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, memo, 5) +#define penumbra_core_transaction_v1_TransactionPlan_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_TransactionPlan_DEFAULT NULL +#define penumbra_core_transaction_v1_TransactionPlan_actions_MSGTYPE penumbra_core_transaction_v1_ActionPlan +#define penumbra_core_transaction_v1_TransactionPlan_transaction_parameters_MSGTYPE \ + penumbra_core_transaction_v1_TransactionParameters +#define penumbra_core_transaction_v1_TransactionPlan_detection_data_MSGTYPE penumbra_core_transaction_v1_DetectionDataPlan +#define penumbra_core_transaction_v1_TransactionPlan_memo_MSGTYPE penumbra_core_transaction_v1_MemoPlan + +#define penumbra_core_transaction_v1_DetectionDataPlan_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, clue_plans, 5) +#define penumbra_core_transaction_v1_DetectionDataPlan_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_DetectionDataPlan_DEFAULT NULL +#define penumbra_core_transaction_v1_DetectionDataPlan_clue_plans_MSGTYPE penumbra_core_transaction_v1_CluePlan + +#define penumbra_core_transaction_v1_ActionPlan_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (action, spend, action.spend), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (action, output, action.output), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (action, swap, action.swap), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (action, swap_claim, action.swap_claim), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (action, validator_definition, action.validator_definition), 16) \ + X(a, STATIC, ONEOF, MESSAGE, (action, ibc_relay_action, action.ibc_relay_action), 17) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_submit, action.proposal_submit), 18) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_withdraw, action.proposal_withdraw), 19) \ + X(a, STATIC, ONEOF, MESSAGE, (action, validator_vote, action.validator_vote), 20) \ + X(a, STATIC, ONEOF, MESSAGE, (action, delegator_vote, action.delegator_vote), 21) \ + X(a, STATIC, ONEOF, MESSAGE, (action, proposal_deposit_claim, action.proposal_deposit_claim), 22) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_open, action.position_open), 30) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_close, action.position_close), 31) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_withdraw, action.position_withdraw), 32) \ + X(a, STATIC, ONEOF, MESSAGE, (action, position_reward_claim, action.position_reward_claim), 34) \ + X(a, STATIC, ONEOF, MESSAGE, (action, delegate, action.delegate), 40) \ + X(a, STATIC, ONEOF, MESSAGE, (action, undelegate, action.undelegate), 41) \ + X(a, STATIC, ONEOF, MESSAGE, (action, undelegate_claim, action.undelegate_claim), 42) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_spend, action.community_pool_spend), 50) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_output, action.community_pool_output), 51) \ + X(a, STATIC, ONEOF, MESSAGE, (action, community_pool_deposit, action.community_pool_deposit), 52) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_schedule, action.action_dutch_auction_schedule), 53) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_end, action.action_dutch_auction_end), 54) \ + X(a, STATIC, ONEOF, MESSAGE, (action, action_dutch_auction_withdraw, action.action_dutch_auction_withdraw), 55) \ + X(a, STATIC, ONEOF, MESSAGE, (action, ics20_withdrawal, action.ics20_withdrawal), 200) +#define penumbra_core_transaction_v1_ActionPlan_CALLBACK NULL +#define penumbra_core_transaction_v1_ActionPlan_DEFAULT NULL +#define penumbra_core_transaction_v1_ActionPlan_action_spend_MSGTYPE penumbra_core_component_shielded_pool_v1_SpendPlan +#define penumbra_core_transaction_v1_ActionPlan_action_output_MSGTYPE penumbra_core_component_shielded_pool_v1_OutputPlan +#define penumbra_core_transaction_v1_ActionPlan_action_swap_MSGTYPE penumbra_core_component_dex_v1_SwapPlan +#define penumbra_core_transaction_v1_ActionPlan_action_swap_claim_MSGTYPE penumbra_core_component_dex_v1_SwapClaimPlan +#define penumbra_core_transaction_v1_ActionPlan_action_validator_definition_MSGTYPE \ + penumbra_core_component_stake_v1_ValidatorDefinition +#define penumbra_core_transaction_v1_ActionPlan_action_ibc_relay_action_MSGTYPE penumbra_core_component_ibc_v1_IbcRelay +#define penumbra_core_transaction_v1_ActionPlan_action_proposal_submit_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalSubmit +#define penumbra_core_transaction_v1_ActionPlan_action_proposal_withdraw_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalWithdraw +#define penumbra_core_transaction_v1_ActionPlan_action_validator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVote +#define penumbra_core_transaction_v1_ActionPlan_action_delegator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_DelegatorVotePlan +#define penumbra_core_transaction_v1_ActionPlan_action_proposal_deposit_claim_MSGTYPE \ + penumbra_core_component_governance_v1_ProposalDepositClaim +#define penumbra_core_transaction_v1_ActionPlan_action_position_open_MSGTYPE penumbra_core_component_dex_v1_PositionOpen +#define penumbra_core_transaction_v1_ActionPlan_action_position_close_MSGTYPE penumbra_core_component_dex_v1_PositionClose +#define penumbra_core_transaction_v1_ActionPlan_action_position_withdraw_MSGTYPE \ + penumbra_core_component_dex_v1_PositionWithdrawPlan +#define penumbra_core_transaction_v1_ActionPlan_action_position_reward_claim_MSGTYPE \ + penumbra_core_component_dex_v1_PositionRewardClaimPlan +#define penumbra_core_transaction_v1_ActionPlan_action_delegate_MSGTYPE penumbra_core_component_stake_v1_Delegate +#define penumbra_core_transaction_v1_ActionPlan_action_undelegate_MSGTYPE penumbra_core_component_stake_v1_Undelegate +#define penumbra_core_transaction_v1_ActionPlan_action_undelegate_claim_MSGTYPE \ + penumbra_core_component_stake_v1_UndelegateClaimPlan +#define penumbra_core_transaction_v1_ActionPlan_action_community_pool_spend_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolSpend +#define penumbra_core_transaction_v1_ActionPlan_action_community_pool_output_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolOutput +#define penumbra_core_transaction_v1_ActionPlan_action_community_pool_deposit_MSGTYPE \ + penumbra_core_component_governance_v1_CommunityPoolDeposit +#define penumbra_core_transaction_v1_ActionPlan_action_action_dutch_auction_schedule_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule +#define penumbra_core_transaction_v1_ActionPlan_action_action_dutch_auction_end_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionEnd +#define penumbra_core_transaction_v1_ActionPlan_action_action_dutch_auction_withdraw_MSGTYPE \ + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan +#define penumbra_core_transaction_v1_ActionPlan_action_ics20_withdrawal_MSGTYPE \ + penumbra_core_component_ibc_v1_Ics20Withdrawal + +#define penumbra_core_transaction_v1_CluePlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, rseed, 2) \ + X(a, STATIC, SINGULAR, UINT64, precision_bits, 3) +#define penumbra_core_transaction_v1_CluePlan_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_CluePlan_DEFAULT NULL +#define penumbra_core_transaction_v1_CluePlan_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_transaction_v1_MemoPlan_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, plaintext, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 2) +#define penumbra_core_transaction_v1_MemoPlan_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_MemoPlan_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoPlan_plaintext_MSGTYPE penumbra_core_transaction_v1_MemoPlaintext + +#define penumbra_core_transaction_v1_MemoCiphertext_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_transaction_v1_MemoCiphertext_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_MemoCiphertext_DEFAULT NULL + +#define penumbra_core_transaction_v1_MemoPlaintext_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, return_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, text, 2) +#define penumbra_core_transaction_v1_MemoPlaintext_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_MemoPlaintext_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoPlaintext_return_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_core_transaction_v1_MemoPlaintextView_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, return_address, 1) \ + X(a, CALLBACK, SINGULAR, STRING, text, 2) +#define penumbra_core_transaction_v1_MemoPlaintextView_CALLBACK pb_default_field_callback +#define penumbra_core_transaction_v1_MemoPlaintextView_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoPlaintextView_return_address_MSGTYPE penumbra_core_keys_v1_AddressView + +#define penumbra_core_transaction_v1_MemoView_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (memo_view, visible, memo_view.visible), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (memo_view, opaque, memo_view.opaque), 2) +#define penumbra_core_transaction_v1_MemoView_CALLBACK NULL +#define penumbra_core_transaction_v1_MemoView_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoView_memo_view_visible_MSGTYPE penumbra_core_transaction_v1_MemoView_Visible +#define penumbra_core_transaction_v1_MemoView_memo_view_opaque_MSGTYPE penumbra_core_transaction_v1_MemoView_Opaque + +#define penumbra_core_transaction_v1_MemoView_Visible_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, ciphertext, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, plaintext, 2) +#define penumbra_core_transaction_v1_MemoView_Visible_CALLBACK NULL +#define penumbra_core_transaction_v1_MemoView_Visible_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoView_Visible_ciphertext_MSGTYPE penumbra_core_transaction_v1_MemoCiphertext +#define penumbra_core_transaction_v1_MemoView_Visible_plaintext_MSGTYPE penumbra_core_transaction_v1_MemoPlaintextView + +#define penumbra_core_transaction_v1_MemoView_Opaque_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, ciphertext, 1) +#define penumbra_core_transaction_v1_MemoView_Opaque_CALLBACK NULL +#define penumbra_core_transaction_v1_MemoView_Opaque_DEFAULT NULL +#define penumbra_core_transaction_v1_MemoView_Opaque_ciphertext_MSGTYPE penumbra_core_transaction_v1_MemoCiphertext + +extern const pb_msgdesc_t penumbra_core_transaction_v1_Transaction_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionBody_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionParameters_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_DetectionData_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_Action_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionPerspective_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_PayloadKeyWithCommitment_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_NullifierWithNote_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionView_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionBodyView_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_ActionView_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_AuthorizationData_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_WitnessData_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_TransactionPlan_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_DetectionDataPlan_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_ActionPlan_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_CluePlan_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoPlan_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoCiphertext_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoPlaintext_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoPlaintextView_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoView_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoView_Visible_msg; +extern const pb_msgdesc_t penumbra_core_transaction_v1_MemoView_Opaque_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_transaction_v1_Transaction_fields &penumbra_core_transaction_v1_Transaction_msg +#define penumbra_core_transaction_v1_TransactionBody_fields &penumbra_core_transaction_v1_TransactionBody_msg +#define penumbra_core_transaction_v1_TransactionParameters_fields &penumbra_core_transaction_v1_TransactionParameters_msg +#define penumbra_core_transaction_v1_DetectionData_fields &penumbra_core_transaction_v1_DetectionData_msg +#define penumbra_core_transaction_v1_Action_fields &penumbra_core_transaction_v1_Action_msg +#define penumbra_core_transaction_v1_TransactionPerspective_fields &penumbra_core_transaction_v1_TransactionPerspective_msg +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_fields \ + &penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_msg +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_fields \ + &penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_msg +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_fields \ + &penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_msg +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_fields \ + &penumbra_core_transaction_v1_PayloadKeyWithCommitment_msg +#define penumbra_core_transaction_v1_NullifierWithNote_fields &penumbra_core_transaction_v1_NullifierWithNote_msg +#define penumbra_core_transaction_v1_TransactionView_fields &penumbra_core_transaction_v1_TransactionView_msg +#define penumbra_core_transaction_v1_TransactionBodyView_fields &penumbra_core_transaction_v1_TransactionBodyView_msg +#define penumbra_core_transaction_v1_ActionView_fields &penumbra_core_transaction_v1_ActionView_msg +#define penumbra_core_transaction_v1_AuthorizationData_fields &penumbra_core_transaction_v1_AuthorizationData_msg +#define penumbra_core_transaction_v1_WitnessData_fields &penumbra_core_transaction_v1_WitnessData_msg +#define penumbra_core_transaction_v1_TransactionPlan_fields &penumbra_core_transaction_v1_TransactionPlan_msg +#define penumbra_core_transaction_v1_DetectionDataPlan_fields &penumbra_core_transaction_v1_DetectionDataPlan_msg +#define penumbra_core_transaction_v1_ActionPlan_fields &penumbra_core_transaction_v1_ActionPlan_msg +#define penumbra_core_transaction_v1_CluePlan_fields &penumbra_core_transaction_v1_CluePlan_msg +#define penumbra_core_transaction_v1_MemoPlan_fields &penumbra_core_transaction_v1_MemoPlan_msg +#define penumbra_core_transaction_v1_MemoCiphertext_fields &penumbra_core_transaction_v1_MemoCiphertext_msg +#define penumbra_core_transaction_v1_MemoPlaintext_fields &penumbra_core_transaction_v1_MemoPlaintext_msg +#define penumbra_core_transaction_v1_MemoPlaintextView_fields &penumbra_core_transaction_v1_MemoPlaintextView_msg +#define penumbra_core_transaction_v1_MemoView_fields &penumbra_core_transaction_v1_MemoView_msg +#define penumbra_core_transaction_v1_MemoView_Visible_fields &penumbra_core_transaction_v1_MemoView_Visible_msg +#define penumbra_core_transaction_v1_MemoView_Opaque_fields &penumbra_core_transaction_v1_MemoView_Opaque_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(penumbra_core_component_shielded_pool_v1_Spend_size) && \ + defined(penumbra_core_component_shielded_pool_v1_Output_size) && defined(penumbra_core_component_dex_v1_Swap_size) && \ + defined(penumbra_core_component_dex_v1_SwapClaim_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVote_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdraw_size) && \ + defined(penumbra_core_component_dex_v1_PositionRewardClaim_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaim_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +union penumbra_core_transaction_v1_Action_action_size_union { + char f1[(6 + penumbra_core_component_shielded_pool_v1_Spend_size)]; + char f2[(6 + penumbra_core_component_shielded_pool_v1_Output_size)]; + char f3[(6 + penumbra_core_component_dex_v1_Swap_size)]; + char f4[(6 + penumbra_core_component_dex_v1_SwapClaim_size)]; + char f16[(7 + penumbra_core_component_stake_v1_ValidatorDefinition_size)]; + char f17[(7 + penumbra_core_component_ibc_v1_IbcRelay_size)]; + char f18[(7 + penumbra_core_component_governance_v1_ProposalSubmit_size)]; + char f19[(7 + penumbra_core_component_governance_v1_ProposalWithdraw_size)]; + char f20[(7 + penumbra_core_component_governance_v1_ValidatorVote_size)]; + char f21[(7 + penumbra_core_component_governance_v1_DelegatorVote_size)]; + char f22[(7 + penumbra_core_component_governance_v1_ProposalDepositClaim_size)]; + char f30[(7 + penumbra_core_component_dex_v1_PositionOpen_size)]; + char f31[(7 + penumbra_core_component_dex_v1_PositionClose_size)]; + char f32[(7 + penumbra_core_component_dex_v1_PositionWithdraw_size)]; + char f34[(7 + penumbra_core_component_dex_v1_PositionRewardClaim_size)]; + char f40[(7 + penumbra_core_component_stake_v1_Delegate_size)]; + char f41[(7 + penumbra_core_component_stake_v1_Undelegate_size)]; + char f42[(7 + penumbra_core_component_stake_v1_UndelegateClaim_size)]; + char f50[(7 + penumbra_core_component_governance_v1_CommunityPoolSpend_size)]; + char f51[(7 + penumbra_core_component_governance_v1_CommunityPoolOutput_size)]; + char f52[(7 + penumbra_core_component_governance_v1_CommunityPoolDeposit_size)]; + char f53[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size)]; + char f54[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size)]; + char f55[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_size)]; + char f200[(7 + penumbra_core_component_ibc_v1_Ics20Withdrawal_size)]; +}; +#endif +#if defined(penumbra_core_component_shielded_pool_v1_SpendView_size) && \ + defined(penumbra_core_component_shielded_pool_v1_OutputView_size) && \ + defined(penumbra_core_component_dex_v1_SwapView_size) && defined(penumbra_core_component_dex_v1_SwapClaimView_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVoteView_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdraw_size) && \ + defined(penumbra_core_component_dex_v1_PositionRewardClaim_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaim_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +union penumbra_core_transaction_v1_ActionView_action_view_size_union { + char f1[(6 + penumbra_core_component_shielded_pool_v1_SpendView_size)]; + char f2[(6 + penumbra_core_component_shielded_pool_v1_OutputView_size)]; + char f3[(6 + penumbra_core_component_dex_v1_SwapView_size)]; + char f4[(6 + penumbra_core_component_dex_v1_SwapClaimView_size)]; + char f16[(7 + penumbra_core_component_stake_v1_ValidatorDefinition_size)]; + char f17[(7 + penumbra_core_component_ibc_v1_IbcRelay_size)]; + char f18[(7 + penumbra_core_component_governance_v1_ProposalSubmit_size)]; + char f19[(7 + penumbra_core_component_governance_v1_ProposalWithdraw_size)]; + char f20[(7 + penumbra_core_component_governance_v1_ValidatorVote_size)]; + char f21[(7 + penumbra_core_component_governance_v1_DelegatorVoteView_size)]; + char f22[(7 + penumbra_core_component_governance_v1_ProposalDepositClaim_size)]; + char f30[(7 + penumbra_core_component_dex_v1_PositionOpen_size)]; + char f31[(7 + penumbra_core_component_dex_v1_PositionClose_size)]; + char f32[(7 + penumbra_core_component_dex_v1_PositionWithdraw_size)]; + char f34[(7 + penumbra_core_component_dex_v1_PositionRewardClaim_size)]; + char f41[(7 + penumbra_core_component_stake_v1_Delegate_size)]; + char f42[(7 + penumbra_core_component_stake_v1_Undelegate_size)]; + char f43[(7 + penumbra_core_component_stake_v1_UndelegateClaim_size)]; + char f50[(7 + penumbra_core_component_governance_v1_CommunityPoolSpend_size)]; + char f51[(7 + penumbra_core_component_governance_v1_CommunityPoolOutput_size)]; + char f52[(7 + penumbra_core_component_governance_v1_CommunityPoolDeposit_size)]; + char f53[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_size)]; + char f54[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size)]; + char f55[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_size)]; + char f200[(7 + penumbra_core_component_ibc_v1_Ics20Withdrawal_size)]; +}; +#endif +#if defined(penumbra_core_component_shielded_pool_v1_SpendPlan_size) && \ + defined(penumbra_core_component_shielded_pool_v1_OutputPlan_size) && \ + defined(penumbra_core_component_dex_v1_SwapPlan_size) && defined(penumbra_core_component_dex_v1_SwapClaimPlan_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVotePlan_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdrawPlan_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaimPlan_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +union penumbra_core_transaction_v1_ActionPlan_action_size_union { + char f1[(6 + penumbra_core_component_shielded_pool_v1_SpendPlan_size)]; + char f2[(6 + penumbra_core_component_shielded_pool_v1_OutputPlan_size)]; + char f3[(6 + penumbra_core_component_dex_v1_SwapPlan_size)]; + char f4[(6 + penumbra_core_component_dex_v1_SwapClaimPlan_size)]; + char f16[(7 + penumbra_core_component_stake_v1_ValidatorDefinition_size)]; + char f17[(7 + penumbra_core_component_ibc_v1_IbcRelay_size)]; + char f18[(7 + penumbra_core_component_governance_v1_ProposalSubmit_size)]; + char f19[(7 + penumbra_core_component_governance_v1_ProposalWithdraw_size)]; + char f20[(7 + penumbra_core_component_governance_v1_ValidatorVote_size)]; + char f21[(7 + penumbra_core_component_governance_v1_DelegatorVotePlan_size)]; + char f22[(7 + penumbra_core_component_governance_v1_ProposalDepositClaim_size)]; + char f30[(7 + penumbra_core_component_dex_v1_PositionOpen_size)]; + char f31[(7 + penumbra_core_component_dex_v1_PositionClose_size)]; + char f32[(7 + penumbra_core_component_dex_v1_PositionWithdrawPlan_size)]; + char f40[(7 + penumbra_core_component_stake_v1_Delegate_size)]; + char f41[(7 + penumbra_core_component_stake_v1_Undelegate_size)]; + char f42[(7 + penumbra_core_component_stake_v1_UndelegateClaimPlan_size)]; + char f50[(7 + penumbra_core_component_governance_v1_CommunityPoolSpend_size)]; + char f51[(7 + penumbra_core_component_governance_v1_CommunityPoolOutput_size)]; + char f52[(7 + penumbra_core_component_governance_v1_CommunityPoolDeposit_size)]; + char f53[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size)]; + char f54[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size)]; + char f55[(7 + penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_size)]; + char f200[(7 + penumbra_core_component_ibc_v1_Ics20Withdrawal_size)]; + char f0[53]; +}; +#endif +/* penumbra_core_transaction_v1_Transaction_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionBody_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionParameters_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_DetectionData_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionPerspective_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionView_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionBodyView_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_AuthorizationData_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_WitnessData_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_TransactionPlan_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_DetectionDataPlan_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_CluePlan_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoPlan_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoCiphertext_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoPlaintext_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoPlaintextView_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoView_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoView_Visible_size depends on runtime parameters */ +/* penumbra_core_transaction_v1_MemoView_Opaque_size depends on runtime parameters */ +#if defined(penumbra_core_component_shielded_pool_v1_Spend_size) && \ + defined(penumbra_core_component_shielded_pool_v1_Output_size) && defined(penumbra_core_component_dex_v1_Swap_size) && \ + defined(penumbra_core_component_dex_v1_SwapClaim_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVote_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdraw_size) && \ + defined(penumbra_core_component_dex_v1_PositionRewardClaim_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaim_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdraw_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +#define penumbra_core_transaction_v1_Action_size (0 + sizeof(union penumbra_core_transaction_v1_Action_action_size_union)) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(google_protobuf_Any_size) +#define PENUMBRA_CORE_TRANSACTION_V1_PENUMBRA_CORE_TRANSACTION_V1_TRANSACTION_PB_H_MAX_SIZE \ + penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_size +#define penumbra_core_transaction_v1_TransactionPerspective_ExtendedMetadataById_size \ + (12 + penumbra_core_asset_v1_AssetId_size + google_protobuf_Any_size) +#endif +#if defined(penumbra_core_component_sct_v1_Nullifier_size) && defined(penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_core_transaction_v1_TransactionPerspective_CreationTransactionIdByNullifier_size \ + (12 + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_txhash_v1_TransactionId_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_core_transaction_v1_TransactionPerspective_NullificationTransactionIdByCommitment_size \ + (12 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_txhash_v1_TransactionId_size) +#endif +#if defined(penumbra_core_keys_v1_PayloadKey_size) && defined(penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_core_transaction_v1_PayloadKeyWithCommitment_size \ + (12 + penumbra_core_keys_v1_PayloadKey_size + penumbra_crypto_tct_v1_StateCommitment_size) +#endif +#if defined(penumbra_core_component_sct_v1_Nullifier_size) && defined(penumbra_core_component_shielded_pool_v1_Note_size) +#define penumbra_core_transaction_v1_NullifierWithNote_size \ + (12 + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_component_shielded_pool_v1_Note_size) +#endif +#if defined(penumbra_core_component_shielded_pool_v1_SpendView_size) && \ + defined(penumbra_core_component_shielded_pool_v1_OutputView_size) && \ + defined(penumbra_core_component_dex_v1_SwapView_size) && defined(penumbra_core_component_dex_v1_SwapClaimView_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVoteView_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdraw_size) && \ + defined(penumbra_core_component_dex_v1_PositionRewardClaim_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaim_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionScheduleView_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawView_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +#define penumbra_core_transaction_v1_ActionView_size \ + (0 + sizeof(union penumbra_core_transaction_v1_ActionView_action_view_size_union)) +#endif +#if defined(penumbra_core_component_shielded_pool_v1_SpendPlan_size) && \ + defined(penumbra_core_component_shielded_pool_v1_OutputPlan_size) && \ + defined(penumbra_core_component_dex_v1_SwapPlan_size) && defined(penumbra_core_component_dex_v1_SwapClaimPlan_size) && \ + defined(penumbra_core_component_stake_v1_ValidatorDefinition_size) && \ + defined(penumbra_core_component_ibc_v1_IbcRelay_size) && \ + defined(penumbra_core_component_governance_v1_ProposalSubmit_size) && \ + defined(penumbra_core_component_governance_v1_ProposalWithdraw_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVote_size) && \ + defined(penumbra_core_component_governance_v1_DelegatorVotePlan_size) && \ + defined(penumbra_core_component_governance_v1_ProposalDepositClaim_size) && \ + defined(penumbra_core_component_dex_v1_PositionOpen_size) && \ + defined(penumbra_core_component_dex_v1_PositionClose_size) && \ + defined(penumbra_core_component_dex_v1_PositionWithdrawPlan_size) && \ + defined(penumbra_core_component_stake_v1_Delegate_size) && defined(penumbra_core_component_stake_v1_Undelegate_size) && \ + defined(penumbra_core_component_stake_v1_UndelegateClaimPlan_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolSpend_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolOutput_size) && \ + defined(penumbra_core_component_governance_v1_CommunityPoolDeposit_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionSchedule_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionEnd_size) && \ + defined(penumbra_core_component_auction_v1_ActionDutchAuctionWithdrawPlan_size) && \ + defined(penumbra_core_component_ibc_v1_Ics20Withdrawal_size) +#define penumbra_core_transaction_v1_ActionPlan_size \ + (0 + sizeof(union penumbra_core_transaction_v1_ActionPlan_action_size_union)) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.c b/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.c new file mode 100644 index 0000000..c336e11 --- /dev/null +++ b/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/core/txhash/v1/txhash.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_core_txhash_v1_EffectHash, penumbra_core_txhash_v1_EffectHash, AUTO) + +PB_BIND(penumbra_core_txhash_v1_TransactionId, penumbra_core_txhash_v1_TransactionId, AUTO) diff --git a/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.h b/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.h new file mode 100644 index 0000000..13d9976 --- /dev/null +++ b/app/src/protobuf/penumbra/core/txhash/v1/txhash.pb.h @@ -0,0 +1,76 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CORE_TXHASH_V1_PENUMBRA_CORE_TXHASH_V1_TXHASH_PB_H_INCLUDED +#define PB_PENUMBRA_CORE_TXHASH_V1_PENUMBRA_CORE_TXHASH_V1_TXHASH_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* The hash of a Penumbra transaction's _effecting data_, describing the effects + of the transaction on the chain state. */ +typedef struct _penumbra_core_txhash_v1_EffectHash { + pb_callback_t inner; +} penumbra_core_txhash_v1_EffectHash; + +/* A transaction ID, the Sha256 hash of a transaction. + + This is the hash of the plain byte encoding, used by Tendermint. */ +typedef struct _penumbra_core_txhash_v1_TransactionId { + pb_callback_t inner; +} penumbra_core_txhash_v1_TransactionId; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_core_txhash_v1_EffectHash_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_txhash_v1_TransactionId_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_txhash_v1_EffectHash_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_core_txhash_v1_TransactionId_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_core_txhash_v1_EffectHash_inner_tag 1 +#define penumbra_core_txhash_v1_TransactionId_inner_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_core_txhash_v1_EffectHash_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_txhash_v1_EffectHash_CALLBACK pb_default_field_callback +#define penumbra_core_txhash_v1_EffectHash_DEFAULT NULL + +#define penumbra_core_txhash_v1_TransactionId_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_core_txhash_v1_TransactionId_CALLBACK pb_default_field_callback +#define penumbra_core_txhash_v1_TransactionId_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_core_txhash_v1_EffectHash_msg; +extern const pb_msgdesc_t penumbra_core_txhash_v1_TransactionId_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_core_txhash_v1_EffectHash_fields &penumbra_core_txhash_v1_EffectHash_msg +#define penumbra_core_txhash_v1_TransactionId_fields &penumbra_core_txhash_v1_TransactionId_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_core_txhash_v1_EffectHash_size depends on runtime parameters */ +/* penumbra_core_txhash_v1_TransactionId_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.c b/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.c new file mode 100644 index 0000000..8b4881f --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_crypto_decaf377_fmd_v1_Clue, penumbra_crypto_decaf377_fmd_v1_Clue, AUTO) diff --git a/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h b/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h new file mode 100644 index 0000000..ea3973e --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.pb.h @@ -0,0 +1,52 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CRYPTO_DECAF377_FMD_V1_PENUMBRA_CRYPTO_DECAF377_FMD_V1_DECAF377_FMD_PB_H_INCLUDED +#define PB_PENUMBRA_CRYPTO_DECAF377_FMD_V1_PENUMBRA_CRYPTO_DECAF377_FMD_V1_DECAF377_FMD_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A clue for use with Fuzzy Message Detection. */ +typedef struct _penumbra_crypto_decaf377_fmd_v1_Clue { + pb_callback_t inner; +} penumbra_crypto_decaf377_fmd_v1_Clue; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_crypto_decaf377_fmd_v1_Clue_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_fmd_v1_Clue_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_crypto_decaf377_fmd_v1_Clue_inner_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_crypto_decaf377_fmd_v1_Clue_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_decaf377_fmd_v1_Clue_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_fmd_v1_Clue_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_crypto_decaf377_fmd_v1_Clue_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_crypto_decaf377_fmd_v1_Clue_fields &penumbra_crypto_decaf377_fmd_v1_Clue_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_crypto_decaf377_fmd_v1_Clue_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.c b/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.c new file mode 100644 index 0000000..5f71591 --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.c @@ -0,0 +1,22 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment, + penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_DKGRound1Package, penumbra_crypto_decaf377_frost_v1_DKGRound1Package, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_SigningShare, penumbra_crypto_decaf377_frost_v1_SigningShare, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_DKGRound2Package, penumbra_crypto_decaf377_frost_v1_DKGRound2Package, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_NonceCommitment, penumbra_crypto_decaf377_frost_v1_NonceCommitment, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_SigningCommitments, penumbra_crypto_decaf377_frost_v1_SigningCommitments, AUTO) + +PB_BIND(penumbra_crypto_decaf377_frost_v1_SignatureShare, penumbra_crypto_decaf377_frost_v1_SignatureShare, AUTO) diff --git a/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h b/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h new file mode 100644 index 0000000..30b1d46 --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h @@ -0,0 +1,206 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CRYPTO_DECAF377_FROST_V1_PENUMBRA_CRYPTO_DECAF377_FROST_V1_DECAF377_FROST_PB_H_INCLUDED +#define PB_PENUMBRA_CRYPTO_DECAF377_FROST_V1_PENUMBRA_CRYPTO_DECAF377_FROST_V1_DECAF377_FROST_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A commitment to a polynomial, as a list of group elements. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment { + /* Each of these bytes should be the serialization of a group element. */ + pb_callback_t elements; +} penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment; + +/* The public package sent in round 1 of the DKG protocol. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_DKGRound1Package { + /* A commitment to the polynomial for secret sharing. */ + bool has_commitment; + penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment commitment; + /* A proof of knowledge of the underlying secret being shared. */ + pb_callback_t proof_of_knowledge; +} penumbra_crypto_decaf377_frost_v1_DKGRound1Package; + +/* A share of the final signing key. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_SigningShare { + /* These bytes should be a valid scalar. */ + pb_callback_t scalar; +} penumbra_crypto_decaf377_frost_v1_SigningShare; + +/* The per-participant package sent in round 2 of the DKG protocol. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_DKGRound2Package { + /* This is the share we're sending to that participant. */ + bool has_signing_share; + penumbra_crypto_decaf377_frost_v1_SigningShare signing_share; +} penumbra_crypto_decaf377_frost_v1_DKGRound2Package; + +/* Represents a commitment to a nonce value. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_NonceCommitment { + /* These bytes should be a valid group element. */ + pb_callback_t element; +} penumbra_crypto_decaf377_frost_v1_NonceCommitment; + +/* Represents the commitments to nonces needed for signing. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_SigningCommitments { + /* One nonce to hide them. */ + bool has_hiding; + penumbra_crypto_decaf377_frost_v1_NonceCommitment hiding; + /* Another to bind them. */ + bool has_binding; + penumbra_crypto_decaf377_frost_v1_NonceCommitment binding; +} penumbra_crypto_decaf377_frost_v1_SigningCommitments; + +/* A share of the final signature. These get aggregated to make the actual thing. */ +typedef struct _penumbra_crypto_decaf377_frost_v1_SignatureShare { + /* These bytes should be a valid scalar. */ + pb_callback_t scalar; +} penumbra_crypto_decaf377_frost_v1_SignatureShare; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_init_default \ + { \ + false, penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_init_default, { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_SigningShare_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_init_default \ + { false, penumbra_crypto_decaf377_frost_v1_SigningShare_init_default } +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_init_default \ + { \ + false, penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_default, false, \ + penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_default \ + } +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_init_zero \ + { \ + false, penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_init_zero, { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_SigningShare_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_init_zero \ + { false, penumbra_crypto_decaf377_frost_v1_SigningShare_init_zero } +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_init_zero \ + { \ + false, penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_zero, false, \ + penumbra_crypto_decaf377_frost_v1_NonceCommitment_init_zero \ + } +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_elements_tag 1 +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_commitment_tag 1 +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_proof_of_knowledge_tag 2 +#define penumbra_crypto_decaf377_frost_v1_SigningShare_scalar_tag 1 +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_signing_share_tag 1 +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_element_tag 1 +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_hiding_tag 1 +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_binding_tag 2 +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_scalar_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, BYTES, elements, 1) +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_DEFAULT NULL + +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitment, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, proof_of_knowledge, 2) +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_DEFAULT NULL +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_commitment_MSGTYPE \ + penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment + +#define penumbra_crypto_decaf377_frost_v1_SigningShare_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, scalar, 1) +#define penumbra_crypto_decaf377_frost_v1_SigningShare_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_frost_v1_SigningShare_DEFAULT NULL + +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, signing_share, 1) +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_CALLBACK NULL +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_DEFAULT NULL +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_signing_share_MSGTYPE \ + penumbra_crypto_decaf377_frost_v1_SigningShare + +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, element, 1) +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_DEFAULT NULL + +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, hiding, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, binding, 2) +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_CALLBACK NULL +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_DEFAULT NULL +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_hiding_MSGTYPE penumbra_crypto_decaf377_frost_v1_NonceCommitment +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_binding_MSGTYPE \ + penumbra_crypto_decaf377_frost_v1_NonceCommitment + +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, scalar, 1) +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_DKGRound1Package_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_SigningShare_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_DKGRound2Package_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_NonceCommitment_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_SigningCommitments_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_frost_v1_SignatureShare_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_fields \ + &penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_msg +#define penumbra_crypto_decaf377_frost_v1_DKGRound1Package_fields &penumbra_crypto_decaf377_frost_v1_DKGRound1Package_msg +#define penumbra_crypto_decaf377_frost_v1_SigningShare_fields &penumbra_crypto_decaf377_frost_v1_SigningShare_msg +#define penumbra_crypto_decaf377_frost_v1_DKGRound2Package_fields &penumbra_crypto_decaf377_frost_v1_DKGRound2Package_msg +#define penumbra_crypto_decaf377_frost_v1_NonceCommitment_fields &penumbra_crypto_decaf377_frost_v1_NonceCommitment_msg +#define penumbra_crypto_decaf377_frost_v1_SigningCommitments_fields &penumbra_crypto_decaf377_frost_v1_SigningCommitments_msg +#define penumbra_crypto_decaf377_frost_v1_SignatureShare_fields &penumbra_crypto_decaf377_frost_v1_SignatureShare_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_crypto_decaf377_frost_v1_VerifiableSecretSharingCommitment_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_DKGRound1Package_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_SigningShare_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_DKGRound2Package_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_NonceCommitment_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_SigningCommitments_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_frost_v1_SignatureShare_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.c b/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.c new file mode 100644 index 0000000..054711c --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature, penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature, AUTO) + +PB_BIND(penumbra_crypto_decaf377_rdsa_v1_BindingSignature, penumbra_crypto_decaf377_rdsa_v1_BindingSignature, AUTO) + +PB_BIND(penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey, penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey, AUTO) diff --git a/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h b/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h new file mode 100644 index 0000000..e1fe44f --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h @@ -0,0 +1,92 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CRYPTO_DECAF377_RDSA_V1_PENUMBRA_CRYPTO_DECAF377_RDSA_V1_DECAF377_RDSA_PB_H_INCLUDED +#define PB_PENUMBRA_CRYPTO_DECAF377_RDSA_V1_PENUMBRA_CRYPTO_DECAF377_RDSA_V1_DECAF377_RDSA_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature { + pb_callback_t inner; +} penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature; + +typedef struct _penumbra_crypto_decaf377_rdsa_v1_BindingSignature { + pb_callback_t inner; +} penumbra_crypto_decaf377_rdsa_v1_BindingSignature; + +typedef struct _penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey { + pb_callback_t inner; +} penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_inner_tag 1 +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_inner_tag 1 +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_inner_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_DEFAULT NULL + +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_DEFAULT NULL + +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_CALLBACK pb_default_field_callback +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_rdsa_v1_BindingSignature_msg; +extern const pb_msgdesc_t penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_fields &penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_msg +#define penumbra_crypto_decaf377_rdsa_v1_BindingSignature_fields &penumbra_crypto_decaf377_rdsa_v1_BindingSignature_msg +#define penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_fields \ + &penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_rdsa_v1_BindingSignature_size depends on runtime parameters */ +/* penumbra_crypto_decaf377_rdsa_v1_SpendVerificationKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.c b/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.c new file mode 100644 index 0000000..d9173af --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/crypto/tct/v1/tct.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_crypto_tct_v1_StateCommitment, penumbra_crypto_tct_v1_StateCommitment, AUTO) + +PB_BIND(penumbra_crypto_tct_v1_MerkleRoot, penumbra_crypto_tct_v1_MerkleRoot, AUTO) + +PB_BIND(penumbra_crypto_tct_v1_StateCommitmentProof, penumbra_crypto_tct_v1_StateCommitmentProof, AUTO) + +PB_BIND(penumbra_crypto_tct_v1_MerklePathChunk, penumbra_crypto_tct_v1_MerklePathChunk, AUTO) diff --git a/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.h b/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.h new file mode 100644 index 0000000..ac3b981 --- /dev/null +++ b/app/src/protobuf/penumbra/crypto/tct/v1/tct.pb.h @@ -0,0 +1,130 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CRYPTO_TCT_V1_PENUMBRA_CRYPTO_TCT_V1_TCT_PB_H_INCLUDED +#define PB_PENUMBRA_CRYPTO_TCT_V1_PENUMBRA_CRYPTO_TCT_V1_TCT_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_crypto_tct_v1_StateCommitment { + pb_callback_t inner; +} penumbra_crypto_tct_v1_StateCommitment; + +typedef struct _penumbra_crypto_tct_v1_MerkleRoot { + pb_callback_t inner; +} penumbra_crypto_tct_v1_MerkleRoot; + +/* An authentication path from a state commitment to the root of the state commitment tree. */ +typedef struct _penumbra_crypto_tct_v1_StateCommitmentProof { + bool has_note_commitment; + penumbra_crypto_tct_v1_StateCommitment note_commitment; + uint64_t position; + pb_callback_t auth_path; /* always length 24 */ +} penumbra_crypto_tct_v1_StateCommitmentProof; + +/* A set of 3 sibling hashes in the auth path for some note commitment. */ +typedef struct _penumbra_crypto_tct_v1_MerklePathChunk { + pb_callback_t sibling_1; + pb_callback_t sibling_2; + pb_callback_t sibling_3; +} penumbra_crypto_tct_v1_MerklePathChunk; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_crypto_tct_v1_StateCommitment_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_MerkleRoot_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_StateCommitmentProof_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, 0, { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_MerklePathChunk_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_StateCommitment_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_MerkleRoot_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_StateCommitmentProof_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, 0, { {NULL}, NULL } \ + } +#define penumbra_crypto_tct_v1_MerklePathChunk_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_crypto_tct_v1_StateCommitment_inner_tag 1 +#define penumbra_crypto_tct_v1_MerkleRoot_inner_tag 1 +#define penumbra_crypto_tct_v1_StateCommitmentProof_note_commitment_tag 1 +#define penumbra_crypto_tct_v1_StateCommitmentProof_position_tag 2 +#define penumbra_crypto_tct_v1_StateCommitmentProof_auth_path_tag 3 +#define penumbra_crypto_tct_v1_MerklePathChunk_sibling_1_tag 1 +#define penumbra_crypto_tct_v1_MerklePathChunk_sibling_2_tag 2 +#define penumbra_crypto_tct_v1_MerklePathChunk_sibling_3_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_crypto_tct_v1_StateCommitment_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_tct_v1_StateCommitment_CALLBACK pb_default_field_callback +#define penumbra_crypto_tct_v1_StateCommitment_DEFAULT NULL + +#define penumbra_crypto_tct_v1_MerkleRoot_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_crypto_tct_v1_MerkleRoot_CALLBACK pb_default_field_callback +#define penumbra_crypto_tct_v1_MerkleRoot_DEFAULT NULL + +#define penumbra_crypto_tct_v1_StateCommitmentProof_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_commitment, 1) \ + X(a, STATIC, SINGULAR, UINT64, position, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, auth_path, 3) +#define penumbra_crypto_tct_v1_StateCommitmentProof_CALLBACK pb_default_field_callback +#define penumbra_crypto_tct_v1_StateCommitmentProof_DEFAULT NULL +#define penumbra_crypto_tct_v1_StateCommitmentProof_note_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_crypto_tct_v1_StateCommitmentProof_auth_path_MSGTYPE penumbra_crypto_tct_v1_MerklePathChunk + +#define penumbra_crypto_tct_v1_MerklePathChunk_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, sibling_1, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, sibling_2, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, sibling_3, 3) +#define penumbra_crypto_tct_v1_MerklePathChunk_CALLBACK pb_default_field_callback +#define penumbra_crypto_tct_v1_MerklePathChunk_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_crypto_tct_v1_StateCommitment_msg; +extern const pb_msgdesc_t penumbra_crypto_tct_v1_MerkleRoot_msg; +extern const pb_msgdesc_t penumbra_crypto_tct_v1_StateCommitmentProof_msg; +extern const pb_msgdesc_t penumbra_crypto_tct_v1_MerklePathChunk_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_crypto_tct_v1_StateCommitment_fields &penumbra_crypto_tct_v1_StateCommitment_msg +#define penumbra_crypto_tct_v1_MerkleRoot_fields &penumbra_crypto_tct_v1_MerkleRoot_msg +#define penumbra_crypto_tct_v1_StateCommitmentProof_fields &penumbra_crypto_tct_v1_StateCommitmentProof_msg +#define penumbra_crypto_tct_v1_MerklePathChunk_fields &penumbra_crypto_tct_v1_MerklePathChunk_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_crypto_tct_v1_StateCommitment_size depends on runtime parameters */ +/* penumbra_crypto_tct_v1_MerkleRoot_size depends on runtime parameters */ +/* penumbra_crypto_tct_v1_StateCommitmentProof_size depends on runtime parameters */ +/* penumbra_crypto_tct_v1_MerklePathChunk_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.c b/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.c new file mode 100644 index 0000000..ed19316 --- /dev/null +++ b/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.c @@ -0,0 +1,38 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/custody/threshold/v1/threshold.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_custody_threshold_v1_VerificationKey, penumbra_custody_threshold_v1_VerificationKey, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_Signature, penumbra_custody_threshold_v1_Signature, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_CoordinatorRound1, penumbra_custody_threshold_v1_CoordinatorRound1, 2) + +PB_BIND(penumbra_custody_threshold_v1_CoordinatorRound2, penumbra_custody_threshold_v1_CoordinatorRound2, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments, + penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage, + penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_FollowerRound1, penumbra_custody_threshold_v1_FollowerRound1, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_FollowerRound1_Inner, penumbra_custody_threshold_v1_FollowerRound1_Inner, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_FollowerRound2, penumbra_custody_threshold_v1_FollowerRound2, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_FollowerRound2_Inner, penumbra_custody_threshold_v1_FollowerRound2_Inner, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_DKGRound1, penumbra_custody_threshold_v1_DKGRound1, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_DKGRound2, penumbra_custody_threshold_v1_DKGRound2, AUTO) + +PB_BIND(penumbra_custody_threshold_v1_DKGRound2_TargetedPackage, penumbra_custody_threshold_v1_DKGRound2_TargetedPackage, + AUTO) + +PB_BIND(penumbra_custody_threshold_v1_DKGRound2_Inner, penumbra_custody_threshold_v1_DKGRound2_Inner, AUTO) diff --git a/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.h b/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.h new file mode 100644 index 0000000..769a135 --- /dev/null +++ b/app/src/protobuf/penumbra/custody/threshold/v1/threshold.pb.h @@ -0,0 +1,471 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CUSTODY_THRESHOLD_V1_PENUMBRA_CUSTODY_THRESHOLD_V1_THRESHOLD_PB_H_INCLUDED +#define PB_PENUMBRA_CUSTODY_THRESHOLD_V1_PENUMBRA_CUSTODY_THRESHOLD_V1_THRESHOLD_PB_H_INCLUDED +#include + +#include "penumbra/core/component/governance/v1/governance.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/transaction/v1/transaction.pb.h" +#include "penumbra/crypto/decaf377_frost/v1/decaf377_frost.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* A key one can use to verify signatures. + + This key can also serve as a unique identifier for users. */ +typedef struct _penumbra_custody_threshold_v1_VerificationKey { + pb_callback_t inner; +} penumbra_custody_threshold_v1_VerificationKey; + +/* A signature proving that a message was created by the owner of a verification key. */ +typedef struct _penumbra_custody_threshold_v1_Signature { + pb_callback_t inner; +} penumbra_custody_threshold_v1_Signature; + +/* The message the coordinator sends in round 1 of the signing protocol. */ +typedef struct _penumbra_custody_threshold_v1_CoordinatorRound1 { + pb_size_t which_request; + union { + /* The plan that the coordinator would like the followers to sign. */ + penumbra_core_transaction_v1_TransactionPlan plan; + /* The validator definition the coordinator would like the followers to sign. */ + penumbra_core_component_stake_v1_Validator validator_definition; + /* The validator vote the coordinator would like the followers to sign. */ + penumbra_core_component_governance_v1_ValidatorVoteBody validator_vote; + } request; +} penumbra_custody_threshold_v1_CoordinatorRound1; + +/* The message the coordinator sends in round 2 of the signing protocol. */ +typedef struct _penumbra_custody_threshold_v1_CoordinatorRound2 { + /* The underlying signing packages being sent to the followers, for each signature. */ + pb_callback_t signing_packages; +} penumbra_custody_threshold_v1_CoordinatorRound2; + +/* A commitment along with a FROST identifier. */ +typedef struct _penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments { + /* The serialization of a FROST identifier. */ + pb_callback_t identifier; + /* The commitments this person has produced for this round of signing. */ + bool has_commitments; + penumbra_crypto_decaf377_frost_v1_SigningCommitments commitments; +} penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments; + +/* A FROST signing package without a message. + + We structure things this way because the message is derived from the transaction plan. + FROST expects the signing package to include the identified commitments *and* + the message, but we have no need to include the message. */ +typedef struct _penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage { + pb_callback_t all_commitments; +} penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage; + +/* The inner message that will be signed by the follower. */ +typedef struct _penumbra_custody_threshold_v1_FollowerRound1_Inner { + /* One signing commitment pair for each signature requested by the plan, in order. */ + pb_callback_t commitments; +} penumbra_custody_threshold_v1_FollowerRound1_Inner; + +/* The first message the followers send back to the coordinator when signing. */ +typedef struct _penumbra_custody_threshold_v1_FollowerRound1 { + bool has_inner; + penumbra_custody_threshold_v1_FollowerRound1_Inner inner; + /* The verification key identifying the sender. */ + bool has_pk; + penumbra_custody_threshold_v1_VerificationKey pk; + /* A signature over the proto-encoded bytes of inner. */ + bool has_sig; + penumbra_custody_threshold_v1_Signature sig; +} penumbra_custody_threshold_v1_FollowerRound1; + +/* The inner message that will be signed by the follower. */ +typedef struct _penumbra_custody_threshold_v1_FollowerRound2_Inner { + /* One share for each signature requested by the plan, in order. */ + pb_callback_t shares; +} penumbra_custody_threshold_v1_FollowerRound2_Inner; + +/* The second message the followers send back to the coordinator when signing. */ +typedef struct _penumbra_custody_threshold_v1_FollowerRound2 { + bool has_inner; + penumbra_custody_threshold_v1_FollowerRound2_Inner inner; + /* The verification key identifying the sender. */ + bool has_pk; + penumbra_custody_threshold_v1_VerificationKey pk; + /* A signature over the proto-encoded bytes of inner. */ + bool has_sig; + penumbra_custody_threshold_v1_Signature sig; +} penumbra_custody_threshold_v1_FollowerRound2; + +/* The first message we broadcast in the DKG protocol. */ +typedef struct _penumbra_custody_threshold_v1_DKGRound1 { + /* The package we're sending to other people */ + bool has_pkg; + penumbra_crypto_decaf377_frost_v1_DKGRound1Package pkg; + /* A commitment to a share of the nullifier-deriving key */ + pb_callback_t nullifier_commitment; + /* An encryption key for the second round. */ + pb_callback_t epk; + /* A verification key establishing an identity for the sender of this message. */ + pb_callback_t vk; +} penumbra_custody_threshold_v1_DKGRound1; + +/* A round2 package, encrypted, along with an identifier for the recipient. */ +typedef struct _penumbra_custody_threshold_v1_DKGRound2_TargetedPackage { + /* A verification key identifying the recipient. */ + pb_callback_t vk; + /* The ciphertext of an encrypted frost package for round 2. */ + pb_callback_t encrypted_package; +} penumbra_custody_threshold_v1_DKGRound2_TargetedPackage; + +/* An inner message that will be signed. */ +typedef struct _penumbra_custody_threshold_v1_DKGRound2_Inner { + /* Encrypted packages for each recipient. */ + pb_callback_t encrypted_packages; + /* An opening of the share of the nullifier-deriving key commitment */ + pb_callback_t nullifier; +} penumbra_custody_threshold_v1_DKGRound2_Inner; + +/* The second message we broadcast in the DKG protocol. */ +typedef struct _penumbra_custody_threshold_v1_DKGRound2 { + bool has_inner; + penumbra_custody_threshold_v1_DKGRound2_Inner inner; + /* The verification key identifying the sender. */ + pb_callback_t vk; + /* A signature over the proto-encoded inner message. */ + pb_callback_t sig; +} penumbra_custody_threshold_v1_DKGRound2; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_custody_threshold_v1_VerificationKey_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_Signature_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound1_init_default \ + { \ + 0, { penumbra_core_transaction_v1_TransactionPlan_init_default } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound2_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_init_default \ + { {{NULL}, NULL}, false, penumbra_crypto_decaf377_frost_v1_SigningCommitments_init_default } +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_FollowerRound1_init_default \ + { \ + false, penumbra_custody_threshold_v1_FollowerRound1_Inner_init_default, false, \ + penumbra_custody_threshold_v1_VerificationKey_init_default, false, \ + penumbra_custody_threshold_v1_Signature_init_default \ + } +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_FollowerRound2_init_default \ + { \ + false, penumbra_custody_threshold_v1_FollowerRound2_Inner_init_default, false, \ + penumbra_custody_threshold_v1_VerificationKey_init_default, false, \ + penumbra_custody_threshold_v1_Signature_init_default \ + } +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_init_default \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound1_init_default \ + { \ + false, penumbra_crypto_decaf377_frost_v1_DKGRound1Package_init_default, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_init_default \ + { \ + false, penumbra_custody_threshold_v1_DKGRound2_Inner_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_Inner_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_VerificationKey_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_Signature_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound1_init_zero \ + { \ + 0, { penumbra_core_transaction_v1_TransactionPlan_init_zero } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound2_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_init_zero \ + { {{NULL}, NULL}, false, penumbra_crypto_decaf377_frost_v1_SigningCommitments_init_zero } +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_FollowerRound1_init_zero \ + { \ + false, penumbra_custody_threshold_v1_FollowerRound1_Inner_init_zero, false, \ + penumbra_custody_threshold_v1_VerificationKey_init_zero, false, \ + penumbra_custody_threshold_v1_Signature_init_zero \ + } +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_FollowerRound2_init_zero \ + { \ + false, penumbra_custody_threshold_v1_FollowerRound2_Inner_init_zero, false, \ + penumbra_custody_threshold_v1_VerificationKey_init_zero, false, \ + penumbra_custody_threshold_v1_Signature_init_zero \ + } +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound1_init_zero \ + { \ + false, penumbra_crypto_decaf377_frost_v1_DKGRound1Package_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_init_zero \ + { \ + false, penumbra_custody_threshold_v1_DKGRound2_Inner_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_threshold_v1_DKGRound2_Inner_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_custody_threshold_v1_VerificationKey_inner_tag 1 +#define penumbra_custody_threshold_v1_Signature_inner_tag 1 +#define penumbra_custody_threshold_v1_CoordinatorRound1_plan_tag 1 +#define penumbra_custody_threshold_v1_CoordinatorRound1_validator_definition_tag 2 +#define penumbra_custody_threshold_v1_CoordinatorRound1_validator_vote_tag 3 +#define penumbra_custody_threshold_v1_CoordinatorRound2_signing_packages_tag 1 +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_identifier_tag 1 +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_commitments_tag 2 +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_all_commitments_tag 1 +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_commitments_tag 1 +#define penumbra_custody_threshold_v1_FollowerRound1_inner_tag 1 +#define penumbra_custody_threshold_v1_FollowerRound1_pk_tag 2 +#define penumbra_custody_threshold_v1_FollowerRound1_sig_tag 3 +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_shares_tag 1 +#define penumbra_custody_threshold_v1_FollowerRound2_inner_tag 1 +#define penumbra_custody_threshold_v1_FollowerRound2_pk_tag 2 +#define penumbra_custody_threshold_v1_FollowerRound2_sig_tag 3 +#define penumbra_custody_threshold_v1_DKGRound1_pkg_tag 1 +#define penumbra_custody_threshold_v1_DKGRound1_nullifier_commitment_tag 2 +#define penumbra_custody_threshold_v1_DKGRound1_epk_tag 3 +#define penumbra_custody_threshold_v1_DKGRound1_vk_tag 4 +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_vk_tag 1 +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_encrypted_package_tag 2 +#define penumbra_custody_threshold_v1_DKGRound2_Inner_encrypted_packages_tag 1 +#define penumbra_custody_threshold_v1_DKGRound2_Inner_nullifier_tag 2 +#define penumbra_custody_threshold_v1_DKGRound2_inner_tag 1 +#define penumbra_custody_threshold_v1_DKGRound2_vk_tag 2 +#define penumbra_custody_threshold_v1_DKGRound2_sig_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_custody_threshold_v1_VerificationKey_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_custody_threshold_v1_VerificationKey_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_VerificationKey_DEFAULT NULL + +#define penumbra_custody_threshold_v1_Signature_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, inner, 1) +#define penumbra_custody_threshold_v1_Signature_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_Signature_DEFAULT NULL + +#define penumbra_custody_threshold_v1_CoordinatorRound1_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (request, plan, request.plan), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (request, validator_definition, request.validator_definition), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (request, validator_vote, request.validator_vote), 3) +#define penumbra_custody_threshold_v1_CoordinatorRound1_CALLBACK NULL +#define penumbra_custody_threshold_v1_CoordinatorRound1_DEFAULT NULL +#define penumbra_custody_threshold_v1_CoordinatorRound1_request_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan +#define penumbra_custody_threshold_v1_CoordinatorRound1_request_validator_definition_MSGTYPE \ + penumbra_core_component_stake_v1_Validator +#define penumbra_custody_threshold_v1_CoordinatorRound1_request_validator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVoteBody + +#define penumbra_custody_threshold_v1_CoordinatorRound2_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, signing_packages, 1) +#define penumbra_custody_threshold_v1_CoordinatorRound2_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_CoordinatorRound2_DEFAULT NULL +#define penumbra_custody_threshold_v1_CoordinatorRound2_signing_packages_MSGTYPE \ + penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage + +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, identifier, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, commitments, 2) +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_DEFAULT NULL +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_commitments_MSGTYPE \ + penumbra_crypto_decaf377_frost_v1_SigningCommitments + +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, all_commitments, 1) +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_DEFAULT NULL +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_all_commitments_MSGTYPE \ + penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments + +#define penumbra_custody_threshold_v1_FollowerRound1_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, inner, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pk, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, sig, 3) +#define penumbra_custody_threshold_v1_FollowerRound1_CALLBACK NULL +#define penumbra_custody_threshold_v1_FollowerRound1_DEFAULT NULL +#define penumbra_custody_threshold_v1_FollowerRound1_inner_MSGTYPE penumbra_custody_threshold_v1_FollowerRound1_Inner +#define penumbra_custody_threshold_v1_FollowerRound1_pk_MSGTYPE penumbra_custody_threshold_v1_VerificationKey +#define penumbra_custody_threshold_v1_FollowerRound1_sig_MSGTYPE penumbra_custody_threshold_v1_Signature + +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, commitments, 1) +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_DEFAULT NULL +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_commitments_MSGTYPE \ + penumbra_crypto_decaf377_frost_v1_SigningCommitments + +#define penumbra_custody_threshold_v1_FollowerRound2_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, inner, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pk, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, sig, 3) +#define penumbra_custody_threshold_v1_FollowerRound2_CALLBACK NULL +#define penumbra_custody_threshold_v1_FollowerRound2_DEFAULT NULL +#define penumbra_custody_threshold_v1_FollowerRound2_inner_MSGTYPE penumbra_custody_threshold_v1_FollowerRound2_Inner +#define penumbra_custody_threshold_v1_FollowerRound2_pk_MSGTYPE penumbra_custody_threshold_v1_VerificationKey +#define penumbra_custody_threshold_v1_FollowerRound2_sig_MSGTYPE penumbra_custody_threshold_v1_Signature + +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, shares, 1) +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_DEFAULT NULL +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_shares_MSGTYPE penumbra_crypto_decaf377_frost_v1_SignatureShare + +#define penumbra_custody_threshold_v1_DKGRound1_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pkg, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, nullifier_commitment, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, epk, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, vk, 4) +#define penumbra_custody_threshold_v1_DKGRound1_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_DKGRound1_DEFAULT NULL +#define penumbra_custody_threshold_v1_DKGRound1_pkg_MSGTYPE penumbra_crypto_decaf377_frost_v1_DKGRound1Package + +#define penumbra_custody_threshold_v1_DKGRound2_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, inner, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, vk, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, sig, 3) +#define penumbra_custody_threshold_v1_DKGRound2_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_DKGRound2_DEFAULT NULL +#define penumbra_custody_threshold_v1_DKGRound2_inner_MSGTYPE penumbra_custody_threshold_v1_DKGRound2_Inner + +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, vk, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, encrypted_package, 2) +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_DEFAULT NULL + +#define penumbra_custody_threshold_v1_DKGRound2_Inner_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, encrypted_packages, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, nullifier, 2) +#define penumbra_custody_threshold_v1_DKGRound2_Inner_CALLBACK pb_default_field_callback +#define penumbra_custody_threshold_v1_DKGRound2_Inner_DEFAULT NULL +#define penumbra_custody_threshold_v1_DKGRound2_Inner_encrypted_packages_MSGTYPE \ + penumbra_custody_threshold_v1_DKGRound2_TargetedPackage + +extern const pb_msgdesc_t penumbra_custody_threshold_v1_VerificationKey_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_Signature_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_CoordinatorRound1_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_CoordinatorRound2_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_FollowerRound1_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_FollowerRound1_Inner_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_FollowerRound2_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_FollowerRound2_Inner_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_DKGRound1_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_DKGRound2_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_msg; +extern const pb_msgdesc_t penumbra_custody_threshold_v1_DKGRound2_Inner_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_custody_threshold_v1_VerificationKey_fields &penumbra_custody_threshold_v1_VerificationKey_msg +#define penumbra_custody_threshold_v1_Signature_fields &penumbra_custody_threshold_v1_Signature_msg +#define penumbra_custody_threshold_v1_CoordinatorRound1_fields &penumbra_custody_threshold_v1_CoordinatorRound1_msg +#define penumbra_custody_threshold_v1_CoordinatorRound2_fields &penumbra_custody_threshold_v1_CoordinatorRound2_msg +#define penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_fields \ + &penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_msg +#define penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_fields \ + &penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_msg +#define penumbra_custody_threshold_v1_FollowerRound1_fields &penumbra_custody_threshold_v1_FollowerRound1_msg +#define penumbra_custody_threshold_v1_FollowerRound1_Inner_fields &penumbra_custody_threshold_v1_FollowerRound1_Inner_msg +#define penumbra_custody_threshold_v1_FollowerRound2_fields &penumbra_custody_threshold_v1_FollowerRound2_msg +#define penumbra_custody_threshold_v1_FollowerRound2_Inner_fields &penumbra_custody_threshold_v1_FollowerRound2_Inner_msg +#define penumbra_custody_threshold_v1_DKGRound1_fields &penumbra_custody_threshold_v1_DKGRound1_msg +#define penumbra_custody_threshold_v1_DKGRound2_fields &penumbra_custody_threshold_v1_DKGRound2_msg +#define penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_fields \ + &penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_msg +#define penumbra_custody_threshold_v1_DKGRound2_Inner_fields &penumbra_custody_threshold_v1_DKGRound2_Inner_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(penumbra_core_transaction_v1_TransactionPlan_size) && \ + defined(penumbra_core_component_stake_v1_Validator_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVoteBody_size) +union penumbra_custody_threshold_v1_CoordinatorRound1_request_size_union { + char f1[(6 + penumbra_core_transaction_v1_TransactionPlan_size)]; + char f2[(6 + penumbra_core_component_stake_v1_Validator_size)]; + char f3[(6 + penumbra_core_component_governance_v1_ValidatorVoteBody_size)]; +}; +#endif +/* penumbra_custody_threshold_v1_VerificationKey_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_Signature_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_CoordinatorRound2_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_CoordinatorRound2_IdentifiedCommitments_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_CoordinatorRound2_PartialSigningPackage_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_FollowerRound1_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_FollowerRound1_Inner_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_FollowerRound2_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_FollowerRound2_Inner_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_DKGRound1_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_DKGRound2_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_DKGRound2_TargetedPackage_size depends on runtime parameters */ +/* penumbra_custody_threshold_v1_DKGRound2_Inner_size depends on runtime parameters */ +#if defined(penumbra_core_transaction_v1_TransactionPlan_size) && \ + defined(penumbra_core_component_stake_v1_Validator_size) && \ + defined(penumbra_core_component_governance_v1_ValidatorVoteBody_size) +#define penumbra_custody_threshold_v1_CoordinatorRound1_size \ + (0 + sizeof(union penumbra_custody_threshold_v1_CoordinatorRound1_request_size_union)) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/custody/v1/custody.pb.c b/app/src/protobuf/penumbra/custody/v1/custody.pb.c new file mode 100644 index 0000000..a63a84c --- /dev/null +++ b/app/src/protobuf/penumbra/custody/v1/custody.pb.c @@ -0,0 +1,33 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/custody/v1/custody.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_custody_v1_AuthorizeRequest, penumbra_custody_v1_AuthorizeRequest, 2) + +PB_BIND(penumbra_custody_v1_AuthorizeResponse, penumbra_custody_v1_AuthorizeResponse, AUTO) + +PB_BIND(penumbra_custody_v1_AuthorizeValidatorDefinitionRequest, penumbra_custody_v1_AuthorizeValidatorDefinitionRequest, + AUTO) + +PB_BIND(penumbra_custody_v1_AuthorizeValidatorDefinitionResponse, penumbra_custody_v1_AuthorizeValidatorDefinitionResponse, + AUTO) + +PB_BIND(penumbra_custody_v1_AuthorizeValidatorVoteRequest, penumbra_custody_v1_AuthorizeValidatorVoteRequest, AUTO) + +PB_BIND(penumbra_custody_v1_AuthorizeValidatorVoteResponse, penumbra_custody_v1_AuthorizeValidatorVoteResponse, AUTO) + +PB_BIND(penumbra_custody_v1_PreAuthorization, penumbra_custody_v1_PreAuthorization, AUTO) + +PB_BIND(penumbra_custody_v1_PreAuthorization_Ed25519, penumbra_custody_v1_PreAuthorization_Ed25519, AUTO) + +PB_BIND(penumbra_custody_v1_ExportFullViewingKeyRequest, penumbra_custody_v1_ExportFullViewingKeyRequest, AUTO) + +PB_BIND(penumbra_custody_v1_ExportFullViewingKeyResponse, penumbra_custody_v1_ExportFullViewingKeyResponse, AUTO) + +PB_BIND(penumbra_custody_v1_ConfirmAddressRequest, penumbra_custody_v1_ConfirmAddressRequest, AUTO) + +PB_BIND(penumbra_custody_v1_ConfirmAddressResponse, penumbra_custody_v1_ConfirmAddressResponse, AUTO) diff --git a/app/src/protobuf/penumbra/custody/v1/custody.pb.h b/app/src/protobuf/penumbra/custody/v1/custody.pb.h new file mode 100644 index 0000000..31c11eb --- /dev/null +++ b/app/src/protobuf/penumbra/custody/v1/custody.pb.h @@ -0,0 +1,345 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_CUSTODY_V1_PENUMBRA_CUSTODY_V1_CUSTODY_PB_H_INCLUDED +#define PB_PENUMBRA_CUSTODY_V1_PENUMBRA_CUSTODY_V1_CUSTODY_PB_H_INCLUDED +#include + +#include "penumbra/core/component/governance/v1/governance.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/transaction/v1/transaction.pb.h" +#include "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _penumbra_custody_v1_AuthorizeRequest { + /* The transaction plan to authorize. */ + bool has_plan; + penumbra_core_transaction_v1_TransactionPlan plan; + /* Optionally, pre-authorization data, if required by the custodian. + + Pre-authorization data is backend-specific, and backends are free to ignore it. + + Multiple `PreAuthorization` packets can be included in a single request, + to support multi-party pre-authorizations. */ + pb_callback_t pre_authorizations; +} penumbra_custody_v1_AuthorizeRequest; + +typedef struct _penumbra_custody_v1_AuthorizeResponse { + bool has_data; + penumbra_core_transaction_v1_AuthorizationData data; +} penumbra_custody_v1_AuthorizeResponse; + +typedef struct _penumbra_custody_v1_AuthorizeValidatorDefinitionRequest { + /* The validator definition to authorize. */ + bool has_validator_definition; + penumbra_core_component_stake_v1_Validator validator_definition; + /* Optionally, pre-authorization data, if required by the custodian. + + Pre-authorization data is backend-specific, and backends are free to ignore it. + + Multiple `PreAuthorization` packets can be included in a single request, + to support multi-party pre-authorizations. */ + pb_callback_t pre_authorizations; +} penumbra_custody_v1_AuthorizeValidatorDefinitionRequest; + +typedef struct _penumbra_custody_v1_AuthorizeValidatorDefinitionResponse { + /* The authorization signature for the validator definition. */ + bool has_validator_definition_auth; + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature validator_definition_auth; +} penumbra_custody_v1_AuthorizeValidatorDefinitionResponse; + +typedef struct _penumbra_custody_v1_AuthorizeValidatorVoteRequest { + /* The validator vote to authorize. */ + bool has_validator_vote; + penumbra_core_component_governance_v1_ValidatorVoteBody validator_vote; + /* Optionally, pre-authorization data, if required by the custodian. + + Pre-authorization data is backend-specific, and backends are free to ignore it. + + Multiple `PreAuthorization` packets can be included in a single request, + to support multi-party pre-authorizations. */ + pb_callback_t pre_authorizations; +} penumbra_custody_v1_AuthorizeValidatorVoteRequest; + +typedef struct _penumbra_custody_v1_AuthorizeValidatorVoteResponse { + /* The authorization signature for the validator vote. */ + bool has_validator_vote_auth; + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature validator_vote_auth; +} penumbra_custody_v1_AuthorizeValidatorVoteResponse; + +/* An Ed25519-based preauthorization, containing an Ed25519 signature over the + `TransactionPlan`. */ +typedef struct _penumbra_custody_v1_PreAuthorization_Ed25519 { + /* The Ed25519 verification key used to verify the signature. */ + pb_callback_t vk; + /* The Ed25519 signature over the `TransactionPlan`. */ + pb_callback_t sig; +} penumbra_custody_v1_PreAuthorization_Ed25519; + +/* A pre-authorization packet. This allows a custodian to delegate (partial) + signing authority to other authorization mechanisms. Details of how a + custodian manages those keys are out-of-scope for the custody protocol and + are custodian-specific. */ +typedef struct _penumbra_custody_v1_PreAuthorization { + pb_size_t which_pre_authorization; + union { + penumbra_custody_v1_PreAuthorization_Ed25519 ed25519; + } pre_authorization; +} penumbra_custody_v1_PreAuthorization; + +typedef struct _penumbra_custody_v1_ExportFullViewingKeyRequest { + char dummy_field; +} penumbra_custody_v1_ExportFullViewingKeyRequest; + +typedef struct _penumbra_custody_v1_ExportFullViewingKeyResponse { + /* The full viewing key. */ + bool has_full_viewing_key; + penumbra_core_keys_v1_FullViewingKey full_viewing_key; +} penumbra_custody_v1_ExportFullViewingKeyResponse; + +typedef struct _penumbra_custody_v1_ConfirmAddressRequest { + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_custody_v1_ConfirmAddressRequest; + +typedef struct _penumbra_custody_v1_ConfirmAddressResponse { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_custody_v1_ConfirmAddressResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_custody_v1_AuthorizeRequest_init_default \ + { \ + false, penumbra_core_transaction_v1_TransactionPlan_init_default, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeResponse_init_default \ + { false, penumbra_core_transaction_v1_AuthorizationData_init_default } +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_init_default \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_default, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_init_default \ + { false, penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default } +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_init_default \ + { \ + false, penumbra_core_component_governance_v1_ValidatorVoteBody_init_default, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_init_default \ + { false, penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_default } +#define penumbra_custody_v1_PreAuthorization_init_default \ + { \ + 0, { penumbra_custody_v1_PreAuthorization_Ed25519_init_default } \ + } +#define penumbra_custody_v1_PreAuthorization_Ed25519_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_ExportFullViewingKeyRequest_init_default \ + { 0 } +#define penumbra_custody_v1_ExportFullViewingKeyResponse_init_default \ + { false, penumbra_core_keys_v1_FullViewingKey_init_default } +#define penumbra_custody_v1_ConfirmAddressRequest_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default } +#define penumbra_custody_v1_ConfirmAddressResponse_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_custody_v1_AuthorizeRequest_init_zero \ + { \ + false, penumbra_core_transaction_v1_TransactionPlan_init_zero, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeResponse_init_zero \ + { false, penumbra_core_transaction_v1_AuthorizationData_init_zero } +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_init_zero \ + { \ + false, penumbra_core_component_stake_v1_Validator_init_zero, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_init_zero \ + { false, penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero } +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_init_zero \ + { \ + false, penumbra_core_component_governance_v1_ValidatorVoteBody_init_zero, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_init_zero \ + { false, penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_init_zero } +#define penumbra_custody_v1_PreAuthorization_init_zero \ + { \ + 0, { penumbra_custody_v1_PreAuthorization_Ed25519_init_zero } \ + } +#define penumbra_custody_v1_PreAuthorization_Ed25519_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_custody_v1_ExportFullViewingKeyRequest_init_zero \ + { 0 } +#define penumbra_custody_v1_ExportFullViewingKeyResponse_init_zero \ + { false, penumbra_core_keys_v1_FullViewingKey_init_zero } +#define penumbra_custody_v1_ConfirmAddressRequest_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero } +#define penumbra_custody_v1_ConfirmAddressResponse_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_custody_v1_AuthorizeRequest_plan_tag 1 +#define penumbra_custody_v1_AuthorizeRequest_pre_authorizations_tag 3 +#define penumbra_custody_v1_AuthorizeResponse_data_tag 1 +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_validator_definition_tag 1 +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_pre_authorizations_tag 3 +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_validator_definition_auth_tag 1 +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_validator_vote_tag 1 +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_pre_authorizations_tag 3 +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_validator_vote_auth_tag 1 +#define penumbra_custody_v1_PreAuthorization_Ed25519_vk_tag 1 +#define penumbra_custody_v1_PreAuthorization_Ed25519_sig_tag 2 +#define penumbra_custody_v1_PreAuthorization_ed25519_tag 1 +#define penumbra_custody_v1_ExportFullViewingKeyResponse_full_viewing_key_tag 1 +#define penumbra_custody_v1_ConfirmAddressRequest_address_index_tag 1 +#define penumbra_custody_v1_ConfirmAddressResponse_address_tag 1 + +/* Struct field encoding specification for nanopb */ +#define penumbra_custody_v1_AuthorizeRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, plan, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, pre_authorizations, 3) +#define penumbra_custody_v1_AuthorizeRequest_CALLBACK pb_default_field_callback +#define penumbra_custody_v1_AuthorizeRequest_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeRequest_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan +#define penumbra_custody_v1_AuthorizeRequest_pre_authorizations_MSGTYPE penumbra_custody_v1_PreAuthorization + +#define penumbra_custody_v1_AuthorizeResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, data, 1) +#define penumbra_custody_v1_AuthorizeResponse_CALLBACK NULL +#define penumbra_custody_v1_AuthorizeResponse_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeResponse_data_MSGTYPE penumbra_core_transaction_v1_AuthorizationData + +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_definition, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, pre_authorizations, 3) +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_CALLBACK pb_default_field_callback +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_validator_definition_MSGTYPE \ + penumbra_core_component_stake_v1_Validator +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_pre_authorizations_MSGTYPE \ + penumbra_custody_v1_PreAuthorization + +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_definition_auth, 1) +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_CALLBACK NULL +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_validator_definition_auth_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature + +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_vote, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, pre_authorizations, 3) +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_CALLBACK pb_default_field_callback +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_validator_vote_MSGTYPE \ + penumbra_core_component_governance_v1_ValidatorVoteBody +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_pre_authorizations_MSGTYPE penumbra_custody_v1_PreAuthorization + +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_vote_auth, 1) +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_CALLBACK NULL +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_DEFAULT NULL +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_validator_vote_auth_MSGTYPE \ + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature + +#define penumbra_custody_v1_PreAuthorization_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (pre_authorization, ed25519, pre_authorization.ed25519), 1) +#define penumbra_custody_v1_PreAuthorization_CALLBACK NULL +#define penumbra_custody_v1_PreAuthorization_DEFAULT NULL +#define penumbra_custody_v1_PreAuthorization_pre_authorization_ed25519_MSGTYPE penumbra_custody_v1_PreAuthorization_Ed25519 + +#define penumbra_custody_v1_PreAuthorization_Ed25519_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, vk, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, sig, 2) +#define penumbra_custody_v1_PreAuthorization_Ed25519_CALLBACK pb_default_field_callback +#define penumbra_custody_v1_PreAuthorization_Ed25519_DEFAULT NULL + +#define penumbra_custody_v1_ExportFullViewingKeyRequest_FIELDLIST(X, a) + +#define penumbra_custody_v1_ExportFullViewingKeyRequest_CALLBACK NULL +#define penumbra_custody_v1_ExportFullViewingKeyRequest_DEFAULT NULL + +#define penumbra_custody_v1_ExportFullViewingKeyResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, full_viewing_key, 1) +#define penumbra_custody_v1_ExportFullViewingKeyResponse_CALLBACK NULL +#define penumbra_custody_v1_ExportFullViewingKeyResponse_DEFAULT NULL +#define penumbra_custody_v1_ExportFullViewingKeyResponse_full_viewing_key_MSGTYPE penumbra_core_keys_v1_FullViewingKey + +#define penumbra_custody_v1_ConfirmAddressRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address_index, 1) +#define penumbra_custody_v1_ConfirmAddressRequest_CALLBACK NULL +#define penumbra_custody_v1_ConfirmAddressRequest_DEFAULT NULL +#define penumbra_custody_v1_ConfirmAddressRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_custody_v1_ConfirmAddressResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_custody_v1_ConfirmAddressResponse_CALLBACK NULL +#define penumbra_custody_v1_ConfirmAddressResponse_DEFAULT NULL +#define penumbra_custody_v1_ConfirmAddressResponse_address_MSGTYPE penumbra_core_keys_v1_Address + +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeRequest_msg; +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeResponse_msg; +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_msg; +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_msg; +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeValidatorVoteRequest_msg; +extern const pb_msgdesc_t penumbra_custody_v1_AuthorizeValidatorVoteResponse_msg; +extern const pb_msgdesc_t penumbra_custody_v1_PreAuthorization_msg; +extern const pb_msgdesc_t penumbra_custody_v1_PreAuthorization_Ed25519_msg; +extern const pb_msgdesc_t penumbra_custody_v1_ExportFullViewingKeyRequest_msg; +extern const pb_msgdesc_t penumbra_custody_v1_ExportFullViewingKeyResponse_msg; +extern const pb_msgdesc_t penumbra_custody_v1_ConfirmAddressRequest_msg; +extern const pb_msgdesc_t penumbra_custody_v1_ConfirmAddressResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_custody_v1_AuthorizeRequest_fields &penumbra_custody_v1_AuthorizeRequest_msg +#define penumbra_custody_v1_AuthorizeResponse_fields &penumbra_custody_v1_AuthorizeResponse_msg +#define penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_fields \ + &penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_msg +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_fields \ + &penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_msg +#define penumbra_custody_v1_AuthorizeValidatorVoteRequest_fields &penumbra_custody_v1_AuthorizeValidatorVoteRequest_msg +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_fields &penumbra_custody_v1_AuthorizeValidatorVoteResponse_msg +#define penumbra_custody_v1_PreAuthorization_fields &penumbra_custody_v1_PreAuthorization_msg +#define penumbra_custody_v1_PreAuthorization_Ed25519_fields &penumbra_custody_v1_PreAuthorization_Ed25519_msg +#define penumbra_custody_v1_ExportFullViewingKeyRequest_fields &penumbra_custody_v1_ExportFullViewingKeyRequest_msg +#define penumbra_custody_v1_ExportFullViewingKeyResponse_fields &penumbra_custody_v1_ExportFullViewingKeyResponse_msg +#define penumbra_custody_v1_ConfirmAddressRequest_fields &penumbra_custody_v1_ConfirmAddressRequest_msg +#define penumbra_custody_v1_ConfirmAddressResponse_fields &penumbra_custody_v1_ConfirmAddressResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_custody_v1_AuthorizeRequest_size depends on runtime parameters */ +/* penumbra_custody_v1_AuthorizeValidatorDefinitionRequest_size depends on runtime parameters */ +/* penumbra_custody_v1_AuthorizeValidatorVoteRequest_size depends on runtime parameters */ +/* penumbra_custody_v1_PreAuthorization_size depends on runtime parameters */ +/* penumbra_custody_v1_PreAuthorization_Ed25519_size depends on runtime parameters */ +#if defined(penumbra_core_transaction_v1_AuthorizationData_size) +#define PENUMBRA_CUSTODY_V1_PENUMBRA_CUSTODY_V1_CUSTODY_PB_H_MAX_SIZE penumbra_custody_v1_AuthorizeResponse_size +#define penumbra_custody_v1_AuthorizeResponse_size (6 + penumbra_core_transaction_v1_AuthorizationData_size) +#endif +#if defined(penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_size) +#define penumbra_custody_v1_AuthorizeValidatorDefinitionResponse_size \ + (6 + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_size) +#define penumbra_custody_v1_AuthorizeValidatorVoteResponse_size \ + (6 + penumbra_crypto_decaf377_rdsa_v1_SpendAuthSignature_size) +#endif +#define penumbra_custody_v1_ExportFullViewingKeyRequest_size 0 +#if defined(penumbra_core_keys_v1_FullViewingKey_size) +#define penumbra_custody_v1_ExportFullViewingKeyResponse_size (6 + penumbra_core_keys_v1_FullViewingKey_size) +#endif +#if defined(penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_custody_v1_ConfirmAddressRequest_size (6 + penumbra_core_keys_v1_AddressIndex_size) +#endif +#if defined(penumbra_core_keys_v1_Address_size) +#define penumbra_custody_v1_ConfirmAddressResponse_size (6 + penumbra_core_keys_v1_Address_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.c b/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.c new file mode 100644 index 0000000..c199797 --- /dev/null +++ b/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.c @@ -0,0 +1,32 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/tools/summoning/v1/summoning.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_tools_summoning_v1_ParticipateRequest, penumbra_tools_summoning_v1_ParticipateRequest, 2) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateRequest_Identify, penumbra_tools_summoning_v1_ParticipateRequest_Identify, + AUTO) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateRequest_Contribution, + penumbra_tools_summoning_v1_ParticipateRequest_Contribution, 2) + +PB_BIND(penumbra_tools_summoning_v1_CeremonyCrs, penumbra_tools_summoning_v1_CeremonyCrs, 2) + +PB_BIND(penumbra_tools_summoning_v1_CeremonyLinkingProof, penumbra_tools_summoning_v1_CeremonyLinkingProof, 2) + +PB_BIND(penumbra_tools_summoning_v1_CeremonyParentHashes, penumbra_tools_summoning_v1_CeremonyParentHashes, 2) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateResponse, penumbra_tools_summoning_v1_ParticipateResponse, AUTO) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateResponse_Position, penumbra_tools_summoning_v1_ParticipateResponse_Position, + AUTO) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow, + penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow, AUTO) + +PB_BIND(penumbra_tools_summoning_v1_ParticipateResponse_Confirm, penumbra_tools_summoning_v1_ParticipateResponse_Confirm, + AUTO) diff --git a/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.h b/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.h new file mode 100644 index 0000000..51aafb4 --- /dev/null +++ b/app/src/protobuf/penumbra/tools/summoning/v1/summoning.pb.h @@ -0,0 +1,359 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_TOOLS_SUMMONING_V1_PENUMBRA_TOOLS_SUMMONING_V1_SUMMONING_PB_H_INCLUDED +#define PB_PENUMBRA_TOOLS_SUMMONING_V1_PENUMBRA_TOOLS_SUMMONING_V1_SUMMONING_PB_H_INCLUDED +#include + +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* Sent at the beginning of the connection to identify the participant. */ +typedef struct _penumbra_tools_summoning_v1_ParticipateRequest_Identify { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_tools_summoning_v1_ParticipateRequest_Identify; + +typedef struct _penumbra_tools_summoning_v1_CeremonyCrs { + pb_callback_t spend; + pb_callback_t output; + pb_callback_t delegator_vote; + pb_callback_t undelegate_claim; + pb_callback_t swap; + pb_callback_t swap_claim; + pb_callback_t nullifer_derivation_crs; +} penumbra_tools_summoning_v1_CeremonyCrs; + +typedef struct _penumbra_tools_summoning_v1_CeremonyLinkingProof { + pb_callback_t spend; + pb_callback_t output; + pb_callback_t delegator_vote; + pb_callback_t undelegate_claim; + pb_callback_t swap; + pb_callback_t swap_claim; + pb_callback_t nullifer_derivation_crs; +} penumbra_tools_summoning_v1_CeremonyLinkingProof; + +typedef struct _penumbra_tools_summoning_v1_CeremonyParentHashes { + pb_callback_t spend; + pb_callback_t output; + pb_callback_t delegator_vote; + pb_callback_t undelegate_claim; + pb_callback_t swap; + pb_callback_t swap_claim; + pb_callback_t nullifer_derivation_crs; +} penumbra_tools_summoning_v1_CeremonyParentHashes; + +/* Sent by the participant after getting a `ContributeNow` message. */ +typedef struct _penumbra_tools_summoning_v1_ParticipateRequest_Contribution { + bool has_updated; + penumbra_tools_summoning_v1_CeremonyCrs updated; + bool has_update_proofs; + penumbra_tools_summoning_v1_CeremonyLinkingProof update_proofs; + bool has_parent_hashes; + penumbra_tools_summoning_v1_CeremonyParentHashes parent_hashes; +} penumbra_tools_summoning_v1_ParticipateRequest_Contribution; + +typedef struct _penumbra_tools_summoning_v1_ParticipateRequest { + pb_size_t which_msg; + union { + penumbra_tools_summoning_v1_ParticipateRequest_Identify identify; + penumbra_tools_summoning_v1_ParticipateRequest_Contribution contribution; + } msg; +} penumbra_tools_summoning_v1_ParticipateRequest; + +/* Streamed to the participant to inform them of their position in the queue. */ +typedef struct _penumbra_tools_summoning_v1_ParticipateResponse_Position { + /* The position of the participant in the queue. */ + uint32_t position; + /* The total number of participants in the queue. */ + uint32_t connected_participants; + /* The bid for the most recently executed contribution slot. */ + bool has_last_slot_bid; + penumbra_core_num_v1_Amount last_slot_bid; + /* The participant's current bid. */ + bool has_your_bid; + penumbra_core_num_v1_Amount your_bid; +} penumbra_tools_summoning_v1_ParticipateResponse_Position; + +/* Sent to the participant to inform them that they should contribute now. */ +typedef struct _penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow { + /* The most recent CRS, which the participant should update. */ + bool has_parent; + penumbra_tools_summoning_v1_CeremonyCrs parent; +} penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow; + +/* Sent to the participant to confim their contribution was accepted. */ +typedef struct _penumbra_tools_summoning_v1_ParticipateResponse_Confirm { + uint64_t slot; +} penumbra_tools_summoning_v1_ParticipateResponse_Confirm; + +typedef struct _penumbra_tools_summoning_v1_ParticipateResponse { + pb_size_t which_msg; + union { + penumbra_tools_summoning_v1_ParticipateResponse_Position position; + penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow contribute_now; + penumbra_tools_summoning_v1_ParticipateResponse_Confirm confirm; + } msg; +} penumbra_tools_summoning_v1_ParticipateResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_tools_summoning_v1_ParticipateRequest_init_default \ + { \ + 0, { penumbra_tools_summoning_v1_ParticipateRequest_Identify_init_default } \ + } +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_init_default \ + { \ + false, penumbra_tools_summoning_v1_CeremonyCrs_init_default, false, \ + penumbra_tools_summoning_v1_CeremonyLinkingProof_init_default, false, \ + penumbra_tools_summoning_v1_CeremonyParentHashes_init_default \ + } +#define penumbra_tools_summoning_v1_CeremonyCrs_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_CeremonyParentHashes_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_ParticipateResponse_init_default \ + { \ + 0, { penumbra_tools_summoning_v1_ParticipateResponse_Position_init_default } \ + } +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_init_default \ + { 0, 0, false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_num_v1_Amount_init_default } +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_init_default \ + { false, penumbra_tools_summoning_v1_CeremonyCrs_init_default } +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_init_default \ + { 0 } +#define penumbra_tools_summoning_v1_ParticipateRequest_init_zero \ + { \ + 0, { penumbra_tools_summoning_v1_ParticipateRequest_Identify_init_zero } \ + } +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_init_zero \ + { \ + false, penumbra_tools_summoning_v1_CeremonyCrs_init_zero, false, \ + penumbra_tools_summoning_v1_CeremonyLinkingProof_init_zero, false, \ + penumbra_tools_summoning_v1_CeremonyParentHashes_init_zero \ + } +#define penumbra_tools_summoning_v1_CeremonyCrs_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_CeremonyParentHashes_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_tools_summoning_v1_ParticipateResponse_init_zero \ + { \ + 0, { penumbra_tools_summoning_v1_ParticipateResponse_Position_init_zero } \ + } +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_init_zero \ + { 0, 0, false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_num_v1_Amount_init_zero } +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_init_zero \ + { false, penumbra_tools_summoning_v1_CeremonyCrs_init_zero } +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_init_zero \ + { 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_address_tag 1 +#define penumbra_tools_summoning_v1_CeremonyCrs_spend_tag 100 +#define penumbra_tools_summoning_v1_CeremonyCrs_output_tag 101 +#define penumbra_tools_summoning_v1_CeremonyCrs_delegator_vote_tag 102 +#define penumbra_tools_summoning_v1_CeremonyCrs_undelegate_claim_tag 103 +#define penumbra_tools_summoning_v1_CeremonyCrs_swap_tag 104 +#define penumbra_tools_summoning_v1_CeremonyCrs_swap_claim_tag 105 +#define penumbra_tools_summoning_v1_CeremonyCrs_nullifer_derivation_crs_tag 106 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_spend_tag 100 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_output_tag 101 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_delegator_vote_tag 102 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_undelegate_claim_tag 103 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_swap_tag 104 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_swap_claim_tag 105 +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_nullifer_derivation_crs_tag 106 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_spend_tag 100 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_output_tag 101 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_delegator_vote_tag 102 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_undelegate_claim_tag 103 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_swap_tag 104 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_swap_claim_tag 105 +#define penumbra_tools_summoning_v1_CeremonyParentHashes_nullifer_derivation_crs_tag 106 +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_updated_tag 1 +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_update_proofs_tag 2 +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_parent_hashes_tag 3 +#define penumbra_tools_summoning_v1_ParticipateRequest_identify_tag 1 +#define penumbra_tools_summoning_v1_ParticipateRequest_contribution_tag 2 +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_position_tag 1 +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_connected_participants_tag 2 +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_last_slot_bid_tag 3 +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_your_bid_tag 4 +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_parent_tag 1 +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_slot_tag 1 +#define penumbra_tools_summoning_v1_ParticipateResponse_position_tag 1 +#define penumbra_tools_summoning_v1_ParticipateResponse_contribute_now_tag 2 +#define penumbra_tools_summoning_v1_ParticipateResponse_confirm_tag 3 + +/* Struct field encoding specification for nanopb */ +#define penumbra_tools_summoning_v1_ParticipateRequest_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (msg, identify, msg.identify), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (msg, contribution, msg.contribution), 2) +#define penumbra_tools_summoning_v1_ParticipateRequest_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_msg_identify_MSGTYPE \ + penumbra_tools_summoning_v1_ParticipateRequest_Identify +#define penumbra_tools_summoning_v1_ParticipateRequest_msg_contribution_MSGTYPE \ + penumbra_tools_summoning_v1_ParticipateRequest_Contribution + +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, updated, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, update_proofs, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, parent_hashes, 3) +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_updated_MSGTYPE penumbra_tools_summoning_v1_CeremonyCrs +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_update_proofs_MSGTYPE \ + penumbra_tools_summoning_v1_CeremonyLinkingProof +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_parent_hashes_MSGTYPE \ + penumbra_tools_summoning_v1_CeremonyParentHashes + +#define penumbra_tools_summoning_v1_CeremonyCrs_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, spend, 100) \ + X(a, CALLBACK, SINGULAR, BYTES, output, 101) \ + X(a, CALLBACK, SINGULAR, BYTES, delegator_vote, 102) \ + X(a, CALLBACK, SINGULAR, BYTES, undelegate_claim, 103) \ + X(a, CALLBACK, SINGULAR, BYTES, swap, 104) \ + X(a, CALLBACK, SINGULAR, BYTES, swap_claim, 105) \ + X(a, CALLBACK, SINGULAR, BYTES, nullifer_derivation_crs, 106) +#define penumbra_tools_summoning_v1_CeremonyCrs_CALLBACK pb_default_field_callback +#define penumbra_tools_summoning_v1_CeremonyCrs_DEFAULT NULL + +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, spend, 100) \ + X(a, CALLBACK, SINGULAR, BYTES, output, 101) \ + X(a, CALLBACK, SINGULAR, BYTES, delegator_vote, 102) \ + X(a, CALLBACK, SINGULAR, BYTES, undelegate_claim, 103) \ + X(a, CALLBACK, SINGULAR, BYTES, swap, 104) \ + X(a, CALLBACK, SINGULAR, BYTES, swap_claim, 105) \ + X(a, CALLBACK, SINGULAR, BYTES, nullifer_derivation_crs, 106) +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_CALLBACK pb_default_field_callback +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_DEFAULT NULL + +#define penumbra_tools_summoning_v1_CeremonyParentHashes_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, spend, 100) \ + X(a, CALLBACK, SINGULAR, BYTES, output, 101) \ + X(a, CALLBACK, SINGULAR, BYTES, delegator_vote, 102) \ + X(a, CALLBACK, SINGULAR, BYTES, undelegate_claim, 103) \ + X(a, CALLBACK, SINGULAR, BYTES, swap, 104) \ + X(a, CALLBACK, SINGULAR, BYTES, swap_claim, 105) \ + X(a, CALLBACK, SINGULAR, BYTES, nullifer_derivation_crs, 106) +#define penumbra_tools_summoning_v1_CeremonyParentHashes_CALLBACK pb_default_field_callback +#define penumbra_tools_summoning_v1_CeremonyParentHashes_DEFAULT NULL + +#define penumbra_tools_summoning_v1_ParticipateResponse_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (msg, position, msg.position), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (msg, contribute_now, msg.contribute_now), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (msg, confirm, msg.confirm), 3) +#define penumbra_tools_summoning_v1_ParticipateResponse_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_msg_position_MSGTYPE \ + penumbra_tools_summoning_v1_ParticipateResponse_Position +#define penumbra_tools_summoning_v1_ParticipateResponse_msg_contribute_now_MSGTYPE \ + penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow +#define penumbra_tools_summoning_v1_ParticipateResponse_msg_confirm_MSGTYPE \ + penumbra_tools_summoning_v1_ParticipateResponse_Confirm + +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, position, 1) \ + X(a, STATIC, SINGULAR, UINT32, connected_participants, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_slot_bid, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, your_bid, 4) +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_last_slot_bid_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_your_bid_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, parent, 1) +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_DEFAULT NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_parent_MSGTYPE penumbra_tools_summoning_v1_CeremonyCrs + +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, slot, 1) +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_CALLBACK NULL +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_DEFAULT NULL + +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateRequest_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateRequest_Identify_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateRequest_Contribution_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_CeremonyCrs_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_CeremonyLinkingProof_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_CeremonyParentHashes_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateResponse_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateResponse_Position_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_msg; +extern const pb_msgdesc_t penumbra_tools_summoning_v1_ParticipateResponse_Confirm_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_tools_summoning_v1_ParticipateRequest_fields &penumbra_tools_summoning_v1_ParticipateRequest_msg +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_fields \ + &penumbra_tools_summoning_v1_ParticipateRequest_Identify_msg +#define penumbra_tools_summoning_v1_ParticipateRequest_Contribution_fields \ + &penumbra_tools_summoning_v1_ParticipateRequest_Contribution_msg +#define penumbra_tools_summoning_v1_CeremonyCrs_fields &penumbra_tools_summoning_v1_CeremonyCrs_msg +#define penumbra_tools_summoning_v1_CeremonyLinkingProof_fields &penumbra_tools_summoning_v1_CeremonyLinkingProof_msg +#define penumbra_tools_summoning_v1_CeremonyParentHashes_fields &penumbra_tools_summoning_v1_CeremonyParentHashes_msg +#define penumbra_tools_summoning_v1_ParticipateResponse_fields &penumbra_tools_summoning_v1_ParticipateResponse_msg +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_fields \ + &penumbra_tools_summoning_v1_ParticipateResponse_Position_msg +#define penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_fields \ + &penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_msg +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_fields \ + &penumbra_tools_summoning_v1_ParticipateResponse_Confirm_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_tools_summoning_v1_ParticipateRequest_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_ParticipateRequest_Contribution_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_CeremonyCrs_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_CeremonyLinkingProof_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_CeremonyParentHashes_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_ParticipateResponse_size depends on runtime parameters */ +/* penumbra_tools_summoning_v1_ParticipateResponse_ContributeNow_size depends on runtime parameters */ +#if defined(penumbra_core_keys_v1_Address_size) +#define penumbra_tools_summoning_v1_ParticipateRequest_Identify_size (6 + penumbra_core_keys_v1_Address_size) +#endif +#define PENUMBRA_TOOLS_SUMMONING_V1_PENUMBRA_TOOLS_SUMMONING_V1_SUMMONING_PB_H_MAX_SIZE \ + penumbra_tools_summoning_v1_ParticipateResponse_Position_size +#define penumbra_tools_summoning_v1_ParticipateResponse_Confirm_size 11 +#define penumbra_tools_summoning_v1_ParticipateResponse_Position_size 60 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.c b/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.c new file mode 100644 index 0000000..7784477 --- /dev/null +++ b/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.c @@ -0,0 +1,43 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetTxRequest, penumbra_util_tendermint_proxy_v1_GetTxRequest, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetTxResponse, penumbra_util_tendermint_proxy_v1_GetTxResponse, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_TxResult, penumbra_util_tendermint_proxy_v1_TxResult, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_Tag, penumbra_util_tendermint_proxy_v1_Tag, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest, penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest, + AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse, + penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest, penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest, + AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse, penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse, + AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetStatusRequest, penumbra_util_tendermint_proxy_v1_GetStatusRequest, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetStatusResponse, penumbra_util_tendermint_proxy_v1_GetStatusResponse, 2) + +PB_BIND(penumbra_util_tendermint_proxy_v1_SyncInfo, penumbra_util_tendermint_proxy_v1_SyncInfo, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_ABCIQueryRequest, penumbra_util_tendermint_proxy_v1_ABCIQueryRequest, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_ABCIQueryResponse, penumbra_util_tendermint_proxy_v1_ABCIQueryResponse, AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest, penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest, + AUTO) + +PB_BIND(penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse, + penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse, 2) diff --git a/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.h b/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.h new file mode 100644 index 0000000..d681a4e --- /dev/null +++ b/app/src/protobuf/penumbra/util/tendermint_proxy/v1/tendermint_proxy.pb.h @@ -0,0 +1,483 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_UTIL_TENDERMINT_PROXY_V1_PENUMBRA_UTIL_TENDERMINT_PROXY_V1_TENDERMINT_PROXY_PB_H_INCLUDED +#define PB_PENUMBRA_UTIL_TENDERMINT_PROXY_V1_PENUMBRA_UTIL_TENDERMINT_PROXY_V1_TENDERMINT_PROXY_PB_H_INCLUDED +#include + +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/crypto/proof.pb.h" +#include "tendermint/p2p/types.pb.h" +#include "tendermint/types/block.pb.h" +#include "tendermint/types/types.pb.h" +#include "tendermint/types/validator.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* GetTxRequest is the request type for the GetTx RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetTxRequest { + /* Hash of transaction to retrieve */ + pb_callback_t hash; + /* Include proofs of the transaction's inclusion in the block */ + bool prove; +} penumbra_util_tendermint_proxy_v1_GetTxRequest; + +typedef struct _penumbra_util_tendermint_proxy_v1_TxResult { + pb_callback_t log; + uint64_t gas_wanted; + uint64_t gas_used; + pb_callback_t tags; +} penumbra_util_tendermint_proxy_v1_TxResult; + +/* GetTxResponse is the response type for the GetTx RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetTxResponse { + /* Hash of transaction */ + pb_callback_t hash; + uint64_t height; + uint64_t index; + bool has_tx_result; + penumbra_util_tendermint_proxy_v1_TxResult tx_result; + pb_callback_t tx; +} penumbra_util_tendermint_proxy_v1_GetTxResponse; + +typedef struct _penumbra_util_tendermint_proxy_v1_Tag { + pb_callback_t key; + pb_callback_t value; + bool index; +} penumbra_util_tendermint_proxy_v1_Tag; + +/* BroadcastTxAsyncRequest is the request type for the BroadcastTxAsync RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest { + pb_callback_t params; + uint64_t req_id; +} penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest; + +/* BroadcastTxAsyncResponse is the response type for the BroadcastTxAsync RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse { + uint64_t code; + pb_callback_t data; + pb_callback_t log; + pb_callback_t hash; +} penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse; + +/* BroadcastTxSyncRequest is the request type for the BroadcastTxSync RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest { + pb_callback_t params; + uint64_t req_id; +} penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest; + +/* BroadcastTxSyncResponse is the response type for the BroadcastTxSync RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse { + uint64_t code; + pb_callback_t data; + pb_callback_t log; + pb_callback_t hash; +} penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse; + +/* GetStatusRequest is the request type for the Query/GetStatus RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetStatusRequest { + char dummy_field; +} penumbra_util_tendermint_proxy_v1_GetStatusRequest; + +typedef struct _penumbra_util_tendermint_proxy_v1_SyncInfo { + pb_callback_t latest_block_hash; + pb_callback_t latest_app_hash; + uint64_t latest_block_height; + bool has_latest_block_time; + google_protobuf_Timestamp latest_block_time; + /* These are implemented in tendermint, but not + in tendermint-rpc. + bytes earliest_block_hash = 5; + bytes earliest_app_hash = 6; + uint64 earliest_block_height = 7; + google.protobuf.Timestamp earliest_block_time = 8; */ + bool catching_up; +} penumbra_util_tendermint_proxy_v1_SyncInfo; + +/* GetStatusResponse is the response type for the Query/GetStatus RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetStatusResponse { + bool has_node_info; + tendermint_p2p_DefaultNodeInfo node_info; + bool has_sync_info; + penumbra_util_tendermint_proxy_v1_SyncInfo sync_info; + bool has_validator_info; + tendermint_types_Validator validator_info; +} penumbra_util_tendermint_proxy_v1_GetStatusResponse; + +/* ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. */ +typedef struct _penumbra_util_tendermint_proxy_v1_ABCIQueryRequest { + pb_callback_t data; + pb_callback_t path; + int64_t height; + bool prove; +} penumbra_util_tendermint_proxy_v1_ABCIQueryRequest; + +/* ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. + + Note: This type is a duplicate of the ResponseQuery proto type defined in + Tendermint. */ +typedef struct _penumbra_util_tendermint_proxy_v1_ABCIQueryResponse { + uint32_t code; + pb_callback_t log; /* nondeterministic */ + pb_callback_t info; /* nondeterministic */ + int64_t index; + pb_callback_t key; + pb_callback_t value; + bool has_proof_ops; + tendermint_crypto_ProofOps proof_ops; + int64_t height; + pb_callback_t codespace; +} penumbra_util_tendermint_proxy_v1_ABCIQueryResponse; + +/* GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest { + int64_t height; +} penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest; + +/* GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. */ +typedef struct _penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse { + bool has_block_id; + tendermint_types_BlockID block_id; + bool has_block; + tendermint_types_Block block; +} penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_init_default \ + { \ + {{NULL}, NULL}, 0, 0, false, penumbra_util_tendermint_proxy_v1_TxResult_init_default, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_TxResult_init_default \ + { \ + {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_Tag_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_init_default \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_init_default \ + { 0 } +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_init_default \ + { \ + false, tendermint_p2p_DefaultNodeInfo_init_default, false, penumbra_util_tendermint_proxy_v1_SyncInfo_init_default, \ + false, tendermint_types_Validator_init_default \ + } +#define penumbra_util_tendermint_proxy_v1_SyncInfo_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_default, 0 } +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + tendermint_crypto_ProofOps_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_init_default \ + { 0 } +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_init_default \ + { false, tendermint_types_BlockID_init_default, false, tendermint_types_Block_init_default } +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_init_zero \ + { \ + {{NULL}, NULL}, 0, 0, false, penumbra_util_tendermint_proxy_v1_TxResult_init_zero, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_TxResult_init_zero \ + { \ + {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_Tag_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_init_zero \ + { {{NULL}, NULL}, 0 } +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_init_zero \ + { 0 } +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_init_zero \ + { \ + false, tendermint_p2p_DefaultNodeInfo_init_zero, false, penumbra_util_tendermint_proxy_v1_SyncInfo_init_zero, \ + false, tendermint_types_Validator_init_zero \ + } +#define penumbra_util_tendermint_proxy_v1_SyncInfo_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_zero, 0 } +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_crypto_ProofOps_init_zero, \ + 0, { \ + {NULL}, NULL \ + } \ + } +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_init_zero \ + { 0 } +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_init_zero \ + { false, tendermint_types_BlockID_init_zero, false, tendermint_types_Block_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_hash_tag 1 +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_prove_tag 2 +#define penumbra_util_tendermint_proxy_v1_TxResult_log_tag 1 +#define penumbra_util_tendermint_proxy_v1_TxResult_gas_wanted_tag 2 +#define penumbra_util_tendermint_proxy_v1_TxResult_gas_used_tag 3 +#define penumbra_util_tendermint_proxy_v1_TxResult_tags_tag 4 +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_hash_tag 1 +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_height_tag 2 +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_index_tag 3 +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_tx_result_tag 4 +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_tx_tag 5 +#define penumbra_util_tendermint_proxy_v1_Tag_key_tag 1 +#define penumbra_util_tendermint_proxy_v1_Tag_value_tag 2 +#define penumbra_util_tendermint_proxy_v1_Tag_index_tag 3 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_params_tag 1 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_req_id_tag 2 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_code_tag 1 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_data_tag 2 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_log_tag 3 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_hash_tag 4 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_params_tag 1 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_req_id_tag 2 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_code_tag 1 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_data_tag 2 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_log_tag 3 +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_hash_tag 4 +#define penumbra_util_tendermint_proxy_v1_SyncInfo_latest_block_hash_tag 1 +#define penumbra_util_tendermint_proxy_v1_SyncInfo_latest_app_hash_tag 2 +#define penumbra_util_tendermint_proxy_v1_SyncInfo_latest_block_height_tag 3 +#define penumbra_util_tendermint_proxy_v1_SyncInfo_latest_block_time_tag 4 +#define penumbra_util_tendermint_proxy_v1_SyncInfo_catching_up_tag 9 +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_node_info_tag 1 +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_sync_info_tag 2 +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_validator_info_tag 3 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_data_tag 1 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_path_tag 2 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_height_tag 3 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_prove_tag 4 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_code_tag 1 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_log_tag 3 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_info_tag 4 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_index_tag 5 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_key_tag 6 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_value_tag 7 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_proof_ops_tag 8 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_height_tag 9 +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_codespace_tag 10 +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_height_tag 1 +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_block_id_tag 1 +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_block_tag 2 + +/* Struct field encoding specification for nanopb */ +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 1) \ + X(a, STATIC, SINGULAR, BOOL, prove, 2) +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 1) \ + X(a, STATIC, SINGULAR, UINT64, height, 2) \ + X(a, STATIC, SINGULAR, UINT64, index, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, tx_result, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, tx, 5) +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_tx_result_MSGTYPE penumbra_util_tendermint_proxy_v1_TxResult + +#define penumbra_util_tendermint_proxy_v1_TxResult_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, log, 1) \ + X(a, STATIC, SINGULAR, UINT64, gas_wanted, 2) \ + X(a, STATIC, SINGULAR, UINT64, gas_used, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, tags, 4) +#define penumbra_util_tendermint_proxy_v1_TxResult_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_TxResult_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_TxResult_tags_MSGTYPE penumbra_util_tendermint_proxy_v1_Tag + +#define penumbra_util_tendermint_proxy_v1_Tag_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 2) \ + X(a, STATIC, SINGULAR, BOOL, index, 3) +#define penumbra_util_tendermint_proxy_v1_Tag_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_Tag_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, params, 1) \ + X(a, STATIC, SINGULAR, UINT64, req_id, 2) +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, code, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 4) +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, params, 1) \ + X(a, STATIC, SINGULAR, UINT64, req_id, 2) +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, code, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 4) +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_FIELDLIST(X, a) + +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_CALLBACK NULL +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, node_info, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, sync_info, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_info, 3) +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_CALLBACK NULL +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_node_info_MSGTYPE tendermint_p2p_DefaultNodeInfo +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_sync_info_MSGTYPE penumbra_util_tendermint_proxy_v1_SyncInfo +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_validator_info_MSGTYPE tendermint_types_Validator + +#define penumbra_util_tendermint_proxy_v1_SyncInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, latest_block_hash, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, latest_app_hash, 2) \ + X(a, STATIC, SINGULAR, UINT64, latest_block_height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, latest_block_time, 4) \ + X(a, STATIC, SINGULAR, BOOL, catching_up, 9) +#define penumbra_util_tendermint_proxy_v1_SyncInfo_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_SyncInfo_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_SyncInfo_latest_block_time_MSGTYPE google_protobuf_Timestamp + +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 1) \ + X(a, CALLBACK, SINGULAR, STRING, path, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, SINGULAR, BOOL, prove, 4) +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, code, 1) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, SINGULAR, INT64, index, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_ops, 8) \ + X(a, STATIC, SINGULAR, INT64, height, 9) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 10) +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_CALLBACK pb_default_field_callback +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_proof_ops_MSGTYPE tendermint_crypto_ProofOps + +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT64, height, 1) +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_CALLBACK NULL +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_DEFAULT NULL + +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 2) +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_CALLBACK NULL +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_DEFAULT NULL +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_block_id_MSGTYPE tendermint_types_BlockID +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_block_MSGTYPE tendermint_types_Block + +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetTxRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetTxResponse_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_TxResult_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_Tag_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetStatusRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetStatusResponse_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_SyncInfo_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_msg; +extern const pb_msgdesc_t penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_util_tendermint_proxy_v1_GetTxRequest_fields &penumbra_util_tendermint_proxy_v1_GetTxRequest_msg +#define penumbra_util_tendermint_proxy_v1_GetTxResponse_fields &penumbra_util_tendermint_proxy_v1_GetTxResponse_msg +#define penumbra_util_tendermint_proxy_v1_TxResult_fields &penumbra_util_tendermint_proxy_v1_TxResult_msg +#define penumbra_util_tendermint_proxy_v1_Tag_fields &penumbra_util_tendermint_proxy_v1_Tag_msg +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_fields \ + &penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_msg +#define penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_fields \ + &penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_msg +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_fields \ + &penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_msg +#define penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_fields \ + &penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_msg +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_fields &penumbra_util_tendermint_proxy_v1_GetStatusRequest_msg +#define penumbra_util_tendermint_proxy_v1_GetStatusResponse_fields &penumbra_util_tendermint_proxy_v1_GetStatusResponse_msg +#define penumbra_util_tendermint_proxy_v1_SyncInfo_fields &penumbra_util_tendermint_proxy_v1_SyncInfo_msg +#define penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_fields &penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_msg +#define penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_fields &penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_msg +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_fields \ + &penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_msg +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_fields \ + &penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_msg + +/* Maximum encoded size of messages (where known) */ +/* penumbra_util_tendermint_proxy_v1_GetTxRequest_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_GetTxResponse_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_TxResult_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_Tag_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncRequest_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_BroadcastTxAsyncResponse_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_BroadcastTxSyncRequest_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_BroadcastTxSyncResponse_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_GetStatusResponse_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_SyncInfo_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_ABCIQueryRequest_size depends on runtime parameters */ +/* penumbra_util_tendermint_proxy_v1_ABCIQueryResponse_size depends on runtime parameters */ +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightRequest_size 11 +#define penumbra_util_tendermint_proxy_v1_GetStatusRequest_size 0 +#if defined(tendermint_types_BlockID_size) && defined(tendermint_types_Block_size) +#define PENUMBRA_UTIL_TENDERMINT_PROXY_V1_PENUMBRA_UTIL_TENDERMINT_PROXY_V1_TENDERMINT_PROXY_PB_H_MAX_SIZE \ + penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_size +#define penumbra_util_tendermint_proxy_v1_GetBlockByHeightResponse_size \ + (12 + tendermint_types_BlockID_size + tendermint_types_Block_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/penumbra/view/v1/view.pb.c b/app/src/protobuf/penumbra/view/v1/view.pb.c new file mode 100644 index 0000000..2689024 --- /dev/null +++ b/app/src/protobuf/penumbra/view/v1/view.pb.c @@ -0,0 +1,179 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "penumbra/view/v1/view.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(penumbra_view_v1_AuctionsRequest, penumbra_view_v1_AuctionsRequest, AUTO) + +PB_BIND(penumbra_view_v1_AuctionsResponse, penumbra_view_v1_AuctionsResponse, 2) + +PB_BIND(penumbra_view_v1_AuthorizeAndBuildRequest, penumbra_view_v1_AuthorizeAndBuildRequest, 2) + +PB_BIND(penumbra_view_v1_AuthorizeAndBuildResponse, penumbra_view_v1_AuthorizeAndBuildResponse, 2) + +PB_BIND(penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress, penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress, + AUTO) + +PB_BIND(penumbra_view_v1_AuthorizeAndBuildResponse_Complete, penumbra_view_v1_AuthorizeAndBuildResponse_Complete, 2) + +PB_BIND(penumbra_view_v1_BroadcastTransactionRequest, penumbra_view_v1_BroadcastTransactionRequest, 2) + +PB_BIND(penumbra_view_v1_BroadcastTransactionResponse, penumbra_view_v1_BroadcastTransactionResponse, AUTO) + +PB_BIND(penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess, + penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess, AUTO) + +PB_BIND(penumbra_view_v1_BroadcastTransactionResponse_Confirmed, penumbra_view_v1_BroadcastTransactionResponse_Confirmed, + AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest, penumbra_view_v1_TransactionPlannerRequest, 2) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_Output, penumbra_view_v1_TransactionPlannerRequest_Output, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_Spend, penumbra_view_v1_TransactionPlannerRequest_Spend, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_Swap, penumbra_view_v1_TransactionPlannerRequest_Swap, 2) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_SwapClaim, penumbra_view_v1_TransactionPlannerRequest_SwapClaim, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_Delegate, penumbra_view_v1_TransactionPlannerRequest_Delegate, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_Undelegate, penumbra_view_v1_TransactionPlannerRequest_Undelegate, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim, + penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_PositionOpen, penumbra_view_v1_TransactionPlannerRequest_PositionOpen, 2) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_PositionClose, penumbra_view_v1_TransactionPlannerRequest_PositionClose, + AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw, + penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule, + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd, + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw, + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw, AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerRequest_DelegatorVote, penumbra_view_v1_TransactionPlannerRequest_DelegatorVote, + AUTO) + +PB_BIND(penumbra_view_v1_TransactionPlannerResponse, penumbra_view_v1_TransactionPlannerResponse, 2) + +PB_BIND(penumbra_view_v1_AddressByIndexRequest, penumbra_view_v1_AddressByIndexRequest, AUTO) + +PB_BIND(penumbra_view_v1_AddressByIndexResponse, penumbra_view_v1_AddressByIndexResponse, AUTO) + +PB_BIND(penumbra_view_v1_WalletIdRequest, penumbra_view_v1_WalletIdRequest, AUTO) + +PB_BIND(penumbra_view_v1_WalletIdResponse, penumbra_view_v1_WalletIdResponse, AUTO) + +PB_BIND(penumbra_view_v1_IndexByAddressRequest, penumbra_view_v1_IndexByAddressRequest, AUTO) + +PB_BIND(penumbra_view_v1_IndexByAddressResponse, penumbra_view_v1_IndexByAddressResponse, AUTO) + +PB_BIND(penumbra_view_v1_EphemeralAddressRequest, penumbra_view_v1_EphemeralAddressRequest, AUTO) + +PB_BIND(penumbra_view_v1_EphemeralAddressResponse, penumbra_view_v1_EphemeralAddressResponse, AUTO) + +PB_BIND(penumbra_view_v1_BalancesRequest, penumbra_view_v1_BalancesRequest, AUTO) + +PB_BIND(penumbra_view_v1_BalancesResponse, penumbra_view_v1_BalancesResponse, 2) + +PB_BIND(penumbra_view_v1_StatusRequest, penumbra_view_v1_StatusRequest, AUTO) + +PB_BIND(penumbra_view_v1_StatusResponse, penumbra_view_v1_StatusResponse, AUTO) + +PB_BIND(penumbra_view_v1_StatusStreamRequest, penumbra_view_v1_StatusStreamRequest, AUTO) + +PB_BIND(penumbra_view_v1_StatusStreamResponse, penumbra_view_v1_StatusStreamResponse, AUTO) + +PB_BIND(penumbra_view_v1_NotesRequest, penumbra_view_v1_NotesRequest, AUTO) + +PB_BIND(penumbra_view_v1_NotesForVotingRequest, penumbra_view_v1_NotesForVotingRequest, AUTO) + +PB_BIND(penumbra_view_v1_WitnessRequest, penumbra_view_v1_WitnessRequest, 2) + +PB_BIND(penumbra_view_v1_WitnessResponse, penumbra_view_v1_WitnessResponse, AUTO) + +PB_BIND(penumbra_view_v1_WitnessAndBuildRequest, penumbra_view_v1_WitnessAndBuildRequest, 2) + +PB_BIND(penumbra_view_v1_WitnessAndBuildResponse, penumbra_view_v1_WitnessAndBuildResponse, 2) + +PB_BIND(penumbra_view_v1_WitnessAndBuildResponse_BuildProgress, penumbra_view_v1_WitnessAndBuildResponse_BuildProgress, AUTO) + +PB_BIND(penumbra_view_v1_WitnessAndBuildResponse_Complete, penumbra_view_v1_WitnessAndBuildResponse_Complete, 2) + +PB_BIND(penumbra_view_v1_AssetsRequest, penumbra_view_v1_AssetsRequest, AUTO) + +PB_BIND(penumbra_view_v1_AssetsResponse, penumbra_view_v1_AssetsResponse, AUTO) + +PB_BIND(penumbra_view_v1_AppParametersRequest, penumbra_view_v1_AppParametersRequest, AUTO) + +PB_BIND(penumbra_view_v1_AppParametersResponse, penumbra_view_v1_AppParametersResponse, 2) + +PB_BIND(penumbra_view_v1_GasPricesRequest, penumbra_view_v1_GasPricesRequest, AUTO) + +PB_BIND(penumbra_view_v1_GasPricesResponse, penumbra_view_v1_GasPricesResponse, AUTO) + +PB_BIND(penumbra_view_v1_FMDParametersRequest, penumbra_view_v1_FMDParametersRequest, AUTO) + +PB_BIND(penumbra_view_v1_FMDParametersResponse, penumbra_view_v1_FMDParametersResponse, AUTO) + +PB_BIND(penumbra_view_v1_NoteByCommitmentRequest, penumbra_view_v1_NoteByCommitmentRequest, AUTO) + +PB_BIND(penumbra_view_v1_NoteByCommitmentResponse, penumbra_view_v1_NoteByCommitmentResponse, 2) + +PB_BIND(penumbra_view_v1_SwapByCommitmentRequest, penumbra_view_v1_SwapByCommitmentRequest, AUTO) + +PB_BIND(penumbra_view_v1_SwapByCommitmentResponse, penumbra_view_v1_SwapByCommitmentResponse, 2) + +PB_BIND(penumbra_view_v1_UnclaimedSwapsRequest, penumbra_view_v1_UnclaimedSwapsRequest, AUTO) + +PB_BIND(penumbra_view_v1_UnclaimedSwapsResponse, penumbra_view_v1_UnclaimedSwapsResponse, 2) + +PB_BIND(penumbra_view_v1_NullifierStatusRequest, penumbra_view_v1_NullifierStatusRequest, AUTO) + +PB_BIND(penumbra_view_v1_NullifierStatusResponse, penumbra_view_v1_NullifierStatusResponse, AUTO) + +PB_BIND(penumbra_view_v1_TransactionInfoByHashRequest, penumbra_view_v1_TransactionInfoByHashRequest, AUTO) + +PB_BIND(penumbra_view_v1_TransactionInfoRequest, penumbra_view_v1_TransactionInfoRequest, AUTO) + +PB_BIND(penumbra_view_v1_TransactionInfo, penumbra_view_v1_TransactionInfo, 2) + +PB_BIND(penumbra_view_v1_TransactionInfoResponse, penumbra_view_v1_TransactionInfoResponse, 2) + +PB_BIND(penumbra_view_v1_TransactionInfoByHashResponse, penumbra_view_v1_TransactionInfoByHashResponse, 2) + +PB_BIND(penumbra_view_v1_NotesResponse, penumbra_view_v1_NotesResponse, 2) + +PB_BIND(penumbra_view_v1_NotesForVotingResponse, penumbra_view_v1_NotesForVotingResponse, 2) + +PB_BIND(penumbra_view_v1_SpendableNoteRecord, penumbra_view_v1_SpendableNoteRecord, 2) + +PB_BIND(penumbra_view_v1_SwapRecord, penumbra_view_v1_SwapRecord, 2) + +PB_BIND(penumbra_view_v1_OwnedPositionIdsRequest, penumbra_view_v1_OwnedPositionIdsRequest, AUTO) + +PB_BIND(penumbra_view_v1_OwnedPositionIdsResponse, penumbra_view_v1_OwnedPositionIdsResponse, AUTO) + +PB_BIND(penumbra_view_v1_AssetMetadataByIdRequest, penumbra_view_v1_AssetMetadataByIdRequest, AUTO) + +PB_BIND(penumbra_view_v1_AssetMetadataByIdResponse, penumbra_view_v1_AssetMetadataByIdResponse, AUTO) + +PB_BIND(penumbra_view_v1_DelegationsByAddressIndexRequest, penumbra_view_v1_DelegationsByAddressIndexRequest, AUTO) + +PB_BIND(penumbra_view_v1_DelegationsByAddressIndexResponse, penumbra_view_v1_DelegationsByAddressIndexResponse, 2) + +PB_BIND(penumbra_view_v1_UnbondingTokensByAddressIndexRequest, penumbra_view_v1_UnbondingTokensByAddressIndexRequest, AUTO) + +PB_BIND(penumbra_view_v1_UnbondingTokensByAddressIndexResponse, penumbra_view_v1_UnbondingTokensByAddressIndexResponse, 2) diff --git a/app/src/protobuf/penumbra/view/v1/view.pb.h b/app/src/protobuf/penumbra/view/v1/view.pb.h new file mode 100644 index 0000000..fc08350 --- /dev/null +++ b/app/src/protobuf/penumbra/view/v1/view.pb.h @@ -0,0 +1,2465 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_PENUMBRA_VIEW_V1_PENUMBRA_VIEW_V1_VIEW_PB_H_INCLUDED +#define PB_PENUMBRA_VIEW_V1_PENUMBRA_VIEW_V1_VIEW_PB_H_INCLUDED +#include + +#include "google/protobuf/any.pb.h" +#include "penumbra/core/app/v1/app.pb.h" +#include "penumbra/core/asset/v1/asset.pb.h" +#include "penumbra/core/component/auction/v1/auction.pb.h" +#include "penumbra/core/component/dex/v1/dex.pb.h" +#include "penumbra/core/component/fee/v1/fee.pb.h" +#include "penumbra/core/component/governance/v1/governance.pb.h" +#include "penumbra/core/component/ibc/v1/ibc.pb.h" +#include "penumbra/core/component/sct/v1/sct.pb.h" +#include "penumbra/core/component/shielded_pool/v1/shielded_pool.pb.h" +#include "penumbra/core/component/stake/v1/stake.pb.h" +#include "penumbra/core/keys/v1/keys.pb.h" +#include "penumbra/core/num/v1/num.pb.h" +#include "penumbra/core/transaction/v1/transaction.pb.h" +#include "penumbra/core/txhash/v1/txhash.pb.h" +#include "penumbra/crypto/tct/v1/tct.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter { + /* By default, returns delegations for all active validators. For validators + that the given address index has no delegation tokens for, a `ValueView` + with a balance of `0` will be returned. */ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_UNSPECIFIED = 0, + /* Returns only delegations to active validators that the given address + index holds delegation tokens for. */ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_ALL_ACTIVE_WITH_NONZERO_BALANCES = 1, + /* Return delegations for all validators, whether active or not. For + validators that the given address index has no delegation tokens for, a + `ValueView` with a balance of `0` will be returned. */ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_ALL = 2 +} penumbra_view_v1_DelegationsByAddressIndexRequest_Filter; + +typedef enum _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter { + /* Return all unbonding tokens, regardless of whether they're claimable + right now. */ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_UNSPECIFIED = 0, + /* Return all unbonding tokens that are currently claimable. This includes: + - tokens that have passed the `unbonding_delay` (from `StakeParameters`) + - tokens for unbonded validators */ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_CLAIMABLE = 1, + /* Return all unbonding tokens that are not yet claimable, because they are + still in the `unbonding_delay` (from `StakeParameters`) period. */ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_NOT_YET_CLAIMABLE = 2 +} penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter; + +/* Struct definitions */ +/* Filters in an `AuctionsRequest` will be combined using `AND` logic -- that + is, the more filters you add, the fewer responses you're likely to get. */ +typedef struct _penumbra_view_v1_AuctionsRequest { + /* If present, filter balances to only include the account specified by the `AddressIndex`. */ + bool has_account_filter; + penumbra_core_keys_v1_AddressIndex account_filter; + /* If present, include inactive auctions as well as active ones. */ + bool include_inactive; + /* If set, query a fullnode for the current state of the auctions. */ + bool query_latest_state; + /* If present, filter to only include auctions whose IDs are in this array. */ + pb_callback_t auction_ids_filter; +} penumbra_view_v1_AuctionsRequest; + +typedef struct _penumbra_view_v1_AuthorizeAndBuildRequest { + /* The transaction plan to authorize and build. */ + bool has_transaction_plan; + penumbra_core_transaction_v1_TransactionPlan transaction_plan; +} penumbra_view_v1_AuthorizeAndBuildRequest; + +/* Signals that building is in progress. */ +typedef struct _penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress { + /* An approximate progress of the build, from 0 to 1. */ + float progress; +} penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress; + +/* Signals that the transaction is complete. */ +typedef struct _penumbra_view_v1_AuthorizeAndBuildResponse_Complete { + /* The finished transaction. */ + bool has_transaction; + penumbra_core_transaction_v1_Transaction transaction; +} penumbra_view_v1_AuthorizeAndBuildResponse_Complete; + +typedef struct _penumbra_view_v1_AuthorizeAndBuildResponse { + pb_size_t which_status; + union { + penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress build_progress; + penumbra_view_v1_AuthorizeAndBuildResponse_Complete complete; + } status; +} penumbra_view_v1_AuthorizeAndBuildResponse; + +typedef struct _penumbra_view_v1_BroadcastTransactionRequest { + /* The transaction to broadcast. */ + bool has_transaction; + penumbra_core_transaction_v1_Transaction transaction; + /* If true, wait for the view service to detect the transaction during sync. */ + bool await_detection; +} penumbra_view_v1_BroadcastTransactionRequest; + +/* Signals that the transaction was broadcast successfully (but has not been confirmed). */ +typedef struct _penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess { + /* The hash of the transaction that was broadcast. */ + bool has_id; + penumbra_core_txhash_v1_TransactionId id; +} penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess; + +/* Signals that the transaction has been confirmed on-chain and detected by the view server. + + Will not be sent unless await_detection was true. */ +typedef struct _penumbra_view_v1_BroadcastTransactionResponse_Confirmed { + /* The hash of the transaction that was broadcast. */ + bool has_id; + penumbra_core_txhash_v1_TransactionId id; + /* The height in which the transaction was detected as included in the chain, if any. */ + uint64_t detection_height; +} penumbra_view_v1_BroadcastTransactionResponse_Confirmed; + +typedef struct _penumbra_view_v1_BroadcastTransactionResponse { + pb_size_t which_status; + union { + penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess broadcast_success; + penumbra_view_v1_BroadcastTransactionResponse_Confirmed confirmed; + } status; +} penumbra_view_v1_BroadcastTransactionResponse; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest { + /* The expiry height for the requested TransactionPlan */ + uint64_t expiry_height; + /* The memo for the requested TransactionPlan. + The memo must be unspecified unless `outputs` is nonempty. */ + bool has_memo; + penumbra_core_transaction_v1_MemoPlaintext memo; + /* If present, only spends funds from the given account. */ + bool has_source; + penumbra_core_keys_v1_AddressIndex source; + /* Request contents */ + pb_callback_t outputs; + pb_callback_t spends; + pb_callback_t swaps; + pb_callback_t swap_claims; + pb_callback_t delegations; + pb_callback_t undelegations; + pb_callback_t undelegation_claims; + pb_callback_t ibc_relay_actions; + pb_callback_t ics20_withdrawals; + pb_callback_t position_opens; + pb_callback_t position_closes; + pb_callback_t position_withdraws; + pb_callback_t dutch_auction_schedule_actions; + pb_callback_t dutch_auction_end_actions; + pb_callback_t dutch_auction_withdraw_actions; + pb_callback_t delegator_votes; + pb_size_t which_fee_mode; + union { + /* Automatically compute a fee based on gas use. */ + penumbra_core_component_fee_v1_FeeTier auto_fee; + /* A manually set fee, rather than automatically computing a fee based on gas use. */ + penumbra_core_component_fee_v1_Fee manual_fee; + } fee_mode; + /* The epoch index of the transaction being planned. */ + uint64_t epoch_index; + /* The epoch of the transaction being planned. */ + bool has_epoch; + penumbra_core_component_sct_v1_Epoch epoch; +} penumbra_view_v1_TransactionPlannerRequest; + +/* Request message subtypes */ +typedef struct _penumbra_view_v1_TransactionPlannerRequest_Output { + /* The amount and denomination in which the Output is issued. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The address to which Output will be sent. */ + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_view_v1_TransactionPlannerRequest_Output; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_Spend { + /* The input amount and denomination in which the Spend is issued. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The source address from which the Spend will be sent. */ + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_view_v1_TransactionPlannerRequest_Spend; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_Swap { + /* The input amount and denomination to be traded in the Swap. */ + bool has_value; + penumbra_core_asset_v1_Value value; + /* The denomination to be received as a Output of the Swap. */ + bool has_target_asset; + penumbra_core_asset_v1_AssetId target_asset; + /* The pre-paid fee to be paid for claiming the Swap outputs. */ + bool has_fee; + penumbra_core_component_fee_v1_Fee fee; + /* The address to which swap claim output will be sent. */ + bool has_claim_address; + penumbra_core_keys_v1_Address claim_address; +} penumbra_view_v1_TransactionPlannerRequest_Swap; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_SwapClaim { + /* SwapCommitment to identify the Swap to be claimed. + Use the commitment from the Swap message: + penumbra.core.component.dex.v1.Swap.body.payload.commitment. */ + bool has_swap_commitment; + penumbra_crypto_tct_v1_StateCommitment swap_commitment; +} penumbra_view_v1_TransactionPlannerRequest_SwapClaim; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_Delegate { + bool has_amount; + penumbra_core_num_v1_Amount amount; + bool has_rate_data; + penumbra_core_component_stake_v1_RateData rate_data; +} penumbra_view_v1_TransactionPlannerRequest_Delegate; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_Undelegate { + bool has_value; + penumbra_core_asset_v1_Value value; + bool has_rate_data; + penumbra_core_component_stake_v1_RateData rate_data; +} penumbra_view_v1_TransactionPlannerRequest_Undelegate; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim { + /* The identity key of the validator to finish undelegating from. */ + bool has_validator_identity; + penumbra_core_keys_v1_IdentityKey validator_identity; + /* The epoch in which unbonding began, used to verify the penalty. */ + uint64_t start_epoch_index; + /* The penalty applied to undelegation, in bps^2 (10e-8). + In the happy path (no slashing), this is 0. */ + bool has_penalty; + penumbra_core_component_stake_v1_Penalty penalty; + /* The amount of unbonding tokens to claim. + This is a bare number because its denom is determined by the preceding data. */ + bool has_unbonding_amount; + penumbra_core_num_v1_Amount unbonding_amount; + /* The height at which unbonding began. */ + uint64_t unbonding_start_height; +} penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_PositionOpen { + /* Contains the data defining the position, sufficient to compute its `PositionId`. + + Positions are immutable, so the `PositionData` (and hence the `PositionId`) + are unchanged over the entire lifetime of the position. */ + bool has_position; + penumbra_core_component_dex_v1_Position position; +} penumbra_view_v1_TransactionPlannerRequest_PositionOpen; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_PositionClose { + /* The position to close. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_view_v1_TransactionPlannerRequest_PositionClose; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw { + /* The position to withdraw. */ + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; + /* The position's final reserves. */ + bool has_reserves; + penumbra_core_component_dex_v1_Reserves reserves; + /* The trading pair of the position. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; +} penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule { + /* The description of the auction to schedule. */ + bool has_description; + penumbra_core_component_auction_v1_DutchAuctionDescription description; +} penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd { + /* The unique id of the auction to close. */ + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; +} penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw { + /* The auction to withdraw funds from. */ + bool has_auction_id; + penumbra_core_component_auction_v1_AuctionId auction_id; + /* The sequence number of the withdrawal. */ + uint64_t seq; +} penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw; + +typedef struct _penumbra_view_v1_TransactionPlannerRequest_DelegatorVote { + /* The proposal being voted on. */ + uint64_t proposal; + /* The vote. */ + bool has_vote; + penumbra_core_component_governance_v1_Vote vote; + /* The block height at which the proposal started voting. */ + uint64_t start_block_height; + /* The position of the state commitment tree at which the proposal is considered to have started voting. */ + uint64_t start_position; + /* The validators rate data for the proposal. */ + pb_callback_t rate_data; +} penumbra_view_v1_TransactionPlannerRequest_DelegatorVote; + +typedef struct _penumbra_view_v1_TransactionPlannerResponse { + bool has_plan; + penumbra_core_transaction_v1_TransactionPlan plan; +} penumbra_view_v1_TransactionPlannerResponse; + +typedef struct _penumbra_view_v1_AddressByIndexRequest { + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_view_v1_AddressByIndexRequest; + +typedef struct _penumbra_view_v1_AddressByIndexResponse { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_view_v1_AddressByIndexResponse; + +typedef struct _penumbra_view_v1_WalletIdRequest { + char dummy_field; +} penumbra_view_v1_WalletIdRequest; + +typedef struct _penumbra_view_v1_WalletIdResponse { + bool has_wallet_id; + penumbra_core_keys_v1_WalletId wallet_id; +} penumbra_view_v1_WalletIdResponse; + +typedef struct _penumbra_view_v1_IndexByAddressRequest { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_view_v1_IndexByAddressRequest; + +typedef struct _penumbra_view_v1_IndexByAddressResponse { + /* Will be absent if given an address not viewable by this viewing service */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_view_v1_IndexByAddressResponse; + +typedef struct _penumbra_view_v1_EphemeralAddressRequest { + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_view_v1_EphemeralAddressRequest; + +typedef struct _penumbra_view_v1_EphemeralAddressResponse { + bool has_address; + penumbra_core_keys_v1_Address address; +} penumbra_view_v1_EphemeralAddressResponse; + +typedef struct _penumbra_view_v1_BalancesRequest { + /* If present, filter balances to only include the account specified by the `AddressIndex`. */ + bool has_account_filter; + penumbra_core_keys_v1_AddressIndex account_filter; + /* If present, filter balances to only include the specified asset ID. */ + bool has_asset_id_filter; + penumbra_core_asset_v1_AssetId asset_id_filter; +} penumbra_view_v1_BalancesRequest; + +typedef struct _penumbra_view_v1_BalancesResponse { + /* Deprecated: use `account_address` instead. */ + bool has_account; + penumbra_core_keys_v1_AddressIndex account; + /* Deprecated: use `balance_view` instead. */ + bool has_balance; + penumbra_core_asset_v1_Value balance; + /* The default address for the account. + + Note that the returned balance is for all funds sent to the account, + not just funds sent to its default address. */ + bool has_account_address; + penumbra_core_keys_v1_AddressView account_address; + /* The account's balance, with metadata. */ + bool has_balance_view; + penumbra_core_asset_v1_ValueView balance_view; +} penumbra_view_v1_BalancesResponse; + +/* Requests sync status of the view service. */ +typedef struct _penumbra_view_v1_StatusRequest { + char dummy_field; +} penumbra_view_v1_StatusRequest; + +/* Returns the status of the view service and whether it is synchronized with the chain state. */ +typedef struct _penumbra_view_v1_StatusResponse { + /* The height the view service has synchronized to so far when doing a full linear sync */ + uint64_t full_sync_height; + /* The height the view service has synchronized to so far when doing a partial sync */ + uint64_t partial_sync_height; + /* Whether the view service is catching up with the chain state */ + bool catching_up; +} penumbra_view_v1_StatusResponse; + +/* Requests streaming updates on the sync height until the view service is synchronized. */ +typedef struct _penumbra_view_v1_StatusStreamRequest { + char dummy_field; +} penumbra_view_v1_StatusStreamRequest; + +/* A streaming sync status update */ +typedef struct _penumbra_view_v1_StatusStreamResponse { + /* The latest known block height */ + uint64_t latest_known_block_height; + /* The height the view service has synchronized to so far when doing a full linear sync */ + uint64_t full_sync_height; + /* The height the view service has synchronized to so far when doing a partial sync */ + uint64_t partial_sync_height; +} penumbra_view_v1_StatusStreamResponse; + +/* A query for notes known by the view service. + + This message uses the fact that all proto fields are optional + to allow various filtering on the returned notes. */ +typedef struct _penumbra_view_v1_NotesRequest { + /* If set, return spent notes as well as unspent notes. */ + bool include_spent; + /* If set, only return notes with the specified asset id. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; + /* If set, only return notes with the specified address incore.component.dex.v1. */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; + /* If set, stop returning notes once the total exceeds this amount. + + Ignored if `asset_id` is unset or if `include_spent` is set. */ + bool has_amount_to_spend; + penumbra_core_num_v1_Amount amount_to_spend; +} penumbra_view_v1_NotesRequest; + +/* A query for notes to be used for voting on a proposal. */ +typedef struct _penumbra_view_v1_NotesForVotingRequest { + /* The starting height of the proposal. */ + uint64_t votable_at_height; + /* If set, only return notes with the specified asset id. */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_view_v1_NotesForVotingRequest; + +typedef struct _penumbra_view_v1_WitnessRequest { + /* The transaction plan to witness */ + bool has_transaction_plan; + penumbra_core_transaction_v1_TransactionPlan transaction_plan; +} penumbra_view_v1_WitnessRequest; + +typedef struct _penumbra_view_v1_WitnessResponse { + bool has_witness_data; + penumbra_core_transaction_v1_WitnessData witness_data; +} penumbra_view_v1_WitnessResponse; + +typedef struct _penumbra_view_v1_WitnessAndBuildRequest { + bool has_transaction_plan; + penumbra_core_transaction_v1_TransactionPlan transaction_plan; + bool has_authorization_data; + penumbra_core_transaction_v1_AuthorizationData authorization_data; +} penumbra_view_v1_WitnessAndBuildRequest; + +/* Signals that building is in progress. */ +typedef struct _penumbra_view_v1_WitnessAndBuildResponse_BuildProgress { + /* An approximate progress of the build, from 0 to 1. */ + float progress; +} penumbra_view_v1_WitnessAndBuildResponse_BuildProgress; + +/* Signals that the transaction is complete. */ +typedef struct _penumbra_view_v1_WitnessAndBuildResponse_Complete { + /* The finished transaction. */ + bool has_transaction; + penumbra_core_transaction_v1_Transaction transaction; +} penumbra_view_v1_WitnessAndBuildResponse_Complete; + +typedef struct _penumbra_view_v1_WitnessAndBuildResponse { + pb_size_t which_status; + union { + penumbra_view_v1_WitnessAndBuildResponse_BuildProgress build_progress; + penumbra_view_v1_WitnessAndBuildResponse_Complete complete; + } status; +} penumbra_view_v1_WitnessAndBuildResponse; + +/* Requests all assets known to the view service. */ +typedef struct _penumbra_view_v1_AssetsRequest { + /* If set to false (default), returns all assets, regardless of whether the rest of the fields of + the request indicate a filter. */ + bool filtered; + /* Include these specific denominations in the response. */ + pb_callback_t include_specific_denominations; + /* Include all delegation tokens, to any validator, in the response. */ + bool include_delegation_tokens; + /* Include all unbonding tokens, from any validator, in the response. */ + bool include_unbonding_tokens; + /* Include all LP NFTs in the response. */ + bool include_lp_nfts; + /* Include all proposal NFTs in the response. */ + bool include_proposal_nfts; + /* Include all voting receipt tokens in the response. */ + bool include_voting_receipt_tokens; +} penumbra_view_v1_AssetsRequest; + +/* Requests all assets known to the view service. */ +typedef struct _penumbra_view_v1_AssetsResponse { + bool has_denom_metadata; + penumbra_core_asset_v1_Metadata denom_metadata; +} penumbra_view_v1_AssetsResponse; + +/* Requests the current app parameters from the view service. */ +typedef struct _penumbra_view_v1_AppParametersRequest { + char dummy_field; +} penumbra_view_v1_AppParametersRequest; + +typedef struct _penumbra_view_v1_AppParametersResponse { + bool has_parameters; + penumbra_core_app_v1_AppParameters parameters; +} penumbra_view_v1_AppParametersResponse; + +/* Requests the current gas prices from the view service. */ +typedef struct _penumbra_view_v1_GasPricesRequest { + char dummy_field; +} penumbra_view_v1_GasPricesRequest; + +typedef struct _penumbra_view_v1_GasPricesResponse { + /* The current gas prices, in the preferred (native) token. */ + bool has_gas_prices; + penumbra_core_component_fee_v1_GasPrices gas_prices; + /* Other gas prices for other accepted tokens. */ + pb_callback_t alt_gas_prices; +} penumbra_view_v1_GasPricesResponse; + +/* Requests the current FMD parameters from the view service. */ +typedef struct _penumbra_view_v1_FMDParametersRequest { + char dummy_field; +} penumbra_view_v1_FMDParametersRequest; + +typedef struct _penumbra_view_v1_FMDParametersResponse { + bool has_parameters; + penumbra_core_component_shielded_pool_v1_FmdParameters parameters; +} penumbra_view_v1_FMDParametersResponse; + +typedef struct _penumbra_view_v1_NoteByCommitmentRequest { + bool has_note_commitment; + penumbra_crypto_tct_v1_StateCommitment note_commitment; + /* If set to true, waits to return until the requested note is detected. */ + bool await_detection; +} penumbra_view_v1_NoteByCommitmentRequest; + +typedef struct _penumbra_view_v1_SwapByCommitmentRequest { + bool has_swap_commitment; + penumbra_crypto_tct_v1_StateCommitment swap_commitment; + /* If set to true, waits to return until the requested swap is detected. */ + bool await_detection; +} penumbra_view_v1_SwapByCommitmentRequest; + +typedef struct _penumbra_view_v1_UnclaimedSwapsRequest { + char dummy_field; +} penumbra_view_v1_UnclaimedSwapsRequest; + +typedef struct _penumbra_view_v1_NullifierStatusRequest { + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + bool await_detection; +} penumbra_view_v1_NullifierStatusRequest; + +typedef struct _penumbra_view_v1_NullifierStatusResponse { + bool spent; +} penumbra_view_v1_NullifierStatusResponse; + +typedef struct _penumbra_view_v1_TransactionInfoByHashRequest { + /* The transaction hash to query for. */ + bool has_id; + penumbra_core_txhash_v1_TransactionId id; +} penumbra_view_v1_TransactionInfoByHashRequest; + +typedef struct _penumbra_view_v1_TransactionInfoRequest { + /* If present, return only transactions after this height. */ + uint64_t start_height; + /* If present, return only transactions before this height. */ + uint64_t end_height; +} penumbra_view_v1_TransactionInfoRequest; + +typedef struct _penumbra_view_v1_TransactionInfo { + /* The height the transaction was included in a block, if known. */ + uint64_t height; + /* The hash of the transaction. */ + bool has_id; + penumbra_core_txhash_v1_TransactionId id; + /* The transaction data itself. */ + bool has_transaction; + penumbra_core_transaction_v1_Transaction transaction; + /* The transaction perspective, as seen by this view server. */ + bool has_perspective; + penumbra_core_transaction_v1_TransactionPerspective perspective; + /* A precomputed transaction view of `transaction` from `perspective`, included for convenience of clients that don't + * have support for viewing transactions on their own. */ + bool has_view; + penumbra_core_transaction_v1_TransactionView view; +} penumbra_view_v1_TransactionInfo; + +typedef struct _penumbra_view_v1_TransactionInfoResponse { + bool has_tx_info; + penumbra_view_v1_TransactionInfo tx_info; +} penumbra_view_v1_TransactionInfoResponse; + +typedef struct _penumbra_view_v1_TransactionInfoByHashResponse { + bool has_tx_info; + penumbra_view_v1_TransactionInfo tx_info; +} penumbra_view_v1_TransactionInfoByHashResponse; + +/* A note plaintext with associated metadata about its status. */ +typedef struct _penumbra_view_v1_SpendableNoteRecord { + /* The note commitment, identifying the note. */ + bool has_note_commitment; + penumbra_crypto_tct_v1_StateCommitment note_commitment; + /* The note plaintext itself. */ + bool has_note; + penumbra_core_component_shielded_pool_v1_Note note; + /* A precomputed decryption of the note's address incore.component.dex.v1. */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; + /* The note's nullifier. */ + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + /* The height at which the note was created. */ + uint64_t height_created; + /* Records whether the note was spent (and if so, at what height). */ + uint64_t height_spent; + /* The note position. */ + uint64_t position; + /* The source of the note */ + bool has_source; + penumbra_core_component_sct_v1_CommitmentSource source; + /* The sender's return address, if known. */ + bool has_return_address; + penumbra_core_keys_v1_AddressView return_address; +} penumbra_view_v1_SpendableNoteRecord; + +typedef struct _penumbra_view_v1_AuctionsResponse { + bool has_id; + penumbra_core_component_auction_v1_AuctionId id; + /* The state of the returned auction. + + Only present when `query_latest_state` was provided. */ + bool has_auction; + google_protobuf_Any auction; + /* The state of any DEX positions relevant to the returned auction. + + Only present when `query_latest_state` was provided. + Could be empty, depending on the auction state. */ + pb_callback_t positions; + /* The note recording the auction NFT. */ + bool has_note_record; + penumbra_view_v1_SpendableNoteRecord note_record; + /* The sequence number of the auction state _as known to the local view + service_. Note that the local view service may lag behind the fullnode. For + example, if the chain hits an auction's `end_height`, but the user hasn't + yet exchanged their sequence-0 (opened) auction NFT for a sequence-1 + (closed) auction NFT, the local view service will have a sequnce number of + 0. + + Dutch auctions move from: + 0 (opened) => 1 (closed) => n (withdrawn) */ + uint64_t local_seq; +} penumbra_view_v1_AuctionsResponse; + +typedef struct _penumbra_view_v1_NoteByCommitmentResponse { + bool has_spendable_note; + penumbra_view_v1_SpendableNoteRecord spendable_note; +} penumbra_view_v1_NoteByCommitmentResponse; + +typedef struct _penumbra_view_v1_NotesResponse { + bool has_note_record; + penumbra_view_v1_SpendableNoteRecord note_record; +} penumbra_view_v1_NotesResponse; + +typedef struct _penumbra_view_v1_NotesForVotingResponse { + bool has_note_record; + penumbra_view_v1_SpendableNoteRecord note_record; + bool has_identity_key; + penumbra_core_keys_v1_IdentityKey identity_key; +} penumbra_view_v1_NotesForVotingResponse; + +typedef struct _penumbra_view_v1_SwapRecord { + bool has_swap_commitment; + penumbra_crypto_tct_v1_StateCommitment swap_commitment; + bool has_swap; + penumbra_core_component_dex_v1_SwapPlaintext swap; + uint64_t position; + bool has_nullifier; + penumbra_core_component_sct_v1_Nullifier nullifier; + bool has_output_data; + penumbra_core_component_dex_v1_BatchSwapOutputData output_data; + uint64_t height_claimed; + bool has_source; + penumbra_core_component_sct_v1_CommitmentSource source; +} penumbra_view_v1_SwapRecord; + +typedef struct _penumbra_view_v1_SwapByCommitmentResponse { + bool has_swap; + penumbra_view_v1_SwapRecord swap; +} penumbra_view_v1_SwapByCommitmentResponse; + +typedef struct _penumbra_view_v1_UnclaimedSwapsResponse { + bool has_swap; + penumbra_view_v1_SwapRecord swap; +} penumbra_view_v1_UnclaimedSwapsResponse; + +typedef struct _penumbra_view_v1_OwnedPositionIdsRequest { + /* If present, return only positions with this position state. */ + bool has_position_state; + penumbra_core_component_dex_v1_PositionState position_state; + /* If present, return only positions for this trading pair. */ + bool has_trading_pair; + penumbra_core_component_dex_v1_TradingPair trading_pair; +} penumbra_view_v1_OwnedPositionIdsRequest; + +typedef struct _penumbra_view_v1_OwnedPositionIdsResponse { + bool has_position_id; + penumbra_core_component_dex_v1_PositionId position_id; +} penumbra_view_v1_OwnedPositionIdsResponse; + +/* Requests information on an asset by asset id */ +typedef struct _penumbra_view_v1_AssetMetadataByIdRequest { + /* The asset id to request information on. */ + bool has_asset_id; + penumbra_core_asset_v1_AssetId asset_id; +} penumbra_view_v1_AssetMetadataByIdRequest; + +typedef struct _penumbra_view_v1_AssetMetadataByIdResponse { + /* If present, information on the requested asset. + + If the requested asset was unknown, this field will not be present. */ + bool has_denom_metadata; + penumbra_core_asset_v1_Metadata denom_metadata; +} penumbra_view_v1_AssetMetadataByIdResponse; + +/* Requests `ValueView`s of delegation tokens for the given address index. The + returned `ValueView`s will include the `ValidatorInfo` for the delegated + validator in their `extended_metadata` fields. */ +typedef struct _penumbra_view_v1_DelegationsByAddressIndexRequest { + /* The address index to fetch delegation balances for. */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter filter; +} penumbra_view_v1_DelegationsByAddressIndexRequest; + +/* Contains a `ValueView` of delegation tokens for the requested address index. + The `ValueView` includes the `ValidatorInfo` for the delegated validator in + cits `extended_metadata` field. */ +typedef struct _penumbra_view_v1_DelegationsByAddressIndexResponse { + bool has_value_view; + penumbra_core_asset_v1_ValueView value_view; +} penumbra_view_v1_DelegationsByAddressIndexResponse; + +/* Requests unbonding tokens for a given address index, with optional filtering + for whether the tokens are currently claimable. */ +typedef struct _penumbra_view_v1_UnbondingTokensByAddressIndexRequest { + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter filter; + /* The address index to fetch unbonding tokens for. */ + bool has_address_index; + penumbra_core_keys_v1_AddressIndex address_index; +} penumbra_view_v1_UnbondingTokensByAddressIndexRequest; + +/* Returns unbonding tokens for the given address index, optionally filtered by + whether the tokens are currently claimable. */ +typedef struct _penumbra_view_v1_UnbondingTokensByAddressIndexResponse { + /* A `ValueView` representing the amount of the given unbonding token. */ + bool has_value_view; + penumbra_core_asset_v1_ValueView value_view; + /* Whether the unbonding token is currently claimable. This will only be + `true` if the `unbonding_delay` (from `StakeParameters`) has passed or the + validator has unbonded. */ + bool claimable; +} penumbra_view_v1_UnbondingTokensByAddressIndexResponse; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_MIN \ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_UNSPECIFIED +#define _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_MAX \ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_ALL +#define _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_ARRAYSIZE \ + ((penumbra_view_v1_DelegationsByAddressIndexRequest_Filter)(penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_FILTER_ALL + \ + 1)) + +#define _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_MIN \ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_UNSPECIFIED +#define _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_MAX \ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_NOT_YET_CLAIMABLE +#define _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_ARRAYSIZE \ + ((penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter)(penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_FILTER_NOT_YET_CLAIMABLE + \ + 1)) + +#define penumbra_view_v1_DelegationsByAddressIndexRequest_filter_ENUMTYPE \ + penumbra_view_v1_DelegationsByAddressIndexRequest_Filter + +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_filter_ENUMTYPE \ + penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter + +/* Initializer values for message structs */ +#define penumbra_view_v1_AuctionsRequest_init_default \ + { \ + false, penumbra_core_keys_v1_AddressIndex_init_default, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_view_v1_AuctionsResponse_init_default \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_default, false, google_protobuf_Any_init_default, \ + {{NULL}, NULL}, false, penumbra_view_v1_SpendableNoteRecord_init_default, 0 \ + } +#define penumbra_view_v1_AuthorizeAndBuildRequest_init_default \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_default } +#define penumbra_view_v1_AuthorizeAndBuildResponse_init_default \ + { \ + 0, { penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_init_default } \ + } +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_init_default \ + { 0 } +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_init_default \ + { false, penumbra_core_transaction_v1_Transaction_init_default } +#define penumbra_view_v1_BroadcastTransactionRequest_init_default \ + { false, penumbra_core_transaction_v1_Transaction_init_default, 0 } +#define penumbra_view_v1_BroadcastTransactionResponse_init_default \ + { \ + 0, { penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_init_default } \ + } +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_init_default \ + { false, penumbra_core_txhash_v1_TransactionId_init_default } +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_init_default \ + { false, penumbra_core_txhash_v1_TransactionId_init_default, 0 } +#define penumbra_view_v1_TransactionPlannerRequest_init_default \ + { \ + 0, false, penumbra_core_transaction_v1_MemoPlaintext_init_default, false, \ + penumbra_core_keys_v1_AddressIndex_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, \ + {penumbra_core_component_fee_v1_FeeTier_init_default}, 0, false, \ + penumbra_core_component_sct_v1_Epoch_init_default \ + } +#define penumbra_view_v1_TransactionPlannerRequest_Output_init_default \ + { false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_Spend_init_default \ + { false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_Swap_init_default \ + { \ + false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_asset_v1_AssetId_init_default, false, \ + penumbra_core_component_fee_v1_Fee_init_default, false, penumbra_core_keys_v1_Address_init_default \ + } +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_init_default \ + { false, penumbra_core_num_v1_Amount_init_default, false, penumbra_core_component_stake_v1_RateData_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_init_default \ + { false, penumbra_core_asset_v1_Value_init_default, false, penumbra_core_component_stake_v1_RateData_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_init_default \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_default, 0, false, \ + penumbra_core_component_stake_v1_Penalty_init_default, false, penumbra_core_num_v1_Amount_init_default, 0 \ + } +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_init_default \ + { false, penumbra_core_component_dex_v1_Position_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_default, false, \ + penumbra_core_component_dex_v1_Reserves_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default \ + } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_init_default \ + { false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_init_default \ + { false, penumbra_core_component_auction_v1_AuctionId_init_default } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_init_default \ + { false, penumbra_core_component_auction_v1_AuctionId_init_default, 0 } +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_init_default \ + { \ + 0, false, penumbra_core_component_governance_v1_Vote_init_default, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_view_v1_TransactionPlannerResponse_init_default \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_default } +#define penumbra_view_v1_AddressByIndexRequest_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default } +#define penumbra_view_v1_AddressByIndexResponse_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_view_v1_WalletIdRequest_init_default \ + { 0 } +#define penumbra_view_v1_WalletIdResponse_init_default \ + { false, penumbra_core_keys_v1_WalletId_init_default } +#define penumbra_view_v1_IndexByAddressRequest_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_view_v1_IndexByAddressResponse_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default } +#define penumbra_view_v1_EphemeralAddressRequest_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default } +#define penumbra_view_v1_EphemeralAddressResponse_init_default \ + { false, penumbra_core_keys_v1_Address_init_default } +#define penumbra_view_v1_BalancesRequest_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default, false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_view_v1_BalancesResponse_init_default \ + { \ + false, penumbra_core_keys_v1_AddressIndex_init_default, false, penumbra_core_asset_v1_Value_init_default, false, \ + penumbra_core_keys_v1_AddressView_init_default, false, penumbra_core_asset_v1_ValueView_init_default \ + } +#define penumbra_view_v1_StatusRequest_init_default \ + { 0 } +#define penumbra_view_v1_StatusResponse_init_default \ + { 0, 0, 0 } +#define penumbra_view_v1_StatusStreamRequest_init_default \ + { 0 } +#define penumbra_view_v1_StatusStreamResponse_init_default \ + { 0, 0, 0 } +#define penumbra_view_v1_NotesRequest_init_default \ + { \ + 0, false, penumbra_core_asset_v1_AssetId_init_default, false, penumbra_core_keys_v1_AddressIndex_init_default, \ + false, penumbra_core_num_v1_Amount_init_default \ + } +#define penumbra_view_v1_NotesForVotingRequest_init_default \ + { 0, false, penumbra_core_keys_v1_AddressIndex_init_default } +#define penumbra_view_v1_WitnessRequest_init_default \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_default } +#define penumbra_view_v1_WitnessResponse_init_default \ + { false, penumbra_core_transaction_v1_WitnessData_init_default } +#define penumbra_view_v1_WitnessAndBuildRequest_init_default \ + { \ + false, penumbra_core_transaction_v1_TransactionPlan_init_default, false, \ + penumbra_core_transaction_v1_AuthorizationData_init_default \ + } +#define penumbra_view_v1_WitnessAndBuildResponse_init_default \ + { \ + 0, { penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_init_default } \ + } +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_init_default \ + { 0 } +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_init_default \ + { false, penumbra_core_transaction_v1_Transaction_init_default } +#define penumbra_view_v1_AssetsRequest_init_default \ + { 0, {{NULL}, NULL}, 0, 0, 0, 0, 0 } +#define penumbra_view_v1_AssetsResponse_init_default \ + { false, penumbra_core_asset_v1_Metadata_init_default } +#define penumbra_view_v1_AppParametersRequest_init_default \ + { 0 } +#define penumbra_view_v1_AppParametersResponse_init_default \ + { false, penumbra_core_app_v1_AppParameters_init_default } +#define penumbra_view_v1_GasPricesRequest_init_default \ + { 0 } +#define penumbra_view_v1_GasPricesResponse_init_default \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_default, { {NULL}, NULL } \ + } +#define penumbra_view_v1_FMDParametersRequest_init_default \ + { 0 } +#define penumbra_view_v1_FMDParametersResponse_init_default \ + { false, penumbra_core_component_shielded_pool_v1_FmdParameters_init_default } +#define penumbra_view_v1_NoteByCommitmentRequest_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default, 0 } +#define penumbra_view_v1_NoteByCommitmentResponse_init_default \ + { false, penumbra_view_v1_SpendableNoteRecord_init_default } +#define penumbra_view_v1_SwapByCommitmentRequest_init_default \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_default, 0 } +#define penumbra_view_v1_SwapByCommitmentResponse_init_default \ + { false, penumbra_view_v1_SwapRecord_init_default } +#define penumbra_view_v1_UnclaimedSwapsRequest_init_default \ + { 0 } +#define penumbra_view_v1_UnclaimedSwapsResponse_init_default \ + { false, penumbra_view_v1_SwapRecord_init_default } +#define penumbra_view_v1_NullifierStatusRequest_init_default \ + { false, penumbra_core_component_sct_v1_Nullifier_init_default, 0 } +#define penumbra_view_v1_NullifierStatusResponse_init_default \ + { 0 } +#define penumbra_view_v1_TransactionInfoByHashRequest_init_default \ + { false, penumbra_core_txhash_v1_TransactionId_init_default } +#define penumbra_view_v1_TransactionInfoRequest_init_default \ + { 0, 0 } +#define penumbra_view_v1_TransactionInfo_init_default \ + { \ + 0, false, penumbra_core_txhash_v1_TransactionId_init_default, false, \ + penumbra_core_transaction_v1_Transaction_init_default, false, \ + penumbra_core_transaction_v1_TransactionPerspective_init_default, false, \ + penumbra_core_transaction_v1_TransactionView_init_default \ + } +#define penumbra_view_v1_TransactionInfoResponse_init_default \ + { false, penumbra_view_v1_TransactionInfo_init_default } +#define penumbra_view_v1_TransactionInfoByHashResponse_init_default \ + { false, penumbra_view_v1_TransactionInfo_init_default } +#define penumbra_view_v1_NotesResponse_init_default \ + { false, penumbra_view_v1_SpendableNoteRecord_init_default } +#define penumbra_view_v1_NotesForVotingResponse_init_default \ + { false, penumbra_view_v1_SpendableNoteRecord_init_default, false, penumbra_core_keys_v1_IdentityKey_init_default } +#define penumbra_view_v1_SpendableNoteRecord_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_default, false, \ + penumbra_core_keys_v1_AddressIndex_init_default, false, penumbra_core_component_sct_v1_Nullifier_init_default, \ + 0, 0, 0, false, penumbra_core_component_sct_v1_CommitmentSource_init_default, false, \ + penumbra_core_keys_v1_AddressView_init_default \ + } +#define penumbra_view_v1_SwapRecord_init_default \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_default, false, \ + penumbra_core_component_dex_v1_SwapPlaintext_init_default, 0, false, \ + penumbra_core_component_sct_v1_Nullifier_init_default, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_default, 0, false, \ + penumbra_core_component_sct_v1_CommitmentSource_init_default \ + } +#define penumbra_view_v1_OwnedPositionIdsRequest_init_default \ + { \ + false, penumbra_core_component_dex_v1_PositionState_init_default, false, \ + penumbra_core_component_dex_v1_TradingPair_init_default \ + } +#define penumbra_view_v1_OwnedPositionIdsResponse_init_default \ + { false, penumbra_core_component_dex_v1_PositionId_init_default } +#define penumbra_view_v1_AssetMetadataByIdRequest_init_default \ + { false, penumbra_core_asset_v1_AssetId_init_default } +#define penumbra_view_v1_AssetMetadataByIdResponse_init_default \ + { false, penumbra_core_asset_v1_Metadata_init_default } +#define penumbra_view_v1_DelegationsByAddressIndexRequest_init_default \ + { false, penumbra_core_keys_v1_AddressIndex_init_default, _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_MIN } +#define penumbra_view_v1_DelegationsByAddressIndexResponse_init_default \ + { false, penumbra_core_asset_v1_ValueView_init_default } +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_init_default \ + { \ + _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_MIN, false, \ + penumbra_core_keys_v1_AddressIndex_init_default \ + } +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_init_default \ + { false, penumbra_core_asset_v1_ValueView_init_default, 0 } +#define penumbra_view_v1_AuctionsRequest_init_zero \ + { \ + false, penumbra_core_keys_v1_AddressIndex_init_zero, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_view_v1_AuctionsResponse_init_zero \ + { \ + false, penumbra_core_component_auction_v1_AuctionId_init_zero, false, google_protobuf_Any_init_zero, \ + {{NULL}, NULL}, false, penumbra_view_v1_SpendableNoteRecord_init_zero, 0 \ + } +#define penumbra_view_v1_AuthorizeAndBuildRequest_init_zero \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_zero } +#define penumbra_view_v1_AuthorizeAndBuildResponse_init_zero \ + { \ + 0, { penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_init_zero } \ + } +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_init_zero \ + { 0 } +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_init_zero \ + { false, penumbra_core_transaction_v1_Transaction_init_zero } +#define penumbra_view_v1_BroadcastTransactionRequest_init_zero \ + { false, penumbra_core_transaction_v1_Transaction_init_zero, 0 } +#define penumbra_view_v1_BroadcastTransactionResponse_init_zero \ + { \ + 0, { penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_init_zero } \ + } +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_init_zero \ + { false, penumbra_core_txhash_v1_TransactionId_init_zero } +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_init_zero \ + { false, penumbra_core_txhash_v1_TransactionId_init_zero, 0 } +#define penumbra_view_v1_TransactionPlannerRequest_init_zero \ + { \ + 0, false, penumbra_core_transaction_v1_MemoPlaintext_init_zero, false, \ + penumbra_core_keys_v1_AddressIndex_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, \ + {penumbra_core_component_fee_v1_FeeTier_init_zero}, 0, false, penumbra_core_component_sct_v1_Epoch_init_zero \ + } +#define penumbra_view_v1_TransactionPlannerRequest_Output_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_Spend_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_Swap_init_zero \ + { \ + false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero, false, \ + penumbra_core_component_fee_v1_Fee_init_zero, false, penumbra_core_keys_v1_Address_init_zero \ + } +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_init_zero \ + { false, penumbra_core_num_v1_Amount_init_zero, false, penumbra_core_component_stake_v1_RateData_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_init_zero \ + { false, penumbra_core_asset_v1_Value_init_zero, false, penumbra_core_component_stake_v1_RateData_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_init_zero \ + { \ + false, penumbra_core_keys_v1_IdentityKey_init_zero, 0, false, penumbra_core_component_stake_v1_Penalty_init_zero, \ + false, penumbra_core_num_v1_Amount_init_zero, 0 \ + } +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_init_zero \ + { false, penumbra_core_component_dex_v1_Position_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionId_init_zero, false, \ + penumbra_core_component_dex_v1_Reserves_init_zero, false, penumbra_core_component_dex_v1_TradingPair_init_zero \ + } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_init_zero \ + { false, penumbra_core_component_auction_v1_DutchAuctionDescription_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionId_init_zero } +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_init_zero \ + { false, penumbra_core_component_auction_v1_AuctionId_init_zero, 0 } +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_init_zero \ + { \ + 0, false, penumbra_core_component_governance_v1_Vote_init_zero, 0, 0, { {NULL}, NULL } \ + } +#define penumbra_view_v1_TransactionPlannerResponse_init_zero \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_zero } +#define penumbra_view_v1_AddressByIndexRequest_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero } +#define penumbra_view_v1_AddressByIndexResponse_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_view_v1_WalletIdRequest_init_zero \ + { 0 } +#define penumbra_view_v1_WalletIdResponse_init_zero \ + { false, penumbra_core_keys_v1_WalletId_init_zero } +#define penumbra_view_v1_IndexByAddressRequest_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_view_v1_IndexByAddressResponse_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero } +#define penumbra_view_v1_EphemeralAddressRequest_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero } +#define penumbra_view_v1_EphemeralAddressResponse_init_zero \ + { false, penumbra_core_keys_v1_Address_init_zero } +#define penumbra_view_v1_BalancesRequest_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero, false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_view_v1_BalancesResponse_init_zero \ + { \ + false, penumbra_core_keys_v1_AddressIndex_init_zero, false, penumbra_core_asset_v1_Value_init_zero, false, \ + penumbra_core_keys_v1_AddressView_init_zero, false, penumbra_core_asset_v1_ValueView_init_zero \ + } +#define penumbra_view_v1_StatusRequest_init_zero \ + { 0 } +#define penumbra_view_v1_StatusResponse_init_zero \ + { 0, 0, 0 } +#define penumbra_view_v1_StatusStreamRequest_init_zero \ + { 0 } +#define penumbra_view_v1_StatusStreamResponse_init_zero \ + { 0, 0, 0 } +#define penumbra_view_v1_NotesRequest_init_zero \ + { \ + 0, false, penumbra_core_asset_v1_AssetId_init_zero, false, penumbra_core_keys_v1_AddressIndex_init_zero, false, \ + penumbra_core_num_v1_Amount_init_zero \ + } +#define penumbra_view_v1_NotesForVotingRequest_init_zero \ + { 0, false, penumbra_core_keys_v1_AddressIndex_init_zero } +#define penumbra_view_v1_WitnessRequest_init_zero \ + { false, penumbra_core_transaction_v1_TransactionPlan_init_zero } +#define penumbra_view_v1_WitnessResponse_init_zero \ + { false, penumbra_core_transaction_v1_WitnessData_init_zero } +#define penumbra_view_v1_WitnessAndBuildRequest_init_zero \ + { \ + false, penumbra_core_transaction_v1_TransactionPlan_init_zero, false, \ + penumbra_core_transaction_v1_AuthorizationData_init_zero \ + } +#define penumbra_view_v1_WitnessAndBuildResponse_init_zero \ + { \ + 0, { penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_init_zero } \ + } +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_init_zero \ + { 0 } +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_init_zero \ + { false, penumbra_core_transaction_v1_Transaction_init_zero } +#define penumbra_view_v1_AssetsRequest_init_zero \ + { 0, {{NULL}, NULL}, 0, 0, 0, 0, 0 } +#define penumbra_view_v1_AssetsResponse_init_zero \ + { false, penumbra_core_asset_v1_Metadata_init_zero } +#define penumbra_view_v1_AppParametersRequest_init_zero \ + { 0 } +#define penumbra_view_v1_AppParametersResponse_init_zero \ + { false, penumbra_core_app_v1_AppParameters_init_zero } +#define penumbra_view_v1_GasPricesRequest_init_zero \ + { 0 } +#define penumbra_view_v1_GasPricesResponse_init_zero \ + { \ + false, penumbra_core_component_fee_v1_GasPrices_init_zero, { {NULL}, NULL } \ + } +#define penumbra_view_v1_FMDParametersRequest_init_zero \ + { 0 } +#define penumbra_view_v1_FMDParametersResponse_init_zero \ + { false, penumbra_core_component_shielded_pool_v1_FmdParameters_init_zero } +#define penumbra_view_v1_NoteByCommitmentRequest_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero, 0 } +#define penumbra_view_v1_NoteByCommitmentResponse_init_zero \ + { false, penumbra_view_v1_SpendableNoteRecord_init_zero } +#define penumbra_view_v1_SwapByCommitmentRequest_init_zero \ + { false, penumbra_crypto_tct_v1_StateCommitment_init_zero, 0 } +#define penumbra_view_v1_SwapByCommitmentResponse_init_zero \ + { false, penumbra_view_v1_SwapRecord_init_zero } +#define penumbra_view_v1_UnclaimedSwapsRequest_init_zero \ + { 0 } +#define penumbra_view_v1_UnclaimedSwapsResponse_init_zero \ + { false, penumbra_view_v1_SwapRecord_init_zero } +#define penumbra_view_v1_NullifierStatusRequest_init_zero \ + { false, penumbra_core_component_sct_v1_Nullifier_init_zero, 0 } +#define penumbra_view_v1_NullifierStatusResponse_init_zero \ + { 0 } +#define penumbra_view_v1_TransactionInfoByHashRequest_init_zero \ + { false, penumbra_core_txhash_v1_TransactionId_init_zero } +#define penumbra_view_v1_TransactionInfoRequest_init_zero \ + { 0, 0 } +#define penumbra_view_v1_TransactionInfo_init_zero \ + { \ + 0, false, penumbra_core_txhash_v1_TransactionId_init_zero, false, \ + penumbra_core_transaction_v1_Transaction_init_zero, false, \ + penumbra_core_transaction_v1_TransactionPerspective_init_zero, false, \ + penumbra_core_transaction_v1_TransactionView_init_zero \ + } +#define penumbra_view_v1_TransactionInfoResponse_init_zero \ + { false, penumbra_view_v1_TransactionInfo_init_zero } +#define penumbra_view_v1_TransactionInfoByHashResponse_init_zero \ + { false, penumbra_view_v1_TransactionInfo_init_zero } +#define penumbra_view_v1_NotesResponse_init_zero \ + { false, penumbra_view_v1_SpendableNoteRecord_init_zero } +#define penumbra_view_v1_NotesForVotingResponse_init_zero \ + { false, penumbra_view_v1_SpendableNoteRecord_init_zero, false, penumbra_core_keys_v1_IdentityKey_init_zero } +#define penumbra_view_v1_SpendableNoteRecord_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, false, \ + penumbra_core_component_shielded_pool_v1_Note_init_zero, false, penumbra_core_keys_v1_AddressIndex_init_zero, \ + false, penumbra_core_component_sct_v1_Nullifier_init_zero, 0, 0, 0, false, \ + penumbra_core_component_sct_v1_CommitmentSource_init_zero, false, penumbra_core_keys_v1_AddressView_init_zero \ + } +#define penumbra_view_v1_SwapRecord_init_zero \ + { \ + false, penumbra_crypto_tct_v1_StateCommitment_init_zero, false, \ + penumbra_core_component_dex_v1_SwapPlaintext_init_zero, 0, false, \ + penumbra_core_component_sct_v1_Nullifier_init_zero, false, \ + penumbra_core_component_dex_v1_BatchSwapOutputData_init_zero, 0, false, \ + penumbra_core_component_sct_v1_CommitmentSource_init_zero \ + } +#define penumbra_view_v1_OwnedPositionIdsRequest_init_zero \ + { \ + false, penumbra_core_component_dex_v1_PositionState_init_zero, false, \ + penumbra_core_component_dex_v1_TradingPair_init_zero \ + } +#define penumbra_view_v1_OwnedPositionIdsResponse_init_zero \ + { false, penumbra_core_component_dex_v1_PositionId_init_zero } +#define penumbra_view_v1_AssetMetadataByIdRequest_init_zero \ + { false, penumbra_core_asset_v1_AssetId_init_zero } +#define penumbra_view_v1_AssetMetadataByIdResponse_init_zero \ + { false, penumbra_core_asset_v1_Metadata_init_zero } +#define penumbra_view_v1_DelegationsByAddressIndexRequest_init_zero \ + { false, penumbra_core_keys_v1_AddressIndex_init_zero, _penumbra_view_v1_DelegationsByAddressIndexRequest_Filter_MIN } +#define penumbra_view_v1_DelegationsByAddressIndexResponse_init_zero \ + { false, penumbra_core_asset_v1_ValueView_init_zero } +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_init_zero \ + { \ + _penumbra_view_v1_UnbondingTokensByAddressIndexRequest_Filter_MIN, false, \ + penumbra_core_keys_v1_AddressIndex_init_zero \ + } +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_init_zero \ + { false, penumbra_core_asset_v1_ValueView_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define penumbra_view_v1_AuctionsRequest_account_filter_tag 1 +#define penumbra_view_v1_AuctionsRequest_include_inactive_tag 2 +#define penumbra_view_v1_AuctionsRequest_query_latest_state_tag 3 +#define penumbra_view_v1_AuctionsRequest_auction_ids_filter_tag 4 +#define penumbra_view_v1_AuthorizeAndBuildRequest_transaction_plan_tag 1 +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_progress_tag 1 +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_transaction_tag 1 +#define penumbra_view_v1_AuthorizeAndBuildResponse_build_progress_tag 1 +#define penumbra_view_v1_AuthorizeAndBuildResponse_complete_tag 2 +#define penumbra_view_v1_BroadcastTransactionRequest_transaction_tag 1 +#define penumbra_view_v1_BroadcastTransactionRequest_await_detection_tag 2 +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_id_tag 1 +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_id_tag 1 +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_detection_height_tag 2 +#define penumbra_view_v1_BroadcastTransactionResponse_broadcast_success_tag 1 +#define penumbra_view_v1_BroadcastTransactionResponse_confirmed_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_expiry_height_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_memo_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_source_tag 4 +#define penumbra_view_v1_TransactionPlannerRequest_outputs_tag 20 +#define penumbra_view_v1_TransactionPlannerRequest_spends_tag 21 +#define penumbra_view_v1_TransactionPlannerRequest_swaps_tag 30 +#define penumbra_view_v1_TransactionPlannerRequest_swap_claims_tag 31 +#define penumbra_view_v1_TransactionPlannerRequest_delegations_tag 40 +#define penumbra_view_v1_TransactionPlannerRequest_undelegations_tag 50 +#define penumbra_view_v1_TransactionPlannerRequest_undelegation_claims_tag 51 +#define penumbra_view_v1_TransactionPlannerRequest_ibc_relay_actions_tag 60 +#define penumbra_view_v1_TransactionPlannerRequest_ics20_withdrawals_tag 61 +#define penumbra_view_v1_TransactionPlannerRequest_position_opens_tag 70 +#define penumbra_view_v1_TransactionPlannerRequest_position_closes_tag 71 +#define penumbra_view_v1_TransactionPlannerRequest_position_withdraws_tag 72 +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_schedule_actions_tag 73 +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_end_actions_tag 74 +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_withdraw_actions_tag 75 +#define penumbra_view_v1_TransactionPlannerRequest_delegator_votes_tag 76 +#define penumbra_view_v1_TransactionPlannerRequest_auto_fee_tag 100 +#define penumbra_view_v1_TransactionPlannerRequest_manual_fee_tag 101 +#define penumbra_view_v1_TransactionPlannerRequest_epoch_index_tag 200 +#define penumbra_view_v1_TransactionPlannerRequest_epoch_tag 201 +#define penumbra_view_v1_TransactionPlannerRequest_Output_value_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Output_address_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_Spend_value_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Spend_address_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_Swap_value_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Swap_target_asset_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_Swap_fee_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_Swap_claim_address_tag 4 +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_swap_commitment_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_amount_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_rate_data_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_value_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_rate_data_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_validator_identity_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_start_epoch_index_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_penalty_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_unbonding_amount_tag 4 +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_unbonding_start_height_tag 5 +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_position_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_position_id_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_position_id_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_reserves_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_trading_pair_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_description_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_auction_id_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_auction_id_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_seq_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_proposal_tag 1 +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_vote_tag 2 +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_start_block_height_tag 3 +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_start_position_tag 4 +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_rate_data_tag 5 +#define penumbra_view_v1_TransactionPlannerResponse_plan_tag 1 +#define penumbra_view_v1_AddressByIndexRequest_address_index_tag 1 +#define penumbra_view_v1_AddressByIndexResponse_address_tag 1 +#define penumbra_view_v1_WalletIdResponse_wallet_id_tag 1 +#define penumbra_view_v1_IndexByAddressRequest_address_tag 1 +#define penumbra_view_v1_IndexByAddressResponse_address_index_tag 1 +#define penumbra_view_v1_EphemeralAddressRequest_address_index_tag 1 +#define penumbra_view_v1_EphemeralAddressResponse_address_tag 1 +#define penumbra_view_v1_BalancesRequest_account_filter_tag 1 +#define penumbra_view_v1_BalancesRequest_asset_id_filter_tag 2 +#define penumbra_view_v1_BalancesResponse_account_tag 1 +#define penumbra_view_v1_BalancesResponse_balance_tag 2 +#define penumbra_view_v1_BalancesResponse_account_address_tag 3 +#define penumbra_view_v1_BalancesResponse_balance_view_tag 4 +#define penumbra_view_v1_StatusResponse_full_sync_height_tag 1 +#define penumbra_view_v1_StatusResponse_partial_sync_height_tag 2 +#define penumbra_view_v1_StatusResponse_catching_up_tag 3 +#define penumbra_view_v1_StatusStreamResponse_latest_known_block_height_tag 1 +#define penumbra_view_v1_StatusStreamResponse_full_sync_height_tag 2 +#define penumbra_view_v1_StatusStreamResponse_partial_sync_height_tag 3 +#define penumbra_view_v1_NotesRequest_include_spent_tag 2 +#define penumbra_view_v1_NotesRequest_asset_id_tag 3 +#define penumbra_view_v1_NotesRequest_address_index_tag 4 +#define penumbra_view_v1_NotesRequest_amount_to_spend_tag 6 +#define penumbra_view_v1_NotesForVotingRequest_votable_at_height_tag 1 +#define penumbra_view_v1_NotesForVotingRequest_address_index_tag 3 +#define penumbra_view_v1_WitnessRequest_transaction_plan_tag 3 +#define penumbra_view_v1_WitnessResponse_witness_data_tag 1 +#define penumbra_view_v1_WitnessAndBuildRequest_transaction_plan_tag 1 +#define penumbra_view_v1_WitnessAndBuildRequest_authorization_data_tag 2 +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_progress_tag 1 +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_transaction_tag 1 +#define penumbra_view_v1_WitnessAndBuildResponse_build_progress_tag 1 +#define penumbra_view_v1_WitnessAndBuildResponse_complete_tag 2 +#define penumbra_view_v1_AssetsRequest_filtered_tag 1 +#define penumbra_view_v1_AssetsRequest_include_specific_denominations_tag 2 +#define penumbra_view_v1_AssetsRequest_include_delegation_tokens_tag 3 +#define penumbra_view_v1_AssetsRequest_include_unbonding_tokens_tag 4 +#define penumbra_view_v1_AssetsRequest_include_lp_nfts_tag 5 +#define penumbra_view_v1_AssetsRequest_include_proposal_nfts_tag 6 +#define penumbra_view_v1_AssetsRequest_include_voting_receipt_tokens_tag 7 +#define penumbra_view_v1_AssetsResponse_denom_metadata_tag 2 +#define penumbra_view_v1_AppParametersResponse_parameters_tag 1 +#define penumbra_view_v1_GasPricesResponse_gas_prices_tag 1 +#define penumbra_view_v1_GasPricesResponse_alt_gas_prices_tag 2 +#define penumbra_view_v1_FMDParametersResponse_parameters_tag 1 +#define penumbra_view_v1_NoteByCommitmentRequest_note_commitment_tag 2 +#define penumbra_view_v1_NoteByCommitmentRequest_await_detection_tag 3 +#define penumbra_view_v1_SwapByCommitmentRequest_swap_commitment_tag 2 +#define penumbra_view_v1_SwapByCommitmentRequest_await_detection_tag 3 +#define penumbra_view_v1_NullifierStatusRequest_nullifier_tag 2 +#define penumbra_view_v1_NullifierStatusRequest_await_detection_tag 3 +#define penumbra_view_v1_NullifierStatusResponse_spent_tag 1 +#define penumbra_view_v1_TransactionInfoByHashRequest_id_tag 2 +#define penumbra_view_v1_TransactionInfoRequest_start_height_tag 1 +#define penumbra_view_v1_TransactionInfoRequest_end_height_tag 2 +#define penumbra_view_v1_TransactionInfo_height_tag 1 +#define penumbra_view_v1_TransactionInfo_id_tag 2 +#define penumbra_view_v1_TransactionInfo_transaction_tag 3 +#define penumbra_view_v1_TransactionInfo_perspective_tag 4 +#define penumbra_view_v1_TransactionInfo_view_tag 5 +#define penumbra_view_v1_TransactionInfoResponse_tx_info_tag 1 +#define penumbra_view_v1_TransactionInfoByHashResponse_tx_info_tag 1 +#define penumbra_view_v1_SpendableNoteRecord_note_commitment_tag 1 +#define penumbra_view_v1_SpendableNoteRecord_note_tag 2 +#define penumbra_view_v1_SpendableNoteRecord_address_index_tag 3 +#define penumbra_view_v1_SpendableNoteRecord_nullifier_tag 4 +#define penumbra_view_v1_SpendableNoteRecord_height_created_tag 5 +#define penumbra_view_v1_SpendableNoteRecord_height_spent_tag 6 +#define penumbra_view_v1_SpendableNoteRecord_position_tag 7 +#define penumbra_view_v1_SpendableNoteRecord_source_tag 8 +#define penumbra_view_v1_SpendableNoteRecord_return_address_tag 9 +#define penumbra_view_v1_AuctionsResponse_id_tag 1 +#define penumbra_view_v1_AuctionsResponse_auction_tag 2 +#define penumbra_view_v1_AuctionsResponse_positions_tag 3 +#define penumbra_view_v1_AuctionsResponse_note_record_tag 4 +#define penumbra_view_v1_AuctionsResponse_local_seq_tag 5 +#define penumbra_view_v1_NoteByCommitmentResponse_spendable_note_tag 1 +#define penumbra_view_v1_NotesResponse_note_record_tag 1 +#define penumbra_view_v1_NotesForVotingResponse_note_record_tag 1 +#define penumbra_view_v1_NotesForVotingResponse_identity_key_tag 2 +#define penumbra_view_v1_SwapRecord_swap_commitment_tag 1 +#define penumbra_view_v1_SwapRecord_swap_tag 2 +#define penumbra_view_v1_SwapRecord_position_tag 3 +#define penumbra_view_v1_SwapRecord_nullifier_tag 4 +#define penumbra_view_v1_SwapRecord_output_data_tag 5 +#define penumbra_view_v1_SwapRecord_height_claimed_tag 6 +#define penumbra_view_v1_SwapRecord_source_tag 7 +#define penumbra_view_v1_SwapByCommitmentResponse_swap_tag 1 +#define penumbra_view_v1_UnclaimedSwapsResponse_swap_tag 1 +#define penumbra_view_v1_OwnedPositionIdsRequest_position_state_tag 1 +#define penumbra_view_v1_OwnedPositionIdsRequest_trading_pair_tag 2 +#define penumbra_view_v1_OwnedPositionIdsResponse_position_id_tag 1 +#define penumbra_view_v1_AssetMetadataByIdRequest_asset_id_tag 2 +#define penumbra_view_v1_AssetMetadataByIdResponse_denom_metadata_tag 1 +#define penumbra_view_v1_DelegationsByAddressIndexRequest_address_index_tag 1 +#define penumbra_view_v1_DelegationsByAddressIndexRequest_filter_tag 2 +#define penumbra_view_v1_DelegationsByAddressIndexResponse_value_view_tag 1 +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_filter_tag 1 +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_address_index_tag 2 +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_value_view_tag 1 +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_claimable_tag 2 + +/* Struct field encoding specification for nanopb */ +#define penumbra_view_v1_AuctionsRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, account_filter, 1) \ + X(a, STATIC, SINGULAR, BOOL, include_inactive, 2) \ + X(a, STATIC, SINGULAR, BOOL, query_latest_state, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, auction_ids_filter, 4) +#define penumbra_view_v1_AuctionsRequest_CALLBACK pb_default_field_callback +#define penumbra_view_v1_AuctionsRequest_DEFAULT NULL +#define penumbra_view_v1_AuctionsRequest_account_filter_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_AuctionsRequest_auction_ids_filter_MSGTYPE penumbra_core_component_auction_v1_AuctionId + +#define penumbra_view_v1_AuctionsResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, positions, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_record, 4) \ + X(a, STATIC, SINGULAR, UINT64, local_seq, 5) +#define penumbra_view_v1_AuctionsResponse_CALLBACK pb_default_field_callback +#define penumbra_view_v1_AuctionsResponse_DEFAULT NULL +#define penumbra_view_v1_AuctionsResponse_id_MSGTYPE penumbra_core_component_auction_v1_AuctionId +#define penumbra_view_v1_AuctionsResponse_auction_MSGTYPE google_protobuf_Any +#define penumbra_view_v1_AuctionsResponse_positions_MSGTYPE penumbra_core_component_dex_v1_Position +#define penumbra_view_v1_AuctionsResponse_note_record_MSGTYPE penumbra_view_v1_SpendableNoteRecord + +#define penumbra_view_v1_AuthorizeAndBuildRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, transaction_plan, 1) +#define penumbra_view_v1_AuthorizeAndBuildRequest_CALLBACK NULL +#define penumbra_view_v1_AuthorizeAndBuildRequest_DEFAULT NULL +#define penumbra_view_v1_AuthorizeAndBuildRequest_transaction_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan + +#define penumbra_view_v1_AuthorizeAndBuildResponse_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (status, build_progress, status.build_progress), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (status, complete, status.complete), 2) +#define penumbra_view_v1_AuthorizeAndBuildResponse_CALLBACK NULL +#define penumbra_view_v1_AuthorizeAndBuildResponse_DEFAULT NULL +#define penumbra_view_v1_AuthorizeAndBuildResponse_status_build_progress_MSGTYPE \ + penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress +#define penumbra_view_v1_AuthorizeAndBuildResponse_status_complete_MSGTYPE \ + penumbra_view_v1_AuthorizeAndBuildResponse_Complete + +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_FIELDLIST(X, a) X(a, STATIC, SINGULAR, FLOAT, progress, 1) +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_CALLBACK NULL +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_DEFAULT NULL + +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, transaction, 1) +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_CALLBACK NULL +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_DEFAULT NULL +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_transaction_MSGTYPE penumbra_core_transaction_v1_Transaction + +#define penumbra_view_v1_BroadcastTransactionRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction, 1) \ + X(a, STATIC, SINGULAR, BOOL, await_detection, 2) +#define penumbra_view_v1_BroadcastTransactionRequest_CALLBACK NULL +#define penumbra_view_v1_BroadcastTransactionRequest_DEFAULT NULL +#define penumbra_view_v1_BroadcastTransactionRequest_transaction_MSGTYPE penumbra_core_transaction_v1_Transaction + +#define penumbra_view_v1_BroadcastTransactionResponse_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (status, broadcast_success, status.broadcast_success), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (status, confirmed, status.confirmed), 2) +#define penumbra_view_v1_BroadcastTransactionResponse_CALLBACK NULL +#define penumbra_view_v1_BroadcastTransactionResponse_DEFAULT NULL +#define penumbra_view_v1_BroadcastTransactionResponse_status_broadcast_success_MSGTYPE \ + penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess +#define penumbra_view_v1_BroadcastTransactionResponse_status_confirmed_MSGTYPE \ + penumbra_view_v1_BroadcastTransactionResponse_Confirmed + +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, id, 1) +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_CALLBACK NULL +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_DEFAULT NULL +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_id_MSGTYPE penumbra_core_txhash_v1_TransactionId + +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 1) \ + X(a, STATIC, SINGULAR, UINT64, detection_height, 2) +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_CALLBACK NULL +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_DEFAULT NULL +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_id_MSGTYPE penumbra_core_txhash_v1_TransactionId + +#define penumbra_view_v1_TransactionPlannerRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, expiry_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, memo, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, source, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, outputs, 20) \ + X(a, CALLBACK, REPEATED, MESSAGE, spends, 21) \ + X(a, CALLBACK, REPEATED, MESSAGE, swaps, 30) \ + X(a, CALLBACK, REPEATED, MESSAGE, swap_claims, 31) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegations, 40) \ + X(a, CALLBACK, REPEATED, MESSAGE, undelegations, 50) \ + X(a, CALLBACK, REPEATED, MESSAGE, undelegation_claims, 51) \ + X(a, CALLBACK, REPEATED, MESSAGE, ibc_relay_actions, 60) \ + X(a, CALLBACK, REPEATED, MESSAGE, ics20_withdrawals, 61) \ + X(a, CALLBACK, REPEATED, MESSAGE, position_opens, 70) \ + X(a, CALLBACK, REPEATED, MESSAGE, position_closes, 71) \ + X(a, CALLBACK, REPEATED, MESSAGE, position_withdraws, 72) \ + X(a, CALLBACK, REPEATED, MESSAGE, dutch_auction_schedule_actions, 73) \ + X(a, CALLBACK, REPEATED, MESSAGE, dutch_auction_end_actions, 74) \ + X(a, CALLBACK, REPEATED, MESSAGE, dutch_auction_withdraw_actions, 75) \ + X(a, CALLBACK, REPEATED, MESSAGE, delegator_votes, 76) \ + X(a, STATIC, ONEOF, MESSAGE, (fee_mode, auto_fee, fee_mode.auto_fee), 100) \ + X(a, STATIC, ONEOF, MESSAGE, (fee_mode, manual_fee, fee_mode.manual_fee), 101) \ + X(a, STATIC, SINGULAR, UINT64, epoch_index, 200) \ + X(a, STATIC, OPTIONAL, MESSAGE, epoch, 201) +#define penumbra_view_v1_TransactionPlannerRequest_CALLBACK pb_default_field_callback +#define penumbra_view_v1_TransactionPlannerRequest_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_memo_MSGTYPE penumbra_core_transaction_v1_MemoPlaintext +#define penumbra_view_v1_TransactionPlannerRequest_source_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_TransactionPlannerRequest_outputs_MSGTYPE penumbra_view_v1_TransactionPlannerRequest_Output +#define penumbra_view_v1_TransactionPlannerRequest_spends_MSGTYPE penumbra_view_v1_TransactionPlannerRequest_Spend +#define penumbra_view_v1_TransactionPlannerRequest_swaps_MSGTYPE penumbra_view_v1_TransactionPlannerRequest_Swap +#define penumbra_view_v1_TransactionPlannerRequest_swap_claims_MSGTYPE penumbra_view_v1_TransactionPlannerRequest_SwapClaim +#define penumbra_view_v1_TransactionPlannerRequest_delegations_MSGTYPE penumbra_view_v1_TransactionPlannerRequest_Delegate +#define penumbra_view_v1_TransactionPlannerRequest_undelegations_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_Undelegate +#define penumbra_view_v1_TransactionPlannerRequest_undelegation_claims_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim +#define penumbra_view_v1_TransactionPlannerRequest_ibc_relay_actions_MSGTYPE penumbra_core_component_ibc_v1_IbcRelay +#define penumbra_view_v1_TransactionPlannerRequest_ics20_withdrawals_MSGTYPE penumbra_core_component_ibc_v1_Ics20Withdrawal +#define penumbra_view_v1_TransactionPlannerRequest_position_opens_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_PositionOpen +#define penumbra_view_v1_TransactionPlannerRequest_position_closes_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_PositionClose +#define penumbra_view_v1_TransactionPlannerRequest_position_withdraws_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_schedule_actions_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_end_actions_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd +#define penumbra_view_v1_TransactionPlannerRequest_dutch_auction_withdraw_actions_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw +#define penumbra_view_v1_TransactionPlannerRequest_delegator_votes_MSGTYPE \ + penumbra_view_v1_TransactionPlannerRequest_DelegatorVote +#define penumbra_view_v1_TransactionPlannerRequest_fee_mode_auto_fee_MSGTYPE penumbra_core_component_fee_v1_FeeTier +#define penumbra_view_v1_TransactionPlannerRequest_fee_mode_manual_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_view_v1_TransactionPlannerRequest_epoch_MSGTYPE penumbra_core_component_sct_v1_Epoch + +#define penumbra_view_v1_TransactionPlannerRequest_Output_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 2) +#define penumbra_view_v1_TransactionPlannerRequest_Output_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_Output_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_Output_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_view_v1_TransactionPlannerRequest_Output_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_TransactionPlannerRequest_Spend_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, address, 2) +#define penumbra_view_v1_TransactionPlannerRequest_Spend_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_Spend_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_Spend_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_view_v1_TransactionPlannerRequest_Spend_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_TransactionPlannerRequest_Swap_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, target_asset, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, fee, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, claim_address, 4) +#define penumbra_view_v1_TransactionPlannerRequest_Swap_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_Swap_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_Swap_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_view_v1_TransactionPlannerRequest_Swap_target_asset_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_view_v1_TransactionPlannerRequest_Swap_fee_MSGTYPE penumbra_core_component_fee_v1_Fee +#define penumbra_view_v1_TransactionPlannerRequest_Swap_claim_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_commitment, 1) +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_swap_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rate_data, 3) +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_amount_MSGTYPE penumbra_core_num_v1_Amount +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_rate_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, rate_data, 2) +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_value_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_rate_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_identity, 1) \ + X(a, STATIC, SINGULAR, UINT64, start_epoch_index, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, penalty, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, unbonding_amount, 4) \ + X(a, STATIC, SINGULAR, UINT64, unbonding_start_height, 5) +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_validator_identity_MSGTYPE \ + penumbra_core_keys_v1_IdentityKey +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_penalty_MSGTYPE penumbra_core_component_stake_v1_Penalty +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_unbonding_amount_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, position, 1) +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_position_MSGTYPE penumbra_core_component_dex_v1_Position + +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_position_id_MSGTYPE \ + penumbra_core_component_dex_v1_PositionId + +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, reserves, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 3) +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_position_id_MSGTYPE \ + penumbra_core_component_dex_v1_PositionId +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_reserves_MSGTYPE penumbra_core_component_dex_v1_Reserves +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_trading_pair_MSGTYPE \ + penumbra_core_component_dex_v1_TradingPair + +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, description, 1) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_description_MSGTYPE \ + penumbra_core_component_auction_v1_DutchAuctionDescription + +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId + +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, auction_id, 1) \ + X(a, STATIC, SINGULAR, UINT64, seq, 2) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_auction_id_MSGTYPE \ + penumbra_core_component_auction_v1_AuctionId + +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, proposal, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote, 2) \ + X(a, STATIC, SINGULAR, UINT64, start_block_height, 3) \ + X(a, STATIC, SINGULAR, UINT64, start_position, 4) \ + X(a, CALLBACK, REPEATED, MESSAGE, rate_data, 5) +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_CALLBACK pb_default_field_callback +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_vote_MSGTYPE penumbra_core_component_governance_v1_Vote +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_rate_data_MSGTYPE penumbra_core_component_stake_v1_RateData + +#define penumbra_view_v1_TransactionPlannerResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, plan, 1) +#define penumbra_view_v1_TransactionPlannerResponse_CALLBACK NULL +#define penumbra_view_v1_TransactionPlannerResponse_DEFAULT NULL +#define penumbra_view_v1_TransactionPlannerResponse_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan + +#define penumbra_view_v1_AddressByIndexRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address_index, 1) +#define penumbra_view_v1_AddressByIndexRequest_CALLBACK NULL +#define penumbra_view_v1_AddressByIndexRequest_DEFAULT NULL +#define penumbra_view_v1_AddressByIndexRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_AddressByIndexResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_view_v1_AddressByIndexResponse_CALLBACK NULL +#define penumbra_view_v1_AddressByIndexResponse_DEFAULT NULL +#define penumbra_view_v1_AddressByIndexResponse_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_WalletIdRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_WalletIdRequest_CALLBACK NULL +#define penumbra_view_v1_WalletIdRequest_DEFAULT NULL + +#define penumbra_view_v1_WalletIdResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, wallet_id, 1) +#define penumbra_view_v1_WalletIdResponse_CALLBACK NULL +#define penumbra_view_v1_WalletIdResponse_DEFAULT NULL +#define penumbra_view_v1_WalletIdResponse_wallet_id_MSGTYPE penumbra_core_keys_v1_WalletId + +#define penumbra_view_v1_IndexByAddressRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_view_v1_IndexByAddressRequest_CALLBACK NULL +#define penumbra_view_v1_IndexByAddressRequest_DEFAULT NULL +#define penumbra_view_v1_IndexByAddressRequest_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_IndexByAddressResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address_index, 1) +#define penumbra_view_v1_IndexByAddressResponse_CALLBACK NULL +#define penumbra_view_v1_IndexByAddressResponse_DEFAULT NULL +#define penumbra_view_v1_IndexByAddressResponse_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_EphemeralAddressRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address_index, 1) +#define penumbra_view_v1_EphemeralAddressRequest_CALLBACK NULL +#define penumbra_view_v1_EphemeralAddressRequest_DEFAULT NULL +#define penumbra_view_v1_EphemeralAddressRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_EphemeralAddressResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, address, 1) +#define penumbra_view_v1_EphemeralAddressResponse_CALLBACK NULL +#define penumbra_view_v1_EphemeralAddressResponse_DEFAULT NULL +#define penumbra_view_v1_EphemeralAddressResponse_address_MSGTYPE penumbra_core_keys_v1_Address + +#define penumbra_view_v1_BalancesRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, account_filter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id_filter, 2) +#define penumbra_view_v1_BalancesRequest_CALLBACK NULL +#define penumbra_view_v1_BalancesRequest_DEFAULT NULL +#define penumbra_view_v1_BalancesRequest_account_filter_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_BalancesRequest_asset_id_filter_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_view_v1_BalancesResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, account, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, account_address, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, balance_view, 4) +#define penumbra_view_v1_BalancesResponse_CALLBACK NULL +#define penumbra_view_v1_BalancesResponse_DEFAULT NULL +#define penumbra_view_v1_BalancesResponse_account_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_BalancesResponse_balance_MSGTYPE penumbra_core_asset_v1_Value +#define penumbra_view_v1_BalancesResponse_account_address_MSGTYPE penumbra_core_keys_v1_AddressView +#define penumbra_view_v1_BalancesResponse_balance_view_MSGTYPE penumbra_core_asset_v1_ValueView + +#define penumbra_view_v1_StatusRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_StatusRequest_CALLBACK NULL +#define penumbra_view_v1_StatusRequest_DEFAULT NULL + +#define penumbra_view_v1_StatusResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, full_sync_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, partial_sync_height, 2) \ + X(a, STATIC, SINGULAR, BOOL, catching_up, 3) +#define penumbra_view_v1_StatusResponse_CALLBACK NULL +#define penumbra_view_v1_StatusResponse_DEFAULT NULL + +#define penumbra_view_v1_StatusStreamRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_StatusStreamRequest_CALLBACK NULL +#define penumbra_view_v1_StatusStreamRequest_DEFAULT NULL + +#define penumbra_view_v1_StatusStreamResponse_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, latest_known_block_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, full_sync_height, 2) \ + X(a, STATIC, SINGULAR, UINT64, partial_sync_height, 3) +#define penumbra_view_v1_StatusStreamResponse_CALLBACK NULL +#define penumbra_view_v1_StatusStreamResponse_DEFAULT NULL + +#define penumbra_view_v1_NotesRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, include_spent, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, address_index, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, amount_to_spend, 6) +#define penumbra_view_v1_NotesRequest_CALLBACK NULL +#define penumbra_view_v1_NotesRequest_DEFAULT NULL +#define penumbra_view_v1_NotesRequest_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId +#define penumbra_view_v1_NotesRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_NotesRequest_amount_to_spend_MSGTYPE penumbra_core_num_v1_Amount + +#define penumbra_view_v1_NotesForVotingRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, votable_at_height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, address_index, 3) +#define penumbra_view_v1_NotesForVotingRequest_CALLBACK NULL +#define penumbra_view_v1_NotesForVotingRequest_DEFAULT NULL +#define penumbra_view_v1_NotesForVotingRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_WitnessRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, transaction_plan, 3) +#define penumbra_view_v1_WitnessRequest_CALLBACK NULL +#define penumbra_view_v1_WitnessRequest_DEFAULT NULL +#define penumbra_view_v1_WitnessRequest_transaction_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan + +#define penumbra_view_v1_WitnessResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, witness_data, 1) +#define penumbra_view_v1_WitnessResponse_CALLBACK NULL +#define penumbra_view_v1_WitnessResponse_DEFAULT NULL +#define penumbra_view_v1_WitnessResponse_witness_data_MSGTYPE penumbra_core_transaction_v1_WitnessData + +#define penumbra_view_v1_WitnessAndBuildRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction_plan, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, authorization_data, 2) +#define penumbra_view_v1_WitnessAndBuildRequest_CALLBACK NULL +#define penumbra_view_v1_WitnessAndBuildRequest_DEFAULT NULL +#define penumbra_view_v1_WitnessAndBuildRequest_transaction_plan_MSGTYPE penumbra_core_transaction_v1_TransactionPlan +#define penumbra_view_v1_WitnessAndBuildRequest_authorization_data_MSGTYPE penumbra_core_transaction_v1_AuthorizationData + +#define penumbra_view_v1_WitnessAndBuildResponse_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (status, build_progress, status.build_progress), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (status, complete, status.complete), 2) +#define penumbra_view_v1_WitnessAndBuildResponse_CALLBACK NULL +#define penumbra_view_v1_WitnessAndBuildResponse_DEFAULT NULL +#define penumbra_view_v1_WitnessAndBuildResponse_status_build_progress_MSGTYPE \ + penumbra_view_v1_WitnessAndBuildResponse_BuildProgress +#define penumbra_view_v1_WitnessAndBuildResponse_status_complete_MSGTYPE penumbra_view_v1_WitnessAndBuildResponse_Complete + +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_FIELDLIST(X, a) X(a, STATIC, SINGULAR, FLOAT, progress, 1) +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_CALLBACK NULL +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_DEFAULT NULL + +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, transaction, 1) +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_CALLBACK NULL +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_DEFAULT NULL +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_transaction_MSGTYPE penumbra_core_transaction_v1_Transaction + +#define penumbra_view_v1_AssetsRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, BOOL, filtered, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, include_specific_denominations, 2) \ + X(a, STATIC, SINGULAR, BOOL, include_delegation_tokens, 3) \ + X(a, STATIC, SINGULAR, BOOL, include_unbonding_tokens, 4) \ + X(a, STATIC, SINGULAR, BOOL, include_lp_nfts, 5) \ + X(a, STATIC, SINGULAR, BOOL, include_proposal_nfts, 6) \ + X(a, STATIC, SINGULAR, BOOL, include_voting_receipt_tokens, 7) +#define penumbra_view_v1_AssetsRequest_CALLBACK pb_default_field_callback +#define penumbra_view_v1_AssetsRequest_DEFAULT NULL +#define penumbra_view_v1_AssetsRequest_include_specific_denominations_MSGTYPE penumbra_core_asset_v1_Denom + +#define penumbra_view_v1_AssetsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, denom_metadata, 2) +#define penumbra_view_v1_AssetsResponse_CALLBACK NULL +#define penumbra_view_v1_AssetsResponse_DEFAULT NULL +#define penumbra_view_v1_AssetsResponse_denom_metadata_MSGTYPE penumbra_core_asset_v1_Metadata + +#define penumbra_view_v1_AppParametersRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_AppParametersRequest_CALLBACK NULL +#define penumbra_view_v1_AppParametersRequest_DEFAULT NULL + +#define penumbra_view_v1_AppParametersResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, parameters, 1) +#define penumbra_view_v1_AppParametersResponse_CALLBACK NULL +#define penumbra_view_v1_AppParametersResponse_DEFAULT NULL +#define penumbra_view_v1_AppParametersResponse_parameters_MSGTYPE penumbra_core_app_v1_AppParameters + +#define penumbra_view_v1_GasPricesRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_GasPricesRequest_CALLBACK NULL +#define penumbra_view_v1_GasPricesRequest_DEFAULT NULL + +#define penumbra_view_v1_GasPricesResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, gas_prices, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, alt_gas_prices, 2) +#define penumbra_view_v1_GasPricesResponse_CALLBACK pb_default_field_callback +#define penumbra_view_v1_GasPricesResponse_DEFAULT NULL +#define penumbra_view_v1_GasPricesResponse_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices +#define penumbra_view_v1_GasPricesResponse_alt_gas_prices_MSGTYPE penumbra_core_component_fee_v1_GasPrices + +#define penumbra_view_v1_FMDParametersRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_FMDParametersRequest_CALLBACK NULL +#define penumbra_view_v1_FMDParametersRequest_DEFAULT NULL + +#define penumbra_view_v1_FMDParametersResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, parameters, 1) +#define penumbra_view_v1_FMDParametersResponse_CALLBACK NULL +#define penumbra_view_v1_FMDParametersResponse_DEFAULT NULL +#define penumbra_view_v1_FMDParametersResponse_parameters_MSGTYPE penumbra_core_component_shielded_pool_v1_FmdParameters + +#define penumbra_view_v1_NoteByCommitmentRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_commitment, 2) \ + X(a, STATIC, SINGULAR, BOOL, await_detection, 3) +#define penumbra_view_v1_NoteByCommitmentRequest_CALLBACK NULL +#define penumbra_view_v1_NoteByCommitmentRequest_DEFAULT NULL +#define penumbra_view_v1_NoteByCommitmentRequest_note_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_view_v1_NoteByCommitmentResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, spendable_note, 1) +#define penumbra_view_v1_NoteByCommitmentResponse_CALLBACK NULL +#define penumbra_view_v1_NoteByCommitmentResponse_DEFAULT NULL +#define penumbra_view_v1_NoteByCommitmentResponse_spendable_note_MSGTYPE penumbra_view_v1_SpendableNoteRecord + +#define penumbra_view_v1_SwapByCommitmentRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_commitment, 2) \ + X(a, STATIC, SINGULAR, BOOL, await_detection, 3) +#define penumbra_view_v1_SwapByCommitmentRequest_CALLBACK NULL +#define penumbra_view_v1_SwapByCommitmentRequest_DEFAULT NULL +#define penumbra_view_v1_SwapByCommitmentRequest_swap_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment + +#define penumbra_view_v1_SwapByCommitmentResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, swap, 1) +#define penumbra_view_v1_SwapByCommitmentResponse_CALLBACK NULL +#define penumbra_view_v1_SwapByCommitmentResponse_DEFAULT NULL +#define penumbra_view_v1_SwapByCommitmentResponse_swap_MSGTYPE penumbra_view_v1_SwapRecord + +#define penumbra_view_v1_UnclaimedSwapsRequest_FIELDLIST(X, a) + +#define penumbra_view_v1_UnclaimedSwapsRequest_CALLBACK NULL +#define penumbra_view_v1_UnclaimedSwapsRequest_DEFAULT NULL + +#define penumbra_view_v1_UnclaimedSwapsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, swap, 1) +#define penumbra_view_v1_UnclaimedSwapsResponse_CALLBACK NULL +#define penumbra_view_v1_UnclaimedSwapsResponse_DEFAULT NULL +#define penumbra_view_v1_UnclaimedSwapsResponse_swap_MSGTYPE penumbra_view_v1_SwapRecord + +#define penumbra_view_v1_NullifierStatusRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 2) \ + X(a, STATIC, SINGULAR, BOOL, await_detection, 3) +#define penumbra_view_v1_NullifierStatusRequest_CALLBACK NULL +#define penumbra_view_v1_NullifierStatusRequest_DEFAULT NULL +#define penumbra_view_v1_NullifierStatusRequest_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier + +#define penumbra_view_v1_NullifierStatusResponse_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, spent, 1) +#define penumbra_view_v1_NullifierStatusResponse_CALLBACK NULL +#define penumbra_view_v1_NullifierStatusResponse_DEFAULT NULL + +#define penumbra_view_v1_TransactionInfoByHashRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, id, 2) +#define penumbra_view_v1_TransactionInfoByHashRequest_CALLBACK NULL +#define penumbra_view_v1_TransactionInfoByHashRequest_DEFAULT NULL +#define penumbra_view_v1_TransactionInfoByHashRequest_id_MSGTYPE penumbra_core_txhash_v1_TransactionId + +#define penumbra_view_v1_TransactionInfoRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, start_height, 1) \ + X(a, STATIC, SINGULAR, UINT64, end_height, 2) +#define penumbra_view_v1_TransactionInfoRequest_CALLBACK NULL +#define penumbra_view_v1_TransactionInfoRequest_DEFAULT NULL + +#define penumbra_view_v1_TransactionInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, transaction, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, perspective, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, view, 5) +#define penumbra_view_v1_TransactionInfo_CALLBACK NULL +#define penumbra_view_v1_TransactionInfo_DEFAULT NULL +#define penumbra_view_v1_TransactionInfo_id_MSGTYPE penumbra_core_txhash_v1_TransactionId +#define penumbra_view_v1_TransactionInfo_transaction_MSGTYPE penumbra_core_transaction_v1_Transaction +#define penumbra_view_v1_TransactionInfo_perspective_MSGTYPE penumbra_core_transaction_v1_TransactionPerspective +#define penumbra_view_v1_TransactionInfo_view_MSGTYPE penumbra_core_transaction_v1_TransactionView + +#define penumbra_view_v1_TransactionInfoResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx_info, 1) +#define penumbra_view_v1_TransactionInfoResponse_CALLBACK NULL +#define penumbra_view_v1_TransactionInfoResponse_DEFAULT NULL +#define penumbra_view_v1_TransactionInfoResponse_tx_info_MSGTYPE penumbra_view_v1_TransactionInfo + +#define penumbra_view_v1_TransactionInfoByHashResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, tx_info, 1) +#define penumbra_view_v1_TransactionInfoByHashResponse_CALLBACK NULL +#define penumbra_view_v1_TransactionInfoByHashResponse_DEFAULT NULL +#define penumbra_view_v1_TransactionInfoByHashResponse_tx_info_MSGTYPE penumbra_view_v1_TransactionInfo + +#define penumbra_view_v1_NotesResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, note_record, 1) +#define penumbra_view_v1_NotesResponse_CALLBACK NULL +#define penumbra_view_v1_NotesResponse_DEFAULT NULL +#define penumbra_view_v1_NotesResponse_note_record_MSGTYPE penumbra_view_v1_SpendableNoteRecord + +#define penumbra_view_v1_NotesForVotingResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_record, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, identity_key, 2) +#define penumbra_view_v1_NotesForVotingResponse_CALLBACK NULL +#define penumbra_view_v1_NotesForVotingResponse_DEFAULT NULL +#define penumbra_view_v1_NotesForVotingResponse_note_record_MSGTYPE penumbra_view_v1_SpendableNoteRecord +#define penumbra_view_v1_NotesForVotingResponse_identity_key_MSGTYPE penumbra_core_keys_v1_IdentityKey + +#define penumbra_view_v1_SpendableNoteRecord_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, note_commitment, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, note, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, address_index, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 4) \ + X(a, STATIC, SINGULAR, UINT64, height_created, 5) \ + X(a, STATIC, SINGULAR, UINT64, height_spent, 6) \ + X(a, STATIC, SINGULAR, UINT64, position, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, source, 8) \ + X(a, STATIC, OPTIONAL, MESSAGE, return_address, 9) +#define penumbra_view_v1_SpendableNoteRecord_CALLBACK NULL +#define penumbra_view_v1_SpendableNoteRecord_DEFAULT NULL +#define penumbra_view_v1_SpendableNoteRecord_note_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_view_v1_SpendableNoteRecord_note_MSGTYPE penumbra_core_component_shielded_pool_v1_Note +#define penumbra_view_v1_SpendableNoteRecord_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex +#define penumbra_view_v1_SpendableNoteRecord_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_view_v1_SpendableNoteRecord_source_MSGTYPE penumbra_core_component_sct_v1_CommitmentSource +#define penumbra_view_v1_SpendableNoteRecord_return_address_MSGTYPE penumbra_core_keys_v1_AddressView + +#define penumbra_view_v1_SwapRecord_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap_commitment, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, swap, 2) \ + X(a, STATIC, SINGULAR, UINT64, position, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, nullifier, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, output_data, 5) \ + X(a, STATIC, SINGULAR, UINT64, height_claimed, 6) \ + X(a, STATIC, OPTIONAL, MESSAGE, source, 7) +#define penumbra_view_v1_SwapRecord_CALLBACK NULL +#define penumbra_view_v1_SwapRecord_DEFAULT NULL +#define penumbra_view_v1_SwapRecord_swap_commitment_MSGTYPE penumbra_crypto_tct_v1_StateCommitment +#define penumbra_view_v1_SwapRecord_swap_MSGTYPE penumbra_core_component_dex_v1_SwapPlaintext +#define penumbra_view_v1_SwapRecord_nullifier_MSGTYPE penumbra_core_component_sct_v1_Nullifier +#define penumbra_view_v1_SwapRecord_output_data_MSGTYPE penumbra_core_component_dex_v1_BatchSwapOutputData +#define penumbra_view_v1_SwapRecord_source_MSGTYPE penumbra_core_component_sct_v1_CommitmentSource + +#define penumbra_view_v1_OwnedPositionIdsRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, position_state, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, trading_pair, 2) +#define penumbra_view_v1_OwnedPositionIdsRequest_CALLBACK NULL +#define penumbra_view_v1_OwnedPositionIdsRequest_DEFAULT NULL +#define penumbra_view_v1_OwnedPositionIdsRequest_position_state_MSGTYPE penumbra_core_component_dex_v1_PositionState +#define penumbra_view_v1_OwnedPositionIdsRequest_trading_pair_MSGTYPE penumbra_core_component_dex_v1_TradingPair + +#define penumbra_view_v1_OwnedPositionIdsResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, position_id, 1) +#define penumbra_view_v1_OwnedPositionIdsResponse_CALLBACK NULL +#define penumbra_view_v1_OwnedPositionIdsResponse_DEFAULT NULL +#define penumbra_view_v1_OwnedPositionIdsResponse_position_id_MSGTYPE penumbra_core_component_dex_v1_PositionId + +#define penumbra_view_v1_AssetMetadataByIdRequest_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, asset_id, 2) +#define penumbra_view_v1_AssetMetadataByIdRequest_CALLBACK NULL +#define penumbra_view_v1_AssetMetadataByIdRequest_DEFAULT NULL +#define penumbra_view_v1_AssetMetadataByIdRequest_asset_id_MSGTYPE penumbra_core_asset_v1_AssetId + +#define penumbra_view_v1_AssetMetadataByIdResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, denom_metadata, 1) +#define penumbra_view_v1_AssetMetadataByIdResponse_CALLBACK NULL +#define penumbra_view_v1_AssetMetadataByIdResponse_DEFAULT NULL +#define penumbra_view_v1_AssetMetadataByIdResponse_denom_metadata_MSGTYPE penumbra_core_asset_v1_Metadata + +#define penumbra_view_v1_DelegationsByAddressIndexRequest_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, address_index, 1) \ + X(a, STATIC, SINGULAR, UENUM, filter, 2) +#define penumbra_view_v1_DelegationsByAddressIndexRequest_CALLBACK NULL +#define penumbra_view_v1_DelegationsByAddressIndexRequest_DEFAULT NULL +#define penumbra_view_v1_DelegationsByAddressIndexRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_DelegationsByAddressIndexResponse_FIELDLIST(X, a) X(a, STATIC, OPTIONAL, MESSAGE, value_view, 1) +#define penumbra_view_v1_DelegationsByAddressIndexResponse_CALLBACK NULL +#define penumbra_view_v1_DelegationsByAddressIndexResponse_DEFAULT NULL +#define penumbra_view_v1_DelegationsByAddressIndexResponse_value_view_MSGTYPE penumbra_core_asset_v1_ValueView + +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, filter, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, address_index, 2) +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_CALLBACK NULL +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_DEFAULT NULL +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_address_index_MSGTYPE penumbra_core_keys_v1_AddressIndex + +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, value_view, 1) \ + X(a, STATIC, SINGULAR, BOOL, claimable, 2) +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_CALLBACK NULL +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_DEFAULT NULL +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_value_view_MSGTYPE penumbra_core_asset_v1_ValueView + +extern const pb_msgdesc_t penumbra_view_v1_AuctionsRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AuctionsResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_AuthorizeAndBuildRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AuthorizeAndBuildResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_msg; +extern const pb_msgdesc_t penumbra_view_v1_AuthorizeAndBuildResponse_Complete_msg; +extern const pb_msgdesc_t penumbra_view_v1_BroadcastTransactionRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_BroadcastTransactionResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_msg; +extern const pb_msgdesc_t penumbra_view_v1_BroadcastTransactionResponse_Confirmed_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_Output_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_Spend_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_Swap_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_SwapClaim_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_Delegate_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_Undelegate_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_PositionOpen_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_PositionClose_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionPlannerResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_AddressByIndexRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AddressByIndexResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_WalletIdRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_WalletIdResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_IndexByAddressRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_IndexByAddressResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_EphemeralAddressRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_EphemeralAddressResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_BalancesRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_BalancesResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_StatusRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_StatusResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_StatusStreamRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_StatusStreamResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_NotesRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_NotesForVotingRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessAndBuildRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessAndBuildResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_msg; +extern const pb_msgdesc_t penumbra_view_v1_WitnessAndBuildResponse_Complete_msg; +extern const pb_msgdesc_t penumbra_view_v1_AssetsRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AssetsResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_AppParametersRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AppParametersResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_GasPricesRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_GasPricesResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_FMDParametersRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_FMDParametersResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_NoteByCommitmentRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_NoteByCommitmentResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_SwapByCommitmentRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_SwapByCommitmentResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_UnclaimedSwapsRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_UnclaimedSwapsResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_NullifierStatusRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_NullifierStatusResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionInfoByHashRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionInfoRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionInfo_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionInfoResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_TransactionInfoByHashResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_NotesResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_NotesForVotingResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_SpendableNoteRecord_msg; +extern const pb_msgdesc_t penumbra_view_v1_SwapRecord_msg; +extern const pb_msgdesc_t penumbra_view_v1_OwnedPositionIdsRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_OwnedPositionIdsResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_AssetMetadataByIdRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_AssetMetadataByIdResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_DelegationsByAddressIndexRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_DelegationsByAddressIndexResponse_msg; +extern const pb_msgdesc_t penumbra_view_v1_UnbondingTokensByAddressIndexRequest_msg; +extern const pb_msgdesc_t penumbra_view_v1_UnbondingTokensByAddressIndexResponse_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define penumbra_view_v1_AuctionsRequest_fields &penumbra_view_v1_AuctionsRequest_msg +#define penumbra_view_v1_AuctionsResponse_fields &penumbra_view_v1_AuctionsResponse_msg +#define penumbra_view_v1_AuthorizeAndBuildRequest_fields &penumbra_view_v1_AuthorizeAndBuildRequest_msg +#define penumbra_view_v1_AuthorizeAndBuildResponse_fields &penumbra_view_v1_AuthorizeAndBuildResponse_msg +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_fields \ + &penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_msg +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_fields &penumbra_view_v1_AuthorizeAndBuildResponse_Complete_msg +#define penumbra_view_v1_BroadcastTransactionRequest_fields &penumbra_view_v1_BroadcastTransactionRequest_msg +#define penumbra_view_v1_BroadcastTransactionResponse_fields &penumbra_view_v1_BroadcastTransactionResponse_msg +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_fields \ + &penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_msg +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_fields \ + &penumbra_view_v1_BroadcastTransactionResponse_Confirmed_msg +#define penumbra_view_v1_TransactionPlannerRequest_fields &penumbra_view_v1_TransactionPlannerRequest_msg +#define penumbra_view_v1_TransactionPlannerRequest_Output_fields &penumbra_view_v1_TransactionPlannerRequest_Output_msg +#define penumbra_view_v1_TransactionPlannerRequest_Spend_fields &penumbra_view_v1_TransactionPlannerRequest_Spend_msg +#define penumbra_view_v1_TransactionPlannerRequest_Swap_fields &penumbra_view_v1_TransactionPlannerRequest_Swap_msg +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_fields &penumbra_view_v1_TransactionPlannerRequest_SwapClaim_msg +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_fields &penumbra_view_v1_TransactionPlannerRequest_Delegate_msg +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_fields \ + &penumbra_view_v1_TransactionPlannerRequest_Undelegate_msg +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_fields \ + &penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_msg +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_fields \ + &penumbra_view_v1_TransactionPlannerRequest_PositionOpen_msg +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_fields \ + &penumbra_view_v1_TransactionPlannerRequest_PositionClose_msg +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_fields \ + &penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_msg +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_fields \ + &penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_msg +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_fields \ + &penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_msg +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_fields \ + &penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_msg +#define penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_fields \ + &penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_msg +#define penumbra_view_v1_TransactionPlannerResponse_fields &penumbra_view_v1_TransactionPlannerResponse_msg +#define penumbra_view_v1_AddressByIndexRequest_fields &penumbra_view_v1_AddressByIndexRequest_msg +#define penumbra_view_v1_AddressByIndexResponse_fields &penumbra_view_v1_AddressByIndexResponse_msg +#define penumbra_view_v1_WalletIdRequest_fields &penumbra_view_v1_WalletIdRequest_msg +#define penumbra_view_v1_WalletIdResponse_fields &penumbra_view_v1_WalletIdResponse_msg +#define penumbra_view_v1_IndexByAddressRequest_fields &penumbra_view_v1_IndexByAddressRequest_msg +#define penumbra_view_v1_IndexByAddressResponse_fields &penumbra_view_v1_IndexByAddressResponse_msg +#define penumbra_view_v1_EphemeralAddressRequest_fields &penumbra_view_v1_EphemeralAddressRequest_msg +#define penumbra_view_v1_EphemeralAddressResponse_fields &penumbra_view_v1_EphemeralAddressResponse_msg +#define penumbra_view_v1_BalancesRequest_fields &penumbra_view_v1_BalancesRequest_msg +#define penumbra_view_v1_BalancesResponse_fields &penumbra_view_v1_BalancesResponse_msg +#define penumbra_view_v1_StatusRequest_fields &penumbra_view_v1_StatusRequest_msg +#define penumbra_view_v1_StatusResponse_fields &penumbra_view_v1_StatusResponse_msg +#define penumbra_view_v1_StatusStreamRequest_fields &penumbra_view_v1_StatusStreamRequest_msg +#define penumbra_view_v1_StatusStreamResponse_fields &penumbra_view_v1_StatusStreamResponse_msg +#define penumbra_view_v1_NotesRequest_fields &penumbra_view_v1_NotesRequest_msg +#define penumbra_view_v1_NotesForVotingRequest_fields &penumbra_view_v1_NotesForVotingRequest_msg +#define penumbra_view_v1_WitnessRequest_fields &penumbra_view_v1_WitnessRequest_msg +#define penumbra_view_v1_WitnessResponse_fields &penumbra_view_v1_WitnessResponse_msg +#define penumbra_view_v1_WitnessAndBuildRequest_fields &penumbra_view_v1_WitnessAndBuildRequest_msg +#define penumbra_view_v1_WitnessAndBuildResponse_fields &penumbra_view_v1_WitnessAndBuildResponse_msg +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_fields \ + &penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_msg +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_fields &penumbra_view_v1_WitnessAndBuildResponse_Complete_msg +#define penumbra_view_v1_AssetsRequest_fields &penumbra_view_v1_AssetsRequest_msg +#define penumbra_view_v1_AssetsResponse_fields &penumbra_view_v1_AssetsResponse_msg +#define penumbra_view_v1_AppParametersRequest_fields &penumbra_view_v1_AppParametersRequest_msg +#define penumbra_view_v1_AppParametersResponse_fields &penumbra_view_v1_AppParametersResponse_msg +#define penumbra_view_v1_GasPricesRequest_fields &penumbra_view_v1_GasPricesRequest_msg +#define penumbra_view_v1_GasPricesResponse_fields &penumbra_view_v1_GasPricesResponse_msg +#define penumbra_view_v1_FMDParametersRequest_fields &penumbra_view_v1_FMDParametersRequest_msg +#define penumbra_view_v1_FMDParametersResponse_fields &penumbra_view_v1_FMDParametersResponse_msg +#define penumbra_view_v1_NoteByCommitmentRequest_fields &penumbra_view_v1_NoteByCommitmentRequest_msg +#define penumbra_view_v1_NoteByCommitmentResponse_fields &penumbra_view_v1_NoteByCommitmentResponse_msg +#define penumbra_view_v1_SwapByCommitmentRequest_fields &penumbra_view_v1_SwapByCommitmentRequest_msg +#define penumbra_view_v1_SwapByCommitmentResponse_fields &penumbra_view_v1_SwapByCommitmentResponse_msg +#define penumbra_view_v1_UnclaimedSwapsRequest_fields &penumbra_view_v1_UnclaimedSwapsRequest_msg +#define penumbra_view_v1_UnclaimedSwapsResponse_fields &penumbra_view_v1_UnclaimedSwapsResponse_msg +#define penumbra_view_v1_NullifierStatusRequest_fields &penumbra_view_v1_NullifierStatusRequest_msg +#define penumbra_view_v1_NullifierStatusResponse_fields &penumbra_view_v1_NullifierStatusResponse_msg +#define penumbra_view_v1_TransactionInfoByHashRequest_fields &penumbra_view_v1_TransactionInfoByHashRequest_msg +#define penumbra_view_v1_TransactionInfoRequest_fields &penumbra_view_v1_TransactionInfoRequest_msg +#define penumbra_view_v1_TransactionInfo_fields &penumbra_view_v1_TransactionInfo_msg +#define penumbra_view_v1_TransactionInfoResponse_fields &penumbra_view_v1_TransactionInfoResponse_msg +#define penumbra_view_v1_TransactionInfoByHashResponse_fields &penumbra_view_v1_TransactionInfoByHashResponse_msg +#define penumbra_view_v1_NotesResponse_fields &penumbra_view_v1_NotesResponse_msg +#define penumbra_view_v1_NotesForVotingResponse_fields &penumbra_view_v1_NotesForVotingResponse_msg +#define penumbra_view_v1_SpendableNoteRecord_fields &penumbra_view_v1_SpendableNoteRecord_msg +#define penumbra_view_v1_SwapRecord_fields &penumbra_view_v1_SwapRecord_msg +#define penumbra_view_v1_OwnedPositionIdsRequest_fields &penumbra_view_v1_OwnedPositionIdsRequest_msg +#define penumbra_view_v1_OwnedPositionIdsResponse_fields &penumbra_view_v1_OwnedPositionIdsResponse_msg +#define penumbra_view_v1_AssetMetadataByIdRequest_fields &penumbra_view_v1_AssetMetadataByIdRequest_msg +#define penumbra_view_v1_AssetMetadataByIdResponse_fields &penumbra_view_v1_AssetMetadataByIdResponse_msg +#define penumbra_view_v1_DelegationsByAddressIndexRequest_fields &penumbra_view_v1_DelegationsByAddressIndexRequest_msg +#define penumbra_view_v1_DelegationsByAddressIndexResponse_fields &penumbra_view_v1_DelegationsByAddressIndexResponse_msg +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_fields \ + &penumbra_view_v1_UnbondingTokensByAddressIndexRequest_msg +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_fields \ + &penumbra_view_v1_UnbondingTokensByAddressIndexResponse_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(penumbra_core_transaction_v1_Transaction_size) +union penumbra_view_v1_AuthorizeAndBuildResponse_status_size_union { + char f2[(12 + penumbra_core_transaction_v1_Transaction_size)]; + char f0[7]; +}; +#endif +#if defined(penumbra_core_txhash_v1_TransactionId_size) && defined(penumbra_core_txhash_v1_TransactionId_size) +union penumbra_view_v1_BroadcastTransactionResponse_status_size_union { + char f1[(12 + penumbra_core_txhash_v1_TransactionId_size)]; + char f2[(23 + penumbra_core_txhash_v1_TransactionId_size)]; +}; +#endif +#if defined(penumbra_core_component_fee_v1_Fee_size) +union penumbra_view_v1_TransactionPlannerRequest_fee_mode_size_union { + char f101[(7 + penumbra_core_component_fee_v1_Fee_size)]; + char f0[5]; +}; +#endif +#if defined(penumbra_core_transaction_v1_Transaction_size) +union penumbra_view_v1_WitnessAndBuildResponse_status_size_union { + char f2[(12 + penumbra_core_transaction_v1_Transaction_size)]; + char f0[7]; +}; +#endif +/* penumbra_view_v1_AuctionsRequest_size depends on runtime parameters */ +/* penumbra_view_v1_AuctionsResponse_size depends on runtime parameters */ +/* penumbra_view_v1_TransactionPlannerRequest_size depends on runtime parameters */ +/* penumbra_view_v1_TransactionPlannerRequest_DelegatorVote_size depends on runtime parameters */ +/* penumbra_view_v1_AssetsRequest_size depends on runtime parameters */ +/* penumbra_view_v1_GasPricesResponse_size depends on runtime parameters */ +#if defined(penumbra_core_transaction_v1_TransactionPlan_size) +#define penumbra_view_v1_AuthorizeAndBuildRequest_size (6 + penumbra_core_transaction_v1_TransactionPlan_size) +#define penumbra_view_v1_TransactionPlannerResponse_size (6 + penumbra_core_transaction_v1_TransactionPlan_size) +#define penumbra_view_v1_WitnessRequest_size (6 + penumbra_core_transaction_v1_TransactionPlan_size) +#endif +#if defined(penumbra_core_transaction_v1_Transaction_size) +#define penumbra_view_v1_AuthorizeAndBuildResponse_Complete_size (6 + penumbra_core_transaction_v1_Transaction_size) +#define penumbra_view_v1_AuthorizeAndBuildResponse_size \ + (0 + sizeof(union penumbra_view_v1_AuthorizeAndBuildResponse_status_size_union)) +#define penumbra_view_v1_BroadcastTransactionRequest_size (8 + penumbra_core_transaction_v1_Transaction_size) +#define penumbra_view_v1_WitnessAndBuildResponse_Complete_size (6 + penumbra_core_transaction_v1_Transaction_size) +#define penumbra_view_v1_WitnessAndBuildResponse_size \ + (0 + sizeof(union penumbra_view_v1_WitnessAndBuildResponse_status_size_union)) +#endif +#define penumbra_view_v1_AppParametersRequest_size 0 +#define penumbra_view_v1_AuthorizeAndBuildResponse_BuildProgress_size 5 +#define penumbra_view_v1_FMDParametersRequest_size 0 +#define penumbra_view_v1_FMDParametersResponse_size 19 +#define penumbra_view_v1_GasPricesRequest_size 0 +#define penumbra_view_v1_NullifierStatusResponse_size 2 +#define penumbra_view_v1_StatusRequest_size 0 +#define penumbra_view_v1_StatusResponse_size 24 +#define penumbra_view_v1_StatusStreamRequest_size 0 +#define penumbra_view_v1_StatusStreamResponse_size 33 +#define penumbra_view_v1_TransactionInfoRequest_size 22 +#define penumbra_view_v1_UnclaimedSwapsRequest_size 0 +#define penumbra_view_v1_WalletIdRequest_size 0 +#define penumbra_view_v1_WitnessAndBuildResponse_BuildProgress_size 5 +#if defined(penumbra_core_txhash_v1_TransactionId_size) && defined(penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_view_v1_BroadcastTransactionResponse_size \ + (0 + sizeof(union penumbra_view_v1_BroadcastTransactionResponse_status_size_union)) +#endif +#if defined(penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_view_v1_BroadcastTransactionResponse_BroadcastSuccess_size (6 + penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_view_v1_BroadcastTransactionResponse_Confirmed_size (17 + penumbra_core_txhash_v1_TransactionId_size) +#define penumbra_view_v1_TransactionInfoByHashRequest_size (6 + penumbra_core_txhash_v1_TransactionId_size) +#endif +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_TransactionPlannerRequest_Output_size \ + (12 + penumbra_core_asset_v1_Value_size + penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_TransactionPlannerRequest_Spend_size \ + (12 + penumbra_core_asset_v1_Value_size + penumbra_core_keys_v1_Address_size) +#endif +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_asset_v1_AssetId_size) && \ + defined(penumbra_core_component_fee_v1_Fee_size) && defined(penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_TransactionPlannerRequest_Swap_size \ + (24 + penumbra_core_asset_v1_Value_size + penumbra_core_asset_v1_AssetId_size + \ + penumbra_core_component_fee_v1_Fee_size + penumbra_core_keys_v1_Address_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_view_v1_NoteByCommitmentRequest_size (8 + penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_view_v1_SwapByCommitmentRequest_size (8 + penumbra_crypto_tct_v1_StateCommitment_size) +#define penumbra_view_v1_TransactionPlannerRequest_SwapClaim_size (6 + penumbra_crypto_tct_v1_StateCommitment_size) +#endif +#if defined(penumbra_core_component_stake_v1_RateData_size) +#define penumbra_view_v1_TransactionPlannerRequest_Delegate_size (30 + penumbra_core_component_stake_v1_RateData_size) +#endif +#if defined(penumbra_core_asset_v1_Value_size) && defined(penumbra_core_component_stake_v1_RateData_size) +#define penumbra_view_v1_TransactionPlannerRequest_Undelegate_size \ + (12 + penumbra_core_asset_v1_Value_size + penumbra_core_component_stake_v1_RateData_size) +#endif +#if defined(penumbra_core_keys_v1_IdentityKey_size) && defined(penumbra_core_component_stake_v1_Penalty_size) +#define penumbra_view_v1_TransactionPlannerRequest_UndelegateClaim_size \ + (58 + penumbra_core_keys_v1_IdentityKey_size + penumbra_core_component_stake_v1_Penalty_size) +#endif +#if defined(penumbra_core_component_dex_v1_Position_size) +#define penumbra_view_v1_TransactionPlannerRequest_PositionOpen_size (6 + penumbra_core_component_dex_v1_Position_size) +#endif +#if defined(penumbra_core_component_dex_v1_PositionId_size) +#define penumbra_view_v1_OwnedPositionIdsResponse_size (6 + penumbra_core_component_dex_v1_PositionId_size) +#define penumbra_view_v1_TransactionPlannerRequest_PositionClose_size (6 + penumbra_core_component_dex_v1_PositionId_size) +#endif +#if defined(penumbra_core_component_dex_v1_PositionId_size) && defined(penumbra_core_component_dex_v1_TradingPair_size) +#define penumbra_view_v1_TransactionPlannerRequest_PositionWithdraw_size \ + (62 + penumbra_core_component_dex_v1_PositionId_size + penumbra_core_component_dex_v1_TradingPair_size) +#endif +#if defined(penumbra_core_component_auction_v1_DutchAuctionDescription_size) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionSchedule_size \ + (6 + penumbra_core_component_auction_v1_DutchAuctionDescription_size) +#endif +#if defined(penumbra_core_component_auction_v1_AuctionId_size) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionEnd_size \ + (6 + penumbra_core_component_auction_v1_AuctionId_size) +#define penumbra_view_v1_TransactionPlannerRequest_ActionDutchAuctionWithdraw_size \ + (17 + penumbra_core_component_auction_v1_AuctionId_size) +#endif +#if defined(penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_AddressByIndexRequest_size (6 + penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_DelegationsByAddressIndexRequest_size (8 + penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_EphemeralAddressRequest_size (6 + penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_IndexByAddressResponse_size (6 + penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_NotesForVotingRequest_size (17 + penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_UnbondingTokensByAddressIndexRequest_size (8 + penumbra_core_keys_v1_AddressIndex_size) +#endif +#if defined(penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_AddressByIndexResponse_size (6 + penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_EphemeralAddressResponse_size (6 + penumbra_core_keys_v1_Address_size) +#define penumbra_view_v1_IndexByAddressRequest_size (6 + penumbra_core_keys_v1_Address_size) +#endif +#if defined(penumbra_core_keys_v1_WalletId_size) +#define penumbra_view_v1_WalletIdResponse_size (6 + penumbra_core_keys_v1_WalletId_size) +#endif +#if defined(penumbra_core_keys_v1_AddressIndex_size) && defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_view_v1_BalancesRequest_size \ + (12 + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_asset_v1_AssetId_size) +#endif +#if defined(penumbra_core_keys_v1_AddressIndex_size) && defined(penumbra_core_asset_v1_Value_size) && \ + defined(penumbra_core_keys_v1_AddressView_size) && defined(penumbra_core_asset_v1_ValueView_size) +#define penumbra_view_v1_BalancesResponse_size \ + (24 + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_asset_v1_Value_size + \ + penumbra_core_keys_v1_AddressView_size + penumbra_core_asset_v1_ValueView_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) && defined(penumbra_core_keys_v1_AddressIndex_size) +#define penumbra_view_v1_NotesRequest_size \ + (38 + penumbra_core_asset_v1_AssetId_size + penumbra_core_keys_v1_AddressIndex_size) +#endif +#if defined(penumbra_core_transaction_v1_WitnessData_size) +#define penumbra_view_v1_WitnessResponse_size (6 + penumbra_core_transaction_v1_WitnessData_size) +#endif +#if defined(penumbra_core_transaction_v1_TransactionPlan_size) && \ + defined(penumbra_core_transaction_v1_AuthorizationData_size) +#define penumbra_view_v1_WitnessAndBuildRequest_size \ + (12 + penumbra_core_transaction_v1_TransactionPlan_size + penumbra_core_transaction_v1_AuthorizationData_size) +#endif +#if defined(penumbra_core_asset_v1_Metadata_size) +#define penumbra_view_v1_AssetMetadataByIdResponse_size (6 + penumbra_core_asset_v1_Metadata_size) +#define penumbra_view_v1_AssetsResponse_size (6 + penumbra_core_asset_v1_Metadata_size) +#endif +#if defined(penumbra_core_app_v1_AppParameters_size) +#define penumbra_view_v1_AppParametersResponse_size (6 + penumbra_core_app_v1_AppParameters_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_core_component_shielded_pool_v1_Note_size) && \ + defined(penumbra_core_keys_v1_AddressIndex_size) && defined(penumbra_core_component_sct_v1_Nullifier_size) && \ + defined(penumbra_core_component_sct_v1_CommitmentSource_size) && defined(penumbra_core_keys_v1_AddressView_size) +#define penumbra_view_v1_NoteByCommitmentResponse_size \ + (75 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_shielded_pool_v1_Note_size + \ + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_component_sct_v1_Nullifier_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size + penumbra_core_keys_v1_AddressView_size) +#define penumbra_view_v1_NotesResponse_size \ + (75 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_shielded_pool_v1_Note_size + \ + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_component_sct_v1_Nullifier_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size + penumbra_core_keys_v1_AddressView_size) +#define penumbra_view_v1_SpendableNoteRecord_size \ + (69 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_shielded_pool_v1_Note_size + \ + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_component_sct_v1_Nullifier_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size + penumbra_core_keys_v1_AddressView_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_core_component_dex_v1_SwapPlaintext_size) && \ + defined(penumbra_core_component_sct_v1_Nullifier_size) && \ + defined(penumbra_core_component_dex_v1_BatchSwapOutputData_size) && \ + defined(penumbra_core_component_sct_v1_CommitmentSource_size) +#define penumbra_view_v1_SwapByCommitmentResponse_size \ + (58 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_dex_v1_SwapPlaintext_size + \ + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_component_dex_v1_BatchSwapOutputData_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size) +#define penumbra_view_v1_SwapRecord_size \ + (52 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_dex_v1_SwapPlaintext_size + \ + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_component_dex_v1_BatchSwapOutputData_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size) +#define penumbra_view_v1_UnclaimedSwapsResponse_size \ + (58 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_dex_v1_SwapPlaintext_size + \ + penumbra_core_component_sct_v1_Nullifier_size + penumbra_core_component_dex_v1_BatchSwapOutputData_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size) +#endif +#if defined(penumbra_core_component_sct_v1_Nullifier_size) +#define penumbra_view_v1_NullifierStatusRequest_size (8 + penumbra_core_component_sct_v1_Nullifier_size) +#endif +#if defined(penumbra_core_txhash_v1_TransactionId_size) && defined(penumbra_core_transaction_v1_Transaction_size) && \ + defined(penumbra_core_transaction_v1_TransactionPerspective_size) && \ + defined(penumbra_core_transaction_v1_TransactionView_size) +#define penumbra_view_v1_TransactionInfoByHashResponse_size \ + (41 + penumbra_core_txhash_v1_TransactionId_size + penumbra_core_transaction_v1_Transaction_size + \ + penumbra_core_transaction_v1_TransactionPerspective_size + penumbra_core_transaction_v1_TransactionView_size) +#define penumbra_view_v1_TransactionInfoResponse_size \ + (41 + penumbra_core_txhash_v1_TransactionId_size + penumbra_core_transaction_v1_Transaction_size + \ + penumbra_core_transaction_v1_TransactionPerspective_size + penumbra_core_transaction_v1_TransactionView_size) +#define penumbra_view_v1_TransactionInfo_size \ + (35 + penumbra_core_txhash_v1_TransactionId_size + penumbra_core_transaction_v1_Transaction_size + \ + penumbra_core_transaction_v1_TransactionPerspective_size + penumbra_core_transaction_v1_TransactionView_size) +#endif +#if defined(penumbra_crypto_tct_v1_StateCommitment_size) && defined(penumbra_core_component_shielded_pool_v1_Note_size) && \ + defined(penumbra_core_keys_v1_AddressIndex_size) && defined(penumbra_core_component_sct_v1_Nullifier_size) && \ + defined(penumbra_core_component_sct_v1_CommitmentSource_size) && defined(penumbra_core_keys_v1_AddressView_size) && \ + defined(penumbra_core_keys_v1_IdentityKey_size) +#define PENUMBRA_VIEW_V1_PENUMBRA_VIEW_V1_VIEW_PB_H_MAX_SIZE penumbra_view_v1_NotesForVotingResponse_size +#define penumbra_view_v1_NotesForVotingResponse_size \ + (81 + penumbra_crypto_tct_v1_StateCommitment_size + penumbra_core_component_shielded_pool_v1_Note_size + \ + penumbra_core_keys_v1_AddressIndex_size + penumbra_core_component_sct_v1_Nullifier_size + \ + penumbra_core_component_sct_v1_CommitmentSource_size + penumbra_core_keys_v1_AddressView_size + \ + penumbra_core_keys_v1_IdentityKey_size) +#endif +#if defined(penumbra_core_component_dex_v1_TradingPair_size) +#define penumbra_view_v1_OwnedPositionIdsRequest_size (21 + penumbra_core_component_dex_v1_TradingPair_size) +#endif +#if defined(penumbra_core_asset_v1_AssetId_size) +#define penumbra_view_v1_AssetMetadataByIdRequest_size (6 + penumbra_core_asset_v1_AssetId_size) +#endif +#if defined(penumbra_core_asset_v1_ValueView_size) +#define penumbra_view_v1_DelegationsByAddressIndexResponse_size (6 + penumbra_core_asset_v1_ValueView_size) +#define penumbra_view_v1_UnbondingTokensByAddressIndexResponse_size (8 + penumbra_core_asset_v1_ValueView_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/abci/types.pb.c b/app/src/protobuf/tendermint/abci/types.pb.c new file mode 100644 index 0000000..0016b69 --- /dev/null +++ b/app/src/protobuf/tendermint/abci/types.pb.c @@ -0,0 +1,99 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/abci/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_abci_Request, tendermint_abci_Request, 2) + +PB_BIND(tendermint_abci_RequestEcho, tendermint_abci_RequestEcho, AUTO) + +PB_BIND(tendermint_abci_RequestFlush, tendermint_abci_RequestFlush, AUTO) + +PB_BIND(tendermint_abci_RequestInfo, tendermint_abci_RequestInfo, AUTO) + +PB_BIND(tendermint_abci_RequestInitChain, tendermint_abci_RequestInitChain, AUTO) + +PB_BIND(tendermint_abci_RequestQuery, tendermint_abci_RequestQuery, AUTO) + +PB_BIND(tendermint_abci_RequestBeginBlock, tendermint_abci_RequestBeginBlock, 2) + +PB_BIND(tendermint_abci_RequestCheckTx, tendermint_abci_RequestCheckTx, AUTO) + +PB_BIND(tendermint_abci_RequestDeliverTx, tendermint_abci_RequestDeliverTx, AUTO) + +PB_BIND(tendermint_abci_RequestEndBlock, tendermint_abci_RequestEndBlock, AUTO) + +PB_BIND(tendermint_abci_RequestCommit, tendermint_abci_RequestCommit, AUTO) + +PB_BIND(tendermint_abci_RequestListSnapshots, tendermint_abci_RequestListSnapshots, AUTO) + +PB_BIND(tendermint_abci_RequestOfferSnapshot, tendermint_abci_RequestOfferSnapshot, AUTO) + +PB_BIND(tendermint_abci_RequestLoadSnapshotChunk, tendermint_abci_RequestLoadSnapshotChunk, AUTO) + +PB_BIND(tendermint_abci_RequestApplySnapshotChunk, tendermint_abci_RequestApplySnapshotChunk, AUTO) + +PB_BIND(tendermint_abci_RequestPrepareProposal, tendermint_abci_RequestPrepareProposal, AUTO) + +PB_BIND(tendermint_abci_RequestProcessProposal, tendermint_abci_RequestProcessProposal, AUTO) + +PB_BIND(tendermint_abci_Response, tendermint_abci_Response, AUTO) + +PB_BIND(tendermint_abci_ResponseException, tendermint_abci_ResponseException, AUTO) + +PB_BIND(tendermint_abci_ResponseEcho, tendermint_abci_ResponseEcho, AUTO) + +PB_BIND(tendermint_abci_ResponseFlush, tendermint_abci_ResponseFlush, AUTO) + +PB_BIND(tendermint_abci_ResponseInfo, tendermint_abci_ResponseInfo, AUTO) + +PB_BIND(tendermint_abci_ResponseInitChain, tendermint_abci_ResponseInitChain, AUTO) + +PB_BIND(tendermint_abci_ResponseQuery, tendermint_abci_ResponseQuery, AUTO) + +PB_BIND(tendermint_abci_ResponseBeginBlock, tendermint_abci_ResponseBeginBlock, AUTO) + +PB_BIND(tendermint_abci_ResponseCheckTx, tendermint_abci_ResponseCheckTx, AUTO) + +PB_BIND(tendermint_abci_ResponseDeliverTx, tendermint_abci_ResponseDeliverTx, AUTO) + +PB_BIND(tendermint_abci_ResponseEndBlock, tendermint_abci_ResponseEndBlock, AUTO) + +PB_BIND(tendermint_abci_ResponseCommit, tendermint_abci_ResponseCommit, AUTO) + +PB_BIND(tendermint_abci_ResponseListSnapshots, tendermint_abci_ResponseListSnapshots, AUTO) + +PB_BIND(tendermint_abci_ResponseOfferSnapshot, tendermint_abci_ResponseOfferSnapshot, AUTO) + +PB_BIND(tendermint_abci_ResponseLoadSnapshotChunk, tendermint_abci_ResponseLoadSnapshotChunk, AUTO) + +PB_BIND(tendermint_abci_ResponseApplySnapshotChunk, tendermint_abci_ResponseApplySnapshotChunk, AUTO) + +PB_BIND(tendermint_abci_ResponsePrepareProposal, tendermint_abci_ResponsePrepareProposal, AUTO) + +PB_BIND(tendermint_abci_ResponseProcessProposal, tendermint_abci_ResponseProcessProposal, AUTO) + +PB_BIND(tendermint_abci_CommitInfo, tendermint_abci_CommitInfo, AUTO) + +PB_BIND(tendermint_abci_ExtendedCommitInfo, tendermint_abci_ExtendedCommitInfo, AUTO) + +PB_BIND(tendermint_abci_Event, tendermint_abci_Event, AUTO) + +PB_BIND(tendermint_abci_EventAttribute, tendermint_abci_EventAttribute, AUTO) + +PB_BIND(tendermint_abci_TxResult, tendermint_abci_TxResult, AUTO) + +PB_BIND(tendermint_abci_Validator, tendermint_abci_Validator, AUTO) + +PB_BIND(tendermint_abci_ValidatorUpdate, tendermint_abci_ValidatorUpdate, AUTO) + +PB_BIND(tendermint_abci_VoteInfo, tendermint_abci_VoteInfo, AUTO) + +PB_BIND(tendermint_abci_ExtendedVoteInfo, tendermint_abci_ExtendedVoteInfo, AUTO) + +PB_BIND(tendermint_abci_Misbehavior, tendermint_abci_Misbehavior, AUTO) + +PB_BIND(tendermint_abci_Snapshot, tendermint_abci_Snapshot, AUTO) diff --git a/app/src/protobuf/tendermint/abci/types.pb.h b/app/src/protobuf/tendermint/abci/types.pb.h new file mode 100644 index 0000000..e1312f9 --- /dev/null +++ b/app/src/protobuf/tendermint/abci/types.pb.h @@ -0,0 +1,1525 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_ABCI_TENDERMINT_ABCI_TYPES_PB_H_INCLUDED +#define PB_TENDERMINT_ABCI_TENDERMINT_ABCI_TYPES_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/crypto/keys.pb.h" +#include "tendermint/crypto/proof.pb.h" +#include "tendermint/types/params.pb.h" +#include "tendermint/types/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +typedef enum _tendermint_abci_CheckTxType { + tendermint_abci_CheckTxType_NEW = 0, + tendermint_abci_CheckTxType_RECHECK = 1 +} tendermint_abci_CheckTxType; + +typedef enum _tendermint_abci_MisbehaviorType { + tendermint_abci_MisbehaviorType_UNKNOWN = 0, + tendermint_abci_MisbehaviorType_DUPLICATE_VOTE = 1, + tendermint_abci_MisbehaviorType_LIGHT_CLIENT_ATTACK = 2 +} tendermint_abci_MisbehaviorType; + +typedef enum _tendermint_abci_ResponseOfferSnapshot_Result { + tendermint_abci_ResponseOfferSnapshot_Result_UNKNOWN = 0, /* Unknown result, abort all snapshot restoration */ + tendermint_abci_ResponseOfferSnapshot_Result_ACCEPT = 1, /* Snapshot accepted, apply chunks */ + tendermint_abci_ResponseOfferSnapshot_Result_ABORT = 2, /* Abort all snapshot restoration */ + tendermint_abci_ResponseOfferSnapshot_Result_REJECT = 3, /* Reject this specific snapshot, try others */ + tendermint_abci_ResponseOfferSnapshot_Result_REJECT_FORMAT = 4, /* Reject all snapshots of this format, try others */ + tendermint_abci_ResponseOfferSnapshot_Result_REJECT_SENDER = 5 /* Reject all snapshots from the sender(s), try others */ +} tendermint_abci_ResponseOfferSnapshot_Result; + +typedef enum _tendermint_abci_ResponseApplySnapshotChunk_Result { + tendermint_abci_ResponseApplySnapshotChunk_Result_UNKNOWN = 0, /* Unknown result, abort all snapshot restoration */ + tendermint_abci_ResponseApplySnapshotChunk_Result_ACCEPT = 1, /* Chunk successfully accepted */ + tendermint_abci_ResponseApplySnapshotChunk_Result_ABORT = 2, /* Abort all snapshot restoration */ + tendermint_abci_ResponseApplySnapshotChunk_Result_RETRY = 3, /* Retry chunk (combine with refetch and reject) */ + tendermint_abci_ResponseApplySnapshotChunk_Result_RETRY_SNAPSHOT = + 4, /* Retry snapshot (combine with refetch and reject) */ + tendermint_abci_ResponseApplySnapshotChunk_Result_REJECT_SNAPSHOT = 5 /* Reject this snapshot, try others */ +} tendermint_abci_ResponseApplySnapshotChunk_Result; + +typedef enum _tendermint_abci_ResponseProcessProposal_ProposalStatus { + tendermint_abci_ResponseProcessProposal_ProposalStatus_UNKNOWN = 0, + tendermint_abci_ResponseProcessProposal_ProposalStatus_ACCEPT = 1, + tendermint_abci_ResponseProcessProposal_ProposalStatus_REJECT = 2 +} tendermint_abci_ResponseProcessProposal_ProposalStatus; + +/* Struct definitions */ +typedef struct _tendermint_abci_RequestEcho { + pb_callback_t message; +} tendermint_abci_RequestEcho; + +typedef struct _tendermint_abci_RequestFlush { + char dummy_field; +} tendermint_abci_RequestFlush; + +typedef struct _tendermint_abci_RequestInfo { + pb_callback_t version; + uint64_t block_version; + uint64_t p2p_version; + pb_callback_t abci_version; +} tendermint_abci_RequestInfo; + +typedef struct _tendermint_abci_RequestInitChain { + bool has_time; + google_protobuf_Timestamp time; + pb_callback_t chain_id; + bool has_consensus_params; + tendermint_types_ConsensusParams consensus_params; + pb_callback_t validators; + pb_callback_t app_state_bytes; + int64_t initial_height; +} tendermint_abci_RequestInitChain; + +typedef struct _tendermint_abci_RequestQuery { + pb_callback_t data; + pb_callback_t path; + int64_t height; + bool prove; +} tendermint_abci_RequestQuery; + +typedef struct _tendermint_abci_RequestCheckTx { + pb_callback_t tx; + tendermint_abci_CheckTxType type; +} tendermint_abci_RequestCheckTx; + +typedef struct _tendermint_abci_RequestDeliverTx { + pb_callback_t tx; +} tendermint_abci_RequestDeliverTx; + +typedef struct _tendermint_abci_RequestEndBlock { + int64_t height; +} tendermint_abci_RequestEndBlock; + +typedef struct _tendermint_abci_RequestCommit { + char dummy_field; +} tendermint_abci_RequestCommit; + +/* lists available snapshots */ +typedef struct _tendermint_abci_RequestListSnapshots { + char dummy_field; +} tendermint_abci_RequestListSnapshots; + +/* loads a snapshot chunk */ +typedef struct _tendermint_abci_RequestLoadSnapshotChunk { + uint64_t height; + uint32_t format; + uint32_t chunk; +} tendermint_abci_RequestLoadSnapshotChunk; + +/* Applies a snapshot chunk */ +typedef struct _tendermint_abci_RequestApplySnapshotChunk { + uint32_t index; + pb_callback_t chunk; + pb_callback_t sender; +} tendermint_abci_RequestApplySnapshotChunk; + +/* nondeterministic */ +typedef struct _tendermint_abci_ResponseException { + pb_callback_t error; +} tendermint_abci_ResponseException; + +typedef struct _tendermint_abci_ResponseEcho { + pb_callback_t message; +} tendermint_abci_ResponseEcho; + +typedef struct _tendermint_abci_ResponseFlush { + char dummy_field; +} tendermint_abci_ResponseFlush; + +typedef struct _tendermint_abci_ResponseInfo { + pb_callback_t data; + pb_callback_t version; + uint64_t app_version; + int64_t last_block_height; + pb_callback_t last_block_app_hash; +} tendermint_abci_ResponseInfo; + +typedef struct _tendermint_abci_ResponseInitChain { + bool has_consensus_params; + tendermint_types_ConsensusParams consensus_params; + pb_callback_t validators; + pb_callback_t app_hash; +} tendermint_abci_ResponseInitChain; + +typedef struct _tendermint_abci_ResponseQuery { + uint32_t code; + /* bytes data = 2; // use "value" instead. */ + pb_callback_t log; /* nondeterministic */ + pb_callback_t info; /* nondeterministic */ + int64_t index; + pb_callback_t key; + pb_callback_t value; + bool has_proof_ops; + tendermint_crypto_ProofOps proof_ops; + int64_t height; + pb_callback_t codespace; +} tendermint_abci_ResponseQuery; + +typedef struct _tendermint_abci_ResponseBeginBlock { + pb_callback_t events; +} tendermint_abci_ResponseBeginBlock; + +typedef struct _tendermint_abci_ResponseCheckTx { + uint32_t code; + pb_callback_t data; + pb_callback_t log; /* nondeterministic */ + pb_callback_t info; /* nondeterministic */ + int64_t gas_wanted; + int64_t gas_used; + pb_callback_t events; + pb_callback_t codespace; + pb_callback_t sender; + int64_t priority; + /* mempool_error is set by CometBFT. + ABCI applictions creating a ResponseCheckTX should not set mempool_error. */ + pb_callback_t mempool_error; +} tendermint_abci_ResponseCheckTx; + +typedef struct _tendermint_abci_ResponseDeliverTx { + uint32_t code; + pb_callback_t data; + pb_callback_t log; /* nondeterministic */ + pb_callback_t info; /* nondeterministic */ + int64_t gas_wanted; + int64_t gas_used; + pb_callback_t events; /* nondeterministic */ + pb_callback_t codespace; +} tendermint_abci_ResponseDeliverTx; + +typedef struct _tendermint_abci_ResponseEndBlock { + pb_callback_t validator_updates; + bool has_consensus_param_updates; + tendermint_types_ConsensusParams consensus_param_updates; + pb_callback_t events; +} tendermint_abci_ResponseEndBlock; + +typedef struct _tendermint_abci_ResponseCommit { + /* reserve 1 */ + pb_callback_t data; + int64_t retain_height; +} tendermint_abci_ResponseCommit; + +typedef struct _tendermint_abci_ResponseListSnapshots { + pb_callback_t snapshots; +} tendermint_abci_ResponseListSnapshots; + +typedef struct _tendermint_abci_ResponseOfferSnapshot { + tendermint_abci_ResponseOfferSnapshot_Result result; +} tendermint_abci_ResponseOfferSnapshot; + +typedef struct _tendermint_abci_ResponseLoadSnapshotChunk { + pb_callback_t chunk; +} tendermint_abci_ResponseLoadSnapshotChunk; + +typedef struct _tendermint_abci_ResponseApplySnapshotChunk { + tendermint_abci_ResponseApplySnapshotChunk_Result result; + pb_callback_t refetch_chunks; /* Chunks to refetch and reapply */ + pb_callback_t reject_senders; /* Chunk senders to reject and ban */ +} tendermint_abci_ResponseApplySnapshotChunk; + +typedef struct _tendermint_abci_ResponsePrepareProposal { + pb_callback_t txs; +} tendermint_abci_ResponsePrepareProposal; + +typedef struct _tendermint_abci_ResponseProcessProposal { + tendermint_abci_ResponseProcessProposal_ProposalStatus status; +} tendermint_abci_ResponseProcessProposal; + +typedef struct _tendermint_abci_Response { + pb_size_t which_value; + union { + tendermint_abci_ResponseException exception; + tendermint_abci_ResponseEcho echo; + tendermint_abci_ResponseFlush flush; + tendermint_abci_ResponseInfo info; + tendermint_abci_ResponseInitChain init_chain; + tendermint_abci_ResponseQuery query; + tendermint_abci_ResponseBeginBlock begin_block; + tendermint_abci_ResponseCheckTx check_tx; + tendermint_abci_ResponseDeliverTx deliver_tx; + tendermint_abci_ResponseEndBlock end_block; + tendermint_abci_ResponseCommit commit; + tendermint_abci_ResponseListSnapshots list_snapshots; + tendermint_abci_ResponseOfferSnapshot offer_snapshot; + tendermint_abci_ResponseLoadSnapshotChunk load_snapshot_chunk; + tendermint_abci_ResponseApplySnapshotChunk apply_snapshot_chunk; + tendermint_abci_ResponsePrepareProposal prepare_proposal; + tendermint_abci_ResponseProcessProposal process_proposal; + } value; +} tendermint_abci_Response; + +typedef struct _tendermint_abci_CommitInfo { + int32_t round; + pb_callback_t votes; +} tendermint_abci_CommitInfo; + +typedef struct _tendermint_abci_RequestBeginBlock { + pb_callback_t hash; + bool has_header; + tendermint_types_Header header; + bool has_last_commit_info; + tendermint_abci_CommitInfo last_commit_info; + pb_callback_t byzantine_validators; +} tendermint_abci_RequestBeginBlock; + +typedef struct _tendermint_abci_RequestProcessProposal { + pb_callback_t txs; + bool has_proposed_last_commit; + tendermint_abci_CommitInfo proposed_last_commit; + pb_callback_t misbehavior; + /* hash is the merkle root hash of the fields of the proposed block. */ + pb_callback_t hash; + int64_t height; + bool has_time; + google_protobuf_Timestamp time; + pb_callback_t next_validators_hash; + /* address of the public key of the original proposer of the block. */ + pb_callback_t proposer_address; +} tendermint_abci_RequestProcessProposal; + +typedef struct _tendermint_abci_ExtendedCommitInfo { + /* The round at which the block proposer decided in the previous height. */ + int32_t round; + /* List of validators' addresses in the last validator set with their voting + information, including vote extensions. */ + pb_callback_t votes; +} tendermint_abci_ExtendedCommitInfo; + +typedef struct _tendermint_abci_RequestPrepareProposal { + /* the modified transactions cannot exceed this size. */ + int64_t max_tx_bytes; + /* txs is an array of transactions that will be included in a block, + sent to the app for possible modifications. */ + pb_callback_t txs; + bool has_local_last_commit; + tendermint_abci_ExtendedCommitInfo local_last_commit; + pb_callback_t misbehavior; + int64_t height; + bool has_time; + google_protobuf_Timestamp time; + pb_callback_t next_validators_hash; + /* address of the public key of the validator proposing the block. */ + pb_callback_t proposer_address; +} tendermint_abci_RequestPrepareProposal; + +/* Event allows application developers to attach additional information to + ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. + Later, transactions may be queried using these events. */ +typedef struct _tendermint_abci_Event { + pb_callback_t type; + pb_callback_t attributes; +} tendermint_abci_Event; + +/* EventAttribute is a single key-value pair, associated with an event. */ +typedef struct _tendermint_abci_EventAttribute { + pb_callback_t key; + pb_callback_t value; + bool index; /* nondeterministic */ +} tendermint_abci_EventAttribute; + +/* TxResult contains results of executing the transaction. + + One usage is indexing transaction results. */ +typedef struct _tendermint_abci_TxResult { + int64_t height; + uint32_t index; + pb_callback_t tx; + bool has_result; + tendermint_abci_ResponseDeliverTx result; +} tendermint_abci_TxResult; + +/* Validator */ +typedef struct _tendermint_abci_Validator { + pb_callback_t address; /* The first 20 bytes of SHA256(public key) */ + /* PubKey pub_key = 2 [(gogoproto.nullable)=false]; */ + int64_t power; /* The voting power */ +} tendermint_abci_Validator; + +/* ValidatorUpdate */ +typedef struct _tendermint_abci_ValidatorUpdate { + bool has_pub_key; + tendermint_crypto_PublicKey pub_key; + int64_t power; +} tendermint_abci_ValidatorUpdate; + +/* VoteInfo */ +typedef struct _tendermint_abci_VoteInfo { + bool has_validator; + tendermint_abci_Validator validator; + bool signed_last_block; +} tendermint_abci_VoteInfo; + +typedef struct _tendermint_abci_ExtendedVoteInfo { + bool has_validator; + tendermint_abci_Validator validator; + bool signed_last_block; + pb_callback_t vote_extension; /* Reserved for future use */ +} tendermint_abci_ExtendedVoteInfo; + +typedef struct _tendermint_abci_Misbehavior { + tendermint_abci_MisbehaviorType type; + /* The offending validator */ + bool has_validator; + tendermint_abci_Validator validator; + /* The height when the offense occurred */ + int64_t height; + /* The corresponding time where the offense occurred */ + bool has_time; + google_protobuf_Timestamp time; + /* Total voting power of the validator set in case the ABCI application does + not store historical validators. + https://github.com/tendermint/tendermint/issues/4581 */ + int64_t total_voting_power; +} tendermint_abci_Misbehavior; + +typedef struct _tendermint_abci_Snapshot { + uint64_t height; /* The height at which the snapshot was taken */ + uint32_t format; /* The application-specific snapshot format */ + uint32_t chunks; /* Number of chunks in the snapshot */ + pb_callback_t hash; /* Arbitrary snapshot hash, equal only if identical */ + pb_callback_t metadata; /* Arbitrary application metadata */ +} tendermint_abci_Snapshot; + +/* offers a snapshot to the application */ +typedef struct _tendermint_abci_RequestOfferSnapshot { + bool has_snapshot; + tendermint_abci_Snapshot snapshot; /* snapshot offered by peers */ + pb_callback_t app_hash; /* light client-verified app hash for snapshot height */ +} tendermint_abci_RequestOfferSnapshot; + +typedef struct _tendermint_abci_Request { + pb_size_t which_value; + union { + tendermint_abci_RequestEcho echo; + tendermint_abci_RequestFlush flush; + tendermint_abci_RequestInfo info; + tendermint_abci_RequestInitChain init_chain; + tendermint_abci_RequestQuery query; + tendermint_abci_RequestBeginBlock begin_block; + tendermint_abci_RequestCheckTx check_tx; + tendermint_abci_RequestDeliverTx deliver_tx; + tendermint_abci_RequestEndBlock end_block; + tendermint_abci_RequestCommit commit; + tendermint_abci_RequestListSnapshots list_snapshots; + tendermint_abci_RequestOfferSnapshot offer_snapshot; + tendermint_abci_RequestLoadSnapshotChunk load_snapshot_chunk; + tendermint_abci_RequestApplySnapshotChunk apply_snapshot_chunk; + tendermint_abci_RequestPrepareProposal prepare_proposal; + tendermint_abci_RequestProcessProposal process_proposal; + } value; +} tendermint_abci_Request; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _tendermint_abci_CheckTxType_MIN tendermint_abci_CheckTxType_NEW +#define _tendermint_abci_CheckTxType_MAX tendermint_abci_CheckTxType_RECHECK +#define _tendermint_abci_CheckTxType_ARRAYSIZE ((tendermint_abci_CheckTxType)(tendermint_abci_CheckTxType_RECHECK + 1)) + +#define _tendermint_abci_MisbehaviorType_MIN tendermint_abci_MisbehaviorType_UNKNOWN +#define _tendermint_abci_MisbehaviorType_MAX tendermint_abci_MisbehaviorType_LIGHT_CLIENT_ATTACK +#define _tendermint_abci_MisbehaviorType_ARRAYSIZE \ + ((tendermint_abci_MisbehaviorType)(tendermint_abci_MisbehaviorType_LIGHT_CLIENT_ATTACK + 1)) + +#define _tendermint_abci_ResponseOfferSnapshot_Result_MIN tendermint_abci_ResponseOfferSnapshot_Result_UNKNOWN +#define _tendermint_abci_ResponseOfferSnapshot_Result_MAX tendermint_abci_ResponseOfferSnapshot_Result_REJECT_SENDER +#define _tendermint_abci_ResponseOfferSnapshot_Result_ARRAYSIZE \ + ((tendermint_abci_ResponseOfferSnapshot_Result)(tendermint_abci_ResponseOfferSnapshot_Result_REJECT_SENDER + 1)) + +#define _tendermint_abci_ResponseApplySnapshotChunk_Result_MIN tendermint_abci_ResponseApplySnapshotChunk_Result_UNKNOWN +#define _tendermint_abci_ResponseApplySnapshotChunk_Result_MAX \ + tendermint_abci_ResponseApplySnapshotChunk_Result_REJECT_SNAPSHOT +#define _tendermint_abci_ResponseApplySnapshotChunk_Result_ARRAYSIZE \ + ((tendermint_abci_ResponseApplySnapshotChunk_Result)(tendermint_abci_ResponseApplySnapshotChunk_Result_REJECT_SNAPSHOT + \ + 1)) + +#define _tendermint_abci_ResponseProcessProposal_ProposalStatus_MIN \ + tendermint_abci_ResponseProcessProposal_ProposalStatus_UNKNOWN +#define _tendermint_abci_ResponseProcessProposal_ProposalStatus_MAX \ + tendermint_abci_ResponseProcessProposal_ProposalStatus_REJECT +#define _tendermint_abci_ResponseProcessProposal_ProposalStatus_ARRAYSIZE \ + ((tendermint_abci_ResponseProcessProposal_ProposalStatus)(tendermint_abci_ResponseProcessProposal_ProposalStatus_REJECT + \ + 1)) + +#define tendermint_abci_RequestCheckTx_type_ENUMTYPE tendermint_abci_CheckTxType + +#define tendermint_abci_ResponseOfferSnapshot_result_ENUMTYPE tendermint_abci_ResponseOfferSnapshot_Result + +#define tendermint_abci_ResponseApplySnapshotChunk_result_ENUMTYPE tendermint_abci_ResponseApplySnapshotChunk_Result + +#define tendermint_abci_ResponseProcessProposal_status_ENUMTYPE tendermint_abci_ResponseProcessProposal_ProposalStatus + +#define tendermint_abci_Misbehavior_type_ENUMTYPE tendermint_abci_MisbehaviorType + +/* Initializer values for message structs */ +#define tendermint_abci_Request_init_default \ + { \ + 0, { tendermint_abci_RequestEcho_init_default } \ + } +#define tendermint_abci_RequestEcho_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_RequestFlush_init_default \ + { 0 } +#define tendermint_abci_RequestInfo_init_default \ + { \ + {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestInitChain_init_default \ + { \ + false, google_protobuf_Timestamp_init_default, {{NULL}, NULL}, false, \ + tendermint_types_ConsensusParams_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define tendermint_abci_RequestQuery_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define tendermint_abci_RequestBeginBlock_init_default \ + { \ + {{NULL}, NULL}, false, tendermint_types_Header_init_default, false, tendermint_abci_CommitInfo_init_default, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_RequestCheckTx_init_default \ + { {{NULL}, NULL}, _tendermint_abci_CheckTxType_MIN } +#define tendermint_abci_RequestDeliverTx_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_RequestEndBlock_init_default \ + { 0 } +#define tendermint_abci_RequestCommit_init_default \ + { 0 } +#define tendermint_abci_RequestListSnapshots_init_default \ + { 0 } +#define tendermint_abci_RequestOfferSnapshot_init_default \ + { \ + false, tendermint_abci_Snapshot_init_default, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestLoadSnapshotChunk_init_default \ + { 0, 0, 0 } +#define tendermint_abci_RequestApplySnapshotChunk_init_default \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestPrepareProposal_init_default \ + { \ + 0, {{NULL}, NULL}, false, tendermint_abci_ExtendedCommitInfo_init_default, {{NULL}, NULL}, 0, false, \ + google_protobuf_Timestamp_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_RequestProcessProposal_init_default \ + { \ + {{NULL}, NULL}, false, tendermint_abci_CommitInfo_init_default, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, \ + google_protobuf_Timestamp_init_default, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_Response_init_default \ + { \ + 0, { tendermint_abci_ResponseException_init_default } \ + } +#define tendermint_abci_ResponseException_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseEcho_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseFlush_init_default \ + { 0 } +#define tendermint_abci_ResponseInfo_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseInitChain_init_default \ + { \ + false, tendermint_types_ConsensusParams_init_default, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseQuery_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, \ + tendermint_crypto_ProofOps_init_default, 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_ResponseBeginBlock_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseCheckTx_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_ResponseDeliverTx_init_default \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseEndBlock_init_default \ + { \ + {{NULL}, NULL}, false, tendermint_types_ConsensusParams_init_default, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseCommit_init_default \ + { {{NULL}, NULL}, 0 } +#define tendermint_abci_ResponseListSnapshots_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseOfferSnapshot_init_default \ + { _tendermint_abci_ResponseOfferSnapshot_Result_MIN } +#define tendermint_abci_ResponseLoadSnapshotChunk_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseApplySnapshotChunk_init_default \ + { \ + _tendermint_abci_ResponseApplySnapshotChunk_Result_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponsePrepareProposal_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseProcessProposal_init_default \ + { _tendermint_abci_ResponseProcessProposal_ProposalStatus_MIN } +#define tendermint_abci_CommitInfo_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_abci_ExtendedCommitInfo_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_abci_Event_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_EventAttribute_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define tendermint_abci_TxResult_init_default \ + { 0, 0, {{NULL}, NULL}, false, tendermint_abci_ResponseDeliverTx_init_default } +#define tendermint_abci_Validator_init_default \ + { {{NULL}, NULL}, 0 } +#define tendermint_abci_ValidatorUpdate_init_default \ + { false, tendermint_crypto_PublicKey_init_default, 0 } +#define tendermint_abci_VoteInfo_init_default \ + { false, tendermint_abci_Validator_init_default, 0 } +#define tendermint_abci_ExtendedVoteInfo_init_default \ + { \ + false, tendermint_abci_Validator_init_default, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_Misbehavior_init_default \ + { \ + _tendermint_abci_MisbehaviorType_MIN, false, tendermint_abci_Validator_init_default, 0, false, \ + google_protobuf_Timestamp_init_default, 0 \ + } +#define tendermint_abci_Snapshot_init_default \ + { \ + 0, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_Request_init_zero \ + { \ + 0, { tendermint_abci_RequestEcho_init_zero } \ + } +#define tendermint_abci_RequestEcho_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_RequestFlush_init_zero \ + { 0 } +#define tendermint_abci_RequestInfo_init_zero \ + { \ + {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestInitChain_init_zero \ + { \ + false, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, false, tendermint_types_ConsensusParams_init_zero, \ + {{NULL}, NULL}, {{NULL}, NULL}, 0 \ + } +#define tendermint_abci_RequestQuery_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0, 0 } +#define tendermint_abci_RequestBeginBlock_init_zero \ + { \ + {{NULL}, NULL}, false, tendermint_types_Header_init_zero, false, tendermint_abci_CommitInfo_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_RequestCheckTx_init_zero \ + { {{NULL}, NULL}, _tendermint_abci_CheckTxType_MIN } +#define tendermint_abci_RequestDeliverTx_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_RequestEndBlock_init_zero \ + { 0 } +#define tendermint_abci_RequestCommit_init_zero \ + { 0 } +#define tendermint_abci_RequestListSnapshots_init_zero \ + { 0 } +#define tendermint_abci_RequestOfferSnapshot_init_zero \ + { \ + false, tendermint_abci_Snapshot_init_zero, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestLoadSnapshotChunk_init_zero \ + { 0, 0, 0 } +#define tendermint_abci_RequestApplySnapshotChunk_init_zero \ + { \ + 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_RequestPrepareProposal_init_zero \ + { \ + 0, {{NULL}, NULL}, false, tendermint_abci_ExtendedCommitInfo_init_zero, {{NULL}, NULL}, 0, false, \ + google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_RequestProcessProposal_init_zero \ + { \ + {{NULL}, NULL}, false, tendermint_abci_CommitInfo_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, 0, false, \ + google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_Response_init_zero \ + { \ + 0, { tendermint_abci_ResponseException_init_zero } \ + } +#define tendermint_abci_ResponseException_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseEcho_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseFlush_init_zero \ + { 0 } +#define tendermint_abci_ResponseInfo_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseInitChain_init_zero \ + { \ + false, tendermint_types_ConsensusParams_init_zero, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseQuery_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_crypto_ProofOps_init_zero, \ + 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_ResponseBeginBlock_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseCheckTx_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_abci_ResponseDeliverTx_init_zero \ + { \ + 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseEndBlock_init_zero \ + { \ + {{NULL}, NULL}, false, tendermint_types_ConsensusParams_init_zero, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseCommit_init_zero \ + { {{NULL}, NULL}, 0 } +#define tendermint_abci_ResponseListSnapshots_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseOfferSnapshot_init_zero \ + { _tendermint_abci_ResponseOfferSnapshot_Result_MIN } +#define tendermint_abci_ResponseLoadSnapshotChunk_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseApplySnapshotChunk_init_zero \ + { \ + _tendermint_abci_ResponseApplySnapshotChunk_Result_MIN, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_ResponsePrepareProposal_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_abci_ResponseProcessProposal_init_zero \ + { _tendermint_abci_ResponseProcessProposal_ProposalStatus_MIN } +#define tendermint_abci_CommitInfo_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_abci_ExtendedCommitInfo_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_abci_Event_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_abci_EventAttribute_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define tendermint_abci_TxResult_init_zero \ + { 0, 0, {{NULL}, NULL}, false, tendermint_abci_ResponseDeliverTx_init_zero } +#define tendermint_abci_Validator_init_zero \ + { {{NULL}, NULL}, 0 } +#define tendermint_abci_ValidatorUpdate_init_zero \ + { false, tendermint_crypto_PublicKey_init_zero, 0 } +#define tendermint_abci_VoteInfo_init_zero \ + { false, tendermint_abci_Validator_init_zero, 0 } +#define tendermint_abci_ExtendedVoteInfo_init_zero \ + { \ + false, tendermint_abci_Validator_init_zero, 0, { {NULL}, NULL } \ + } +#define tendermint_abci_Misbehavior_init_zero \ + { \ + _tendermint_abci_MisbehaviorType_MIN, false, tendermint_abci_Validator_init_zero, 0, false, \ + google_protobuf_Timestamp_init_zero, 0 \ + } +#define tendermint_abci_Snapshot_init_zero \ + { \ + 0, 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_abci_RequestEcho_message_tag 1 +#define tendermint_abci_RequestInfo_version_tag 1 +#define tendermint_abci_RequestInfo_block_version_tag 2 +#define tendermint_abci_RequestInfo_p2p_version_tag 3 +#define tendermint_abci_RequestInfo_abci_version_tag 4 +#define tendermint_abci_RequestInitChain_time_tag 1 +#define tendermint_abci_RequestInitChain_chain_id_tag 2 +#define tendermint_abci_RequestInitChain_consensus_params_tag 3 +#define tendermint_abci_RequestInitChain_validators_tag 4 +#define tendermint_abci_RequestInitChain_app_state_bytes_tag 5 +#define tendermint_abci_RequestInitChain_initial_height_tag 6 +#define tendermint_abci_RequestQuery_data_tag 1 +#define tendermint_abci_RequestQuery_path_tag 2 +#define tendermint_abci_RequestQuery_height_tag 3 +#define tendermint_abci_RequestQuery_prove_tag 4 +#define tendermint_abci_RequestCheckTx_tx_tag 1 +#define tendermint_abci_RequestCheckTx_type_tag 2 +#define tendermint_abci_RequestDeliverTx_tx_tag 1 +#define tendermint_abci_RequestEndBlock_height_tag 1 +#define tendermint_abci_RequestLoadSnapshotChunk_height_tag 1 +#define tendermint_abci_RequestLoadSnapshotChunk_format_tag 2 +#define tendermint_abci_RequestLoadSnapshotChunk_chunk_tag 3 +#define tendermint_abci_RequestApplySnapshotChunk_index_tag 1 +#define tendermint_abci_RequestApplySnapshotChunk_chunk_tag 2 +#define tendermint_abci_RequestApplySnapshotChunk_sender_tag 3 +#define tendermint_abci_ResponseException_error_tag 1 +#define tendermint_abci_ResponseEcho_message_tag 1 +#define tendermint_abci_ResponseInfo_data_tag 1 +#define tendermint_abci_ResponseInfo_version_tag 2 +#define tendermint_abci_ResponseInfo_app_version_tag 3 +#define tendermint_abci_ResponseInfo_last_block_height_tag 4 +#define tendermint_abci_ResponseInfo_last_block_app_hash_tag 5 +#define tendermint_abci_ResponseInitChain_consensus_params_tag 1 +#define tendermint_abci_ResponseInitChain_validators_tag 2 +#define tendermint_abci_ResponseInitChain_app_hash_tag 3 +#define tendermint_abci_ResponseQuery_code_tag 1 +#define tendermint_abci_ResponseQuery_log_tag 3 +#define tendermint_abci_ResponseQuery_info_tag 4 +#define tendermint_abci_ResponseQuery_index_tag 5 +#define tendermint_abci_ResponseQuery_key_tag 6 +#define tendermint_abci_ResponseQuery_value_tag 7 +#define tendermint_abci_ResponseQuery_proof_ops_tag 8 +#define tendermint_abci_ResponseQuery_height_tag 9 +#define tendermint_abci_ResponseQuery_codespace_tag 10 +#define tendermint_abci_ResponseBeginBlock_events_tag 1 +#define tendermint_abci_ResponseCheckTx_code_tag 1 +#define tendermint_abci_ResponseCheckTx_data_tag 2 +#define tendermint_abci_ResponseCheckTx_log_tag 3 +#define tendermint_abci_ResponseCheckTx_info_tag 4 +#define tendermint_abci_ResponseCheckTx_gas_wanted_tag 5 +#define tendermint_abci_ResponseCheckTx_gas_used_tag 6 +#define tendermint_abci_ResponseCheckTx_events_tag 7 +#define tendermint_abci_ResponseCheckTx_codespace_tag 8 +#define tendermint_abci_ResponseCheckTx_sender_tag 9 +#define tendermint_abci_ResponseCheckTx_priority_tag 10 +#define tendermint_abci_ResponseCheckTx_mempool_error_tag 11 +#define tendermint_abci_ResponseDeliverTx_code_tag 1 +#define tendermint_abci_ResponseDeliverTx_data_tag 2 +#define tendermint_abci_ResponseDeliverTx_log_tag 3 +#define tendermint_abci_ResponseDeliverTx_info_tag 4 +#define tendermint_abci_ResponseDeliverTx_gas_wanted_tag 5 +#define tendermint_abci_ResponseDeliverTx_gas_used_tag 6 +#define tendermint_abci_ResponseDeliverTx_events_tag 7 +#define tendermint_abci_ResponseDeliverTx_codespace_tag 8 +#define tendermint_abci_ResponseEndBlock_validator_updates_tag 1 +#define tendermint_abci_ResponseEndBlock_consensus_param_updates_tag 2 +#define tendermint_abci_ResponseEndBlock_events_tag 3 +#define tendermint_abci_ResponseCommit_data_tag 2 +#define tendermint_abci_ResponseCommit_retain_height_tag 3 +#define tendermint_abci_ResponseListSnapshots_snapshots_tag 1 +#define tendermint_abci_ResponseOfferSnapshot_result_tag 1 +#define tendermint_abci_ResponseLoadSnapshotChunk_chunk_tag 1 +#define tendermint_abci_ResponseApplySnapshotChunk_result_tag 1 +#define tendermint_abci_ResponseApplySnapshotChunk_refetch_chunks_tag 2 +#define tendermint_abci_ResponseApplySnapshotChunk_reject_senders_tag 3 +#define tendermint_abci_ResponsePrepareProposal_txs_tag 1 +#define tendermint_abci_ResponseProcessProposal_status_tag 1 +#define tendermint_abci_Response_exception_tag 1 +#define tendermint_abci_Response_echo_tag 2 +#define tendermint_abci_Response_flush_tag 3 +#define tendermint_abci_Response_info_tag 4 +#define tendermint_abci_Response_init_chain_tag 6 +#define tendermint_abci_Response_query_tag 7 +#define tendermint_abci_Response_begin_block_tag 8 +#define tendermint_abci_Response_check_tx_tag 9 +#define tendermint_abci_Response_deliver_tx_tag 10 +#define tendermint_abci_Response_end_block_tag 11 +#define tendermint_abci_Response_commit_tag 12 +#define tendermint_abci_Response_list_snapshots_tag 13 +#define tendermint_abci_Response_offer_snapshot_tag 14 +#define tendermint_abci_Response_load_snapshot_chunk_tag 15 +#define tendermint_abci_Response_apply_snapshot_chunk_tag 16 +#define tendermint_abci_Response_prepare_proposal_tag 17 +#define tendermint_abci_Response_process_proposal_tag 18 +#define tendermint_abci_CommitInfo_round_tag 1 +#define tendermint_abci_CommitInfo_votes_tag 2 +#define tendermint_abci_RequestBeginBlock_hash_tag 1 +#define tendermint_abci_RequestBeginBlock_header_tag 2 +#define tendermint_abci_RequestBeginBlock_last_commit_info_tag 3 +#define tendermint_abci_RequestBeginBlock_byzantine_validators_tag 4 +#define tendermint_abci_RequestProcessProposal_txs_tag 1 +#define tendermint_abci_RequestProcessProposal_proposed_last_commit_tag 2 +#define tendermint_abci_RequestProcessProposal_misbehavior_tag 3 +#define tendermint_abci_RequestProcessProposal_hash_tag 4 +#define tendermint_abci_RequestProcessProposal_height_tag 5 +#define tendermint_abci_RequestProcessProposal_time_tag 6 +#define tendermint_abci_RequestProcessProposal_next_validators_hash_tag 7 +#define tendermint_abci_RequestProcessProposal_proposer_address_tag 8 +#define tendermint_abci_ExtendedCommitInfo_round_tag 1 +#define tendermint_abci_ExtendedCommitInfo_votes_tag 2 +#define tendermint_abci_RequestPrepareProposal_max_tx_bytes_tag 1 +#define tendermint_abci_RequestPrepareProposal_txs_tag 2 +#define tendermint_abci_RequestPrepareProposal_local_last_commit_tag 3 +#define tendermint_abci_RequestPrepareProposal_misbehavior_tag 4 +#define tendermint_abci_RequestPrepareProposal_height_tag 5 +#define tendermint_abci_RequestPrepareProposal_time_tag 6 +#define tendermint_abci_RequestPrepareProposal_next_validators_hash_tag 7 +#define tendermint_abci_RequestPrepareProposal_proposer_address_tag 8 +#define tendermint_abci_Event_type_tag 1 +#define tendermint_abci_Event_attributes_tag 2 +#define tendermint_abci_EventAttribute_key_tag 1 +#define tendermint_abci_EventAttribute_value_tag 2 +#define tendermint_abci_EventAttribute_index_tag 3 +#define tendermint_abci_TxResult_height_tag 1 +#define tendermint_abci_TxResult_index_tag 2 +#define tendermint_abci_TxResult_tx_tag 3 +#define tendermint_abci_TxResult_result_tag 4 +#define tendermint_abci_Validator_address_tag 1 +#define tendermint_abci_Validator_power_tag 3 +#define tendermint_abci_ValidatorUpdate_pub_key_tag 1 +#define tendermint_abci_ValidatorUpdate_power_tag 2 +#define tendermint_abci_VoteInfo_validator_tag 1 +#define tendermint_abci_VoteInfo_signed_last_block_tag 2 +#define tendermint_abci_ExtendedVoteInfo_validator_tag 1 +#define tendermint_abci_ExtendedVoteInfo_signed_last_block_tag 2 +#define tendermint_abci_ExtendedVoteInfo_vote_extension_tag 3 +#define tendermint_abci_Misbehavior_type_tag 1 +#define tendermint_abci_Misbehavior_validator_tag 2 +#define tendermint_abci_Misbehavior_height_tag 3 +#define tendermint_abci_Misbehavior_time_tag 4 +#define tendermint_abci_Misbehavior_total_voting_power_tag 5 +#define tendermint_abci_Snapshot_height_tag 1 +#define tendermint_abci_Snapshot_format_tag 2 +#define tendermint_abci_Snapshot_chunks_tag 3 +#define tendermint_abci_Snapshot_hash_tag 4 +#define tendermint_abci_Snapshot_metadata_tag 5 +#define tendermint_abci_RequestOfferSnapshot_snapshot_tag 1 +#define tendermint_abci_RequestOfferSnapshot_app_hash_tag 2 +#define tendermint_abci_Request_echo_tag 1 +#define tendermint_abci_Request_flush_tag 2 +#define tendermint_abci_Request_info_tag 3 +#define tendermint_abci_Request_init_chain_tag 5 +#define tendermint_abci_Request_query_tag 6 +#define tendermint_abci_Request_begin_block_tag 7 +#define tendermint_abci_Request_check_tx_tag 8 +#define tendermint_abci_Request_deliver_tx_tag 9 +#define tendermint_abci_Request_end_block_tag 10 +#define tendermint_abci_Request_commit_tag 11 +#define tendermint_abci_Request_list_snapshots_tag 12 +#define tendermint_abci_Request_offer_snapshot_tag 13 +#define tendermint_abci_Request_load_snapshot_chunk_tag 14 +#define tendermint_abci_Request_apply_snapshot_chunk_tag 15 +#define tendermint_abci_Request_prepare_proposal_tag 16 +#define tendermint_abci_Request_process_proposal_tag 17 + +/* Struct field encoding specification for nanopb */ +#define tendermint_abci_Request_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (value, echo, value.echo), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (value, flush, value.flush), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (value, info, value.info), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (value, init_chain, value.init_chain), 5) \ + X(a, STATIC, ONEOF, MESSAGE, (value, query, value.query), 6) \ + X(a, STATIC, ONEOF, MESSAGE, (value, begin_block, value.begin_block), 7) \ + X(a, STATIC, ONEOF, MESSAGE, (value, check_tx, value.check_tx), 8) \ + X(a, STATIC, ONEOF, MESSAGE, (value, deliver_tx, value.deliver_tx), 9) \ + X(a, STATIC, ONEOF, MESSAGE, (value, end_block, value.end_block), 10) \ + X(a, STATIC, ONEOF, MESSAGE, (value, commit, value.commit), 11) \ + X(a, STATIC, ONEOF, MESSAGE, (value, list_snapshots, value.list_snapshots), 12) \ + X(a, STATIC, ONEOF, MESSAGE, (value, offer_snapshot, value.offer_snapshot), 13) \ + X(a, STATIC, ONEOF, MESSAGE, (value, load_snapshot_chunk, value.load_snapshot_chunk), 14) \ + X(a, STATIC, ONEOF, MESSAGE, (value, apply_snapshot_chunk, value.apply_snapshot_chunk), 15) \ + X(a, STATIC, ONEOF, MESSAGE, (value, prepare_proposal, value.prepare_proposal), 16) \ + X(a, STATIC, ONEOF, MESSAGE, (value, process_proposal, value.process_proposal), 17) +#define tendermint_abci_Request_CALLBACK NULL +#define tendermint_abci_Request_DEFAULT NULL +#define tendermint_abci_Request_value_echo_MSGTYPE tendermint_abci_RequestEcho +#define tendermint_abci_Request_value_flush_MSGTYPE tendermint_abci_RequestFlush +#define tendermint_abci_Request_value_info_MSGTYPE tendermint_abci_RequestInfo +#define tendermint_abci_Request_value_init_chain_MSGTYPE tendermint_abci_RequestInitChain +#define tendermint_abci_Request_value_query_MSGTYPE tendermint_abci_RequestQuery +#define tendermint_abci_Request_value_begin_block_MSGTYPE tendermint_abci_RequestBeginBlock +#define tendermint_abci_Request_value_check_tx_MSGTYPE tendermint_abci_RequestCheckTx +#define tendermint_abci_Request_value_deliver_tx_MSGTYPE tendermint_abci_RequestDeliverTx +#define tendermint_abci_Request_value_end_block_MSGTYPE tendermint_abci_RequestEndBlock +#define tendermint_abci_Request_value_commit_MSGTYPE tendermint_abci_RequestCommit +#define tendermint_abci_Request_value_list_snapshots_MSGTYPE tendermint_abci_RequestListSnapshots +#define tendermint_abci_Request_value_offer_snapshot_MSGTYPE tendermint_abci_RequestOfferSnapshot +#define tendermint_abci_Request_value_load_snapshot_chunk_MSGTYPE tendermint_abci_RequestLoadSnapshotChunk +#define tendermint_abci_Request_value_apply_snapshot_chunk_MSGTYPE tendermint_abci_RequestApplySnapshotChunk +#define tendermint_abci_Request_value_prepare_proposal_MSGTYPE tendermint_abci_RequestPrepareProposal +#define tendermint_abci_Request_value_process_proposal_MSGTYPE tendermint_abci_RequestProcessProposal + +#define tendermint_abci_RequestEcho_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, message, 1) +#define tendermint_abci_RequestEcho_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestEcho_DEFAULT NULL + +#define tendermint_abci_RequestFlush_FIELDLIST(X, a) + +#define tendermint_abci_RequestFlush_CALLBACK NULL +#define tendermint_abci_RequestFlush_DEFAULT NULL + +#define tendermint_abci_RequestInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, version, 1) \ + X(a, STATIC, SINGULAR, UINT64, block_version, 2) \ + X(a, STATIC, SINGULAR, UINT64, p2p_version, 3) \ + X(a, CALLBACK, SINGULAR, STRING, abci_version, 4) +#define tendermint_abci_RequestInfo_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestInfo_DEFAULT NULL + +#define tendermint_abci_RequestInitChain_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 1) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_params, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, app_state_bytes, 5) \ + X(a, STATIC, SINGULAR, INT64, initial_height, 6) +#define tendermint_abci_RequestInitChain_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestInitChain_DEFAULT NULL +#define tendermint_abci_RequestInitChain_time_MSGTYPE google_protobuf_Timestamp +#define tendermint_abci_RequestInitChain_consensus_params_MSGTYPE tendermint_types_ConsensusParams +#define tendermint_abci_RequestInitChain_validators_MSGTYPE tendermint_abci_ValidatorUpdate + +#define tendermint_abci_RequestQuery_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 1) \ + X(a, CALLBACK, SINGULAR, STRING, path, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, SINGULAR, BOOL, prove, 4) +#define tendermint_abci_RequestQuery_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestQuery_DEFAULT NULL + +#define tendermint_abci_RequestBeginBlock_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_commit_info, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, byzantine_validators, 4) +#define tendermint_abci_RequestBeginBlock_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestBeginBlock_DEFAULT NULL +#define tendermint_abci_RequestBeginBlock_header_MSGTYPE tendermint_types_Header +#define tendermint_abci_RequestBeginBlock_last_commit_info_MSGTYPE tendermint_abci_CommitInfo +#define tendermint_abci_RequestBeginBlock_byzantine_validators_MSGTYPE tendermint_abci_Misbehavior + +#define tendermint_abci_RequestCheckTx_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, tx, 1) \ + X(a, STATIC, SINGULAR, UENUM, type, 2) +#define tendermint_abci_RequestCheckTx_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestCheckTx_DEFAULT NULL + +#define tendermint_abci_RequestDeliverTx_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, tx, 1) +#define tendermint_abci_RequestDeliverTx_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestDeliverTx_DEFAULT NULL + +#define tendermint_abci_RequestEndBlock_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT64, height, 1) +#define tendermint_abci_RequestEndBlock_CALLBACK NULL +#define tendermint_abci_RequestEndBlock_DEFAULT NULL + +#define tendermint_abci_RequestCommit_FIELDLIST(X, a) + +#define tendermint_abci_RequestCommit_CALLBACK NULL +#define tendermint_abci_RequestCommit_DEFAULT NULL + +#define tendermint_abci_RequestListSnapshots_FIELDLIST(X, a) + +#define tendermint_abci_RequestListSnapshots_CALLBACK NULL +#define tendermint_abci_RequestListSnapshots_DEFAULT NULL + +#define tendermint_abci_RequestOfferSnapshot_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, snapshot, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, app_hash, 2) +#define tendermint_abci_RequestOfferSnapshot_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestOfferSnapshot_DEFAULT NULL +#define tendermint_abci_RequestOfferSnapshot_snapshot_MSGTYPE tendermint_abci_Snapshot + +#define tendermint_abci_RequestLoadSnapshotChunk_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, SINGULAR, UINT32, format, 2) \ + X(a, STATIC, SINGULAR, UINT32, chunk, 3) +#define tendermint_abci_RequestLoadSnapshotChunk_CALLBACK NULL +#define tendermint_abci_RequestLoadSnapshotChunk_DEFAULT NULL + +#define tendermint_abci_RequestApplySnapshotChunk_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, index, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, chunk, 2) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 3) +#define tendermint_abci_RequestApplySnapshotChunk_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestApplySnapshotChunk_DEFAULT NULL + +#define tendermint_abci_RequestPrepareProposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, max_tx_bytes, 1) \ + X(a, CALLBACK, REPEATED, BYTES, txs, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, local_last_commit, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, misbehavior, 4) \ + X(a, STATIC, SINGULAR, INT64, height, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, next_validators_hash, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proposer_address, 8) +#define tendermint_abci_RequestPrepareProposal_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestPrepareProposal_DEFAULT NULL +#define tendermint_abci_RequestPrepareProposal_local_last_commit_MSGTYPE tendermint_abci_ExtendedCommitInfo +#define tendermint_abci_RequestPrepareProposal_misbehavior_MSGTYPE tendermint_abci_Misbehavior +#define tendermint_abci_RequestPrepareProposal_time_MSGTYPE google_protobuf_Timestamp + +#define tendermint_abci_RequestProcessProposal_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, BYTES, txs, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposed_last_commit, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, misbehavior, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 4) \ + X(a, STATIC, SINGULAR, INT64, height, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, next_validators_hash, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, proposer_address, 8) +#define tendermint_abci_RequestProcessProposal_CALLBACK pb_default_field_callback +#define tendermint_abci_RequestProcessProposal_DEFAULT NULL +#define tendermint_abci_RequestProcessProposal_proposed_last_commit_MSGTYPE tendermint_abci_CommitInfo +#define tendermint_abci_RequestProcessProposal_misbehavior_MSGTYPE tendermint_abci_Misbehavior +#define tendermint_abci_RequestProcessProposal_time_MSGTYPE google_protobuf_Timestamp + +#define tendermint_abci_Response_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (value, exception, value.exception), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (value, echo, value.echo), 2) \ + X(a, STATIC, ONEOF, MESSAGE, (value, flush, value.flush), 3) \ + X(a, STATIC, ONEOF, MESSAGE, (value, info, value.info), 4) \ + X(a, STATIC, ONEOF, MESSAGE, (value, init_chain, value.init_chain), 6) \ + X(a, STATIC, ONEOF, MESSAGE, (value, query, value.query), 7) \ + X(a, STATIC, ONEOF, MESSAGE, (value, begin_block, value.begin_block), 8) \ + X(a, STATIC, ONEOF, MESSAGE, (value, check_tx, value.check_tx), 9) \ + X(a, STATIC, ONEOF, MESSAGE, (value, deliver_tx, value.deliver_tx), 10) \ + X(a, STATIC, ONEOF, MESSAGE, (value, end_block, value.end_block), 11) \ + X(a, STATIC, ONEOF, MESSAGE, (value, commit, value.commit), 12) \ + X(a, STATIC, ONEOF, MESSAGE, (value, list_snapshots, value.list_snapshots), 13) \ + X(a, STATIC, ONEOF, MESSAGE, (value, offer_snapshot, value.offer_snapshot), 14) \ + X(a, STATIC, ONEOF, MESSAGE, (value, load_snapshot_chunk, value.load_snapshot_chunk), 15) \ + X(a, STATIC, ONEOF, MESSAGE, (value, apply_snapshot_chunk, value.apply_snapshot_chunk), 16) \ + X(a, STATIC, ONEOF, MESSAGE, (value, prepare_proposal, value.prepare_proposal), 17) \ + X(a, STATIC, ONEOF, MESSAGE, (value, process_proposal, value.process_proposal), 18) +#define tendermint_abci_Response_CALLBACK NULL +#define tendermint_abci_Response_DEFAULT NULL +#define tendermint_abci_Response_value_exception_MSGTYPE tendermint_abci_ResponseException +#define tendermint_abci_Response_value_echo_MSGTYPE tendermint_abci_ResponseEcho +#define tendermint_abci_Response_value_flush_MSGTYPE tendermint_abci_ResponseFlush +#define tendermint_abci_Response_value_info_MSGTYPE tendermint_abci_ResponseInfo +#define tendermint_abci_Response_value_init_chain_MSGTYPE tendermint_abci_ResponseInitChain +#define tendermint_abci_Response_value_query_MSGTYPE tendermint_abci_ResponseQuery +#define tendermint_abci_Response_value_begin_block_MSGTYPE tendermint_abci_ResponseBeginBlock +#define tendermint_abci_Response_value_check_tx_MSGTYPE tendermint_abci_ResponseCheckTx +#define tendermint_abci_Response_value_deliver_tx_MSGTYPE tendermint_abci_ResponseDeliverTx +#define tendermint_abci_Response_value_end_block_MSGTYPE tendermint_abci_ResponseEndBlock +#define tendermint_abci_Response_value_commit_MSGTYPE tendermint_abci_ResponseCommit +#define tendermint_abci_Response_value_list_snapshots_MSGTYPE tendermint_abci_ResponseListSnapshots +#define tendermint_abci_Response_value_offer_snapshot_MSGTYPE tendermint_abci_ResponseOfferSnapshot +#define tendermint_abci_Response_value_load_snapshot_chunk_MSGTYPE tendermint_abci_ResponseLoadSnapshotChunk +#define tendermint_abci_Response_value_apply_snapshot_chunk_MSGTYPE tendermint_abci_ResponseApplySnapshotChunk +#define tendermint_abci_Response_value_prepare_proposal_MSGTYPE tendermint_abci_ResponsePrepareProposal +#define tendermint_abci_Response_value_process_proposal_MSGTYPE tendermint_abci_ResponseProcessProposal + +#define tendermint_abci_ResponseException_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, error, 1) +#define tendermint_abci_ResponseException_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseException_DEFAULT NULL + +#define tendermint_abci_ResponseEcho_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, STRING, message, 1) +#define tendermint_abci_ResponseEcho_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseEcho_DEFAULT NULL + +#define tendermint_abci_ResponseFlush_FIELDLIST(X, a) + +#define tendermint_abci_ResponseFlush_CALLBACK NULL +#define tendermint_abci_ResponseFlush_DEFAULT NULL + +#define tendermint_abci_ResponseInfo_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, data, 1) \ + X(a, CALLBACK, SINGULAR, STRING, version, 2) \ + X(a, STATIC, SINGULAR, UINT64, app_version, 3) \ + X(a, STATIC, SINGULAR, INT64, last_block_height, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, last_block_app_hash, 5) +#define tendermint_abci_ResponseInfo_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseInfo_DEFAULT NULL + +#define tendermint_abci_ResponseInitChain_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_params, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, app_hash, 3) +#define tendermint_abci_ResponseInitChain_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseInitChain_DEFAULT NULL +#define tendermint_abci_ResponseInitChain_consensus_params_MSGTYPE tendermint_types_ConsensusParams +#define tendermint_abci_ResponseInitChain_validators_MSGTYPE tendermint_abci_ValidatorUpdate + +#define tendermint_abci_ResponseQuery_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, code, 1) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, SINGULAR, INT64, index, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, value, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof_ops, 8) \ + X(a, STATIC, SINGULAR, INT64, height, 9) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 10) +#define tendermint_abci_ResponseQuery_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseQuery_DEFAULT NULL +#define tendermint_abci_ResponseQuery_proof_ops_MSGTYPE tendermint_crypto_ProofOps + +#define tendermint_abci_ResponseBeginBlock_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, events, 1) +#define tendermint_abci_ResponseBeginBlock_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseBeginBlock_DEFAULT NULL +#define tendermint_abci_ResponseBeginBlock_events_MSGTYPE tendermint_abci_Event + +#define tendermint_abci_ResponseCheckTx_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, code, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, SINGULAR, INT64, gas_wanted, 5) \ + X(a, STATIC, SINGULAR, INT64, gas_used, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 7) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 8) \ + X(a, CALLBACK, SINGULAR, STRING, sender, 9) \ + X(a, STATIC, SINGULAR, INT64, priority, 10) \ + X(a, CALLBACK, SINGULAR, STRING, mempool_error, 11) +#define tendermint_abci_ResponseCheckTx_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseCheckTx_DEFAULT NULL +#define tendermint_abci_ResponseCheckTx_events_MSGTYPE tendermint_abci_Event + +#define tendermint_abci_ResponseDeliverTx_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, code, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, CALLBACK, SINGULAR, STRING, log, 3) \ + X(a, CALLBACK, SINGULAR, STRING, info, 4) \ + X(a, STATIC, SINGULAR, INT64, gas_wanted, 5) \ + X(a, STATIC, SINGULAR, INT64, gas_used, 6) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 7) \ + X(a, CALLBACK, SINGULAR, STRING, codespace, 8) +#define tendermint_abci_ResponseDeliverTx_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseDeliverTx_DEFAULT NULL +#define tendermint_abci_ResponseDeliverTx_events_MSGTYPE tendermint_abci_Event + +#define tendermint_abci_ResponseEndBlock_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, validator_updates, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, consensus_param_updates, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, events, 3) +#define tendermint_abci_ResponseEndBlock_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseEndBlock_DEFAULT NULL +#define tendermint_abci_ResponseEndBlock_validator_updates_MSGTYPE tendermint_abci_ValidatorUpdate +#define tendermint_abci_ResponseEndBlock_consensus_param_updates_MSGTYPE tendermint_types_ConsensusParams +#define tendermint_abci_ResponseEndBlock_events_MSGTYPE tendermint_abci_Event + +#define tendermint_abci_ResponseCommit_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, STATIC, SINGULAR, INT64, retain_height, 3) +#define tendermint_abci_ResponseCommit_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseCommit_DEFAULT NULL + +#define tendermint_abci_ResponseListSnapshots_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, snapshots, 1) +#define tendermint_abci_ResponseListSnapshots_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseListSnapshots_DEFAULT NULL +#define tendermint_abci_ResponseListSnapshots_snapshots_MSGTYPE tendermint_abci_Snapshot + +#define tendermint_abci_ResponseOfferSnapshot_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, result, 1) +#define tendermint_abci_ResponseOfferSnapshot_CALLBACK NULL +#define tendermint_abci_ResponseOfferSnapshot_DEFAULT NULL + +#define tendermint_abci_ResponseLoadSnapshotChunk_FIELDLIST(X, a) X(a, CALLBACK, SINGULAR, BYTES, chunk, 1) +#define tendermint_abci_ResponseLoadSnapshotChunk_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseLoadSnapshotChunk_DEFAULT NULL + +#define tendermint_abci_ResponseApplySnapshotChunk_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, result, 1) \ + X(a, CALLBACK, REPEATED, UINT32, refetch_chunks, 2) \ + X(a, CALLBACK, REPEATED, STRING, reject_senders, 3) +#define tendermint_abci_ResponseApplySnapshotChunk_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponseApplySnapshotChunk_DEFAULT NULL + +#define tendermint_abci_ResponsePrepareProposal_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, txs, 1) +#define tendermint_abci_ResponsePrepareProposal_CALLBACK pb_default_field_callback +#define tendermint_abci_ResponsePrepareProposal_DEFAULT NULL + +#define tendermint_abci_ResponseProcessProposal_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, status, 1) +#define tendermint_abci_ResponseProcessProposal_CALLBACK NULL +#define tendermint_abci_ResponseProcessProposal_DEFAULT NULL + +#define tendermint_abci_CommitInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT32, round, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 2) +#define tendermint_abci_CommitInfo_CALLBACK pb_default_field_callback +#define tendermint_abci_CommitInfo_DEFAULT NULL +#define tendermint_abci_CommitInfo_votes_MSGTYPE tendermint_abci_VoteInfo + +#define tendermint_abci_ExtendedCommitInfo_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT32, round, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, votes, 2) +#define tendermint_abci_ExtendedCommitInfo_CALLBACK pb_default_field_callback +#define tendermint_abci_ExtendedCommitInfo_DEFAULT NULL +#define tendermint_abci_ExtendedCommitInfo_votes_MSGTYPE tendermint_abci_ExtendedVoteInfo + +#define tendermint_abci_Event_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, type, 1) \ + X(a, CALLBACK, REPEATED, MESSAGE, attributes, 2) +#define tendermint_abci_Event_CALLBACK pb_default_field_callback +#define tendermint_abci_Event_DEFAULT NULL +#define tendermint_abci_Event_attributes_MSGTYPE tendermint_abci_EventAttribute + +#define tendermint_abci_EventAttribute_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, value, 2) \ + X(a, STATIC, SINGULAR, BOOL, index, 3) +#define tendermint_abci_EventAttribute_CALLBACK pb_default_field_callback +#define tendermint_abci_EventAttribute_DEFAULT NULL + +#define tendermint_abci_TxResult_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, STATIC, SINGULAR, UINT32, index, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, tx, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, result, 4) +#define tendermint_abci_TxResult_CALLBACK pb_default_field_callback +#define tendermint_abci_TxResult_DEFAULT NULL +#define tendermint_abci_TxResult_result_MSGTYPE tendermint_abci_ResponseDeliverTx + +#define tendermint_abci_Validator_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, address, 1) \ + X(a, STATIC, SINGULAR, INT64, power, 3) +#define tendermint_abci_Validator_CALLBACK pb_default_field_callback +#define tendermint_abci_Validator_DEFAULT NULL + +#define tendermint_abci_ValidatorUpdate_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 1) \ + X(a, STATIC, SINGULAR, INT64, power, 2) +#define tendermint_abci_ValidatorUpdate_CALLBACK NULL +#define tendermint_abci_ValidatorUpdate_DEFAULT NULL +#define tendermint_abci_ValidatorUpdate_pub_key_MSGTYPE tendermint_crypto_PublicKey + +#define tendermint_abci_VoteInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) \ + X(a, STATIC, SINGULAR, BOOL, signed_last_block, 2) +#define tendermint_abci_VoteInfo_CALLBACK NULL +#define tendermint_abci_VoteInfo_DEFAULT NULL +#define tendermint_abci_VoteInfo_validator_MSGTYPE tendermint_abci_Validator + +#define tendermint_abci_ExtendedVoteInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 1) \ + X(a, STATIC, SINGULAR, BOOL, signed_last_block, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, vote_extension, 3) +#define tendermint_abci_ExtendedVoteInfo_CALLBACK pb_default_field_callback +#define tendermint_abci_ExtendedVoteInfo_DEFAULT NULL +#define tendermint_abci_ExtendedVoteInfo_validator_MSGTYPE tendermint_abci_Validator + +#define tendermint_abci_Misbehavior_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, type, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 4) \ + X(a, STATIC, SINGULAR, INT64, total_voting_power, 5) +#define tendermint_abci_Misbehavior_CALLBACK NULL +#define tendermint_abci_Misbehavior_DEFAULT NULL +#define tendermint_abci_Misbehavior_validator_MSGTYPE tendermint_abci_Validator +#define tendermint_abci_Misbehavior_time_MSGTYPE google_protobuf_Timestamp + +#define tendermint_abci_Snapshot_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, height, 1) \ + X(a, STATIC, SINGULAR, UINT32, format, 2) \ + X(a, STATIC, SINGULAR, UINT32, chunks, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 4) \ + X(a, CALLBACK, SINGULAR, BYTES, metadata, 5) +#define tendermint_abci_Snapshot_CALLBACK pb_default_field_callback +#define tendermint_abci_Snapshot_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_abci_Request_msg; +extern const pb_msgdesc_t tendermint_abci_RequestEcho_msg; +extern const pb_msgdesc_t tendermint_abci_RequestFlush_msg; +extern const pb_msgdesc_t tendermint_abci_RequestInfo_msg; +extern const pb_msgdesc_t tendermint_abci_RequestInitChain_msg; +extern const pb_msgdesc_t tendermint_abci_RequestQuery_msg; +extern const pb_msgdesc_t tendermint_abci_RequestBeginBlock_msg; +extern const pb_msgdesc_t tendermint_abci_RequestCheckTx_msg; +extern const pb_msgdesc_t tendermint_abci_RequestDeliverTx_msg; +extern const pb_msgdesc_t tendermint_abci_RequestEndBlock_msg; +extern const pb_msgdesc_t tendermint_abci_RequestCommit_msg; +extern const pb_msgdesc_t tendermint_abci_RequestListSnapshots_msg; +extern const pb_msgdesc_t tendermint_abci_RequestOfferSnapshot_msg; +extern const pb_msgdesc_t tendermint_abci_RequestLoadSnapshotChunk_msg; +extern const pb_msgdesc_t tendermint_abci_RequestApplySnapshotChunk_msg; +extern const pb_msgdesc_t tendermint_abci_RequestPrepareProposal_msg; +extern const pb_msgdesc_t tendermint_abci_RequestProcessProposal_msg; +extern const pb_msgdesc_t tendermint_abci_Response_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseException_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseEcho_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseFlush_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseInfo_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseInitChain_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseQuery_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseBeginBlock_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseCheckTx_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseDeliverTx_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseEndBlock_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseCommit_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseListSnapshots_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseOfferSnapshot_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseLoadSnapshotChunk_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseApplySnapshotChunk_msg; +extern const pb_msgdesc_t tendermint_abci_ResponsePrepareProposal_msg; +extern const pb_msgdesc_t tendermint_abci_ResponseProcessProposal_msg; +extern const pb_msgdesc_t tendermint_abci_CommitInfo_msg; +extern const pb_msgdesc_t tendermint_abci_ExtendedCommitInfo_msg; +extern const pb_msgdesc_t tendermint_abci_Event_msg; +extern const pb_msgdesc_t tendermint_abci_EventAttribute_msg; +extern const pb_msgdesc_t tendermint_abci_TxResult_msg; +extern const pb_msgdesc_t tendermint_abci_Validator_msg; +extern const pb_msgdesc_t tendermint_abci_ValidatorUpdate_msg; +extern const pb_msgdesc_t tendermint_abci_VoteInfo_msg; +extern const pb_msgdesc_t tendermint_abci_ExtendedVoteInfo_msg; +extern const pb_msgdesc_t tendermint_abci_Misbehavior_msg; +extern const pb_msgdesc_t tendermint_abci_Snapshot_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_abci_Request_fields &tendermint_abci_Request_msg +#define tendermint_abci_RequestEcho_fields &tendermint_abci_RequestEcho_msg +#define tendermint_abci_RequestFlush_fields &tendermint_abci_RequestFlush_msg +#define tendermint_abci_RequestInfo_fields &tendermint_abci_RequestInfo_msg +#define tendermint_abci_RequestInitChain_fields &tendermint_abci_RequestInitChain_msg +#define tendermint_abci_RequestQuery_fields &tendermint_abci_RequestQuery_msg +#define tendermint_abci_RequestBeginBlock_fields &tendermint_abci_RequestBeginBlock_msg +#define tendermint_abci_RequestCheckTx_fields &tendermint_abci_RequestCheckTx_msg +#define tendermint_abci_RequestDeliverTx_fields &tendermint_abci_RequestDeliverTx_msg +#define tendermint_abci_RequestEndBlock_fields &tendermint_abci_RequestEndBlock_msg +#define tendermint_abci_RequestCommit_fields &tendermint_abci_RequestCommit_msg +#define tendermint_abci_RequestListSnapshots_fields &tendermint_abci_RequestListSnapshots_msg +#define tendermint_abci_RequestOfferSnapshot_fields &tendermint_abci_RequestOfferSnapshot_msg +#define tendermint_abci_RequestLoadSnapshotChunk_fields &tendermint_abci_RequestLoadSnapshotChunk_msg +#define tendermint_abci_RequestApplySnapshotChunk_fields &tendermint_abci_RequestApplySnapshotChunk_msg +#define tendermint_abci_RequestPrepareProposal_fields &tendermint_abci_RequestPrepareProposal_msg +#define tendermint_abci_RequestProcessProposal_fields &tendermint_abci_RequestProcessProposal_msg +#define tendermint_abci_Response_fields &tendermint_abci_Response_msg +#define tendermint_abci_ResponseException_fields &tendermint_abci_ResponseException_msg +#define tendermint_abci_ResponseEcho_fields &tendermint_abci_ResponseEcho_msg +#define tendermint_abci_ResponseFlush_fields &tendermint_abci_ResponseFlush_msg +#define tendermint_abci_ResponseInfo_fields &tendermint_abci_ResponseInfo_msg +#define tendermint_abci_ResponseInitChain_fields &tendermint_abci_ResponseInitChain_msg +#define tendermint_abci_ResponseQuery_fields &tendermint_abci_ResponseQuery_msg +#define tendermint_abci_ResponseBeginBlock_fields &tendermint_abci_ResponseBeginBlock_msg +#define tendermint_abci_ResponseCheckTx_fields &tendermint_abci_ResponseCheckTx_msg +#define tendermint_abci_ResponseDeliverTx_fields &tendermint_abci_ResponseDeliverTx_msg +#define tendermint_abci_ResponseEndBlock_fields &tendermint_abci_ResponseEndBlock_msg +#define tendermint_abci_ResponseCommit_fields &tendermint_abci_ResponseCommit_msg +#define tendermint_abci_ResponseListSnapshots_fields &tendermint_abci_ResponseListSnapshots_msg +#define tendermint_abci_ResponseOfferSnapshot_fields &tendermint_abci_ResponseOfferSnapshot_msg +#define tendermint_abci_ResponseLoadSnapshotChunk_fields &tendermint_abci_ResponseLoadSnapshotChunk_msg +#define tendermint_abci_ResponseApplySnapshotChunk_fields &tendermint_abci_ResponseApplySnapshotChunk_msg +#define tendermint_abci_ResponsePrepareProposal_fields &tendermint_abci_ResponsePrepareProposal_msg +#define tendermint_abci_ResponseProcessProposal_fields &tendermint_abci_ResponseProcessProposal_msg +#define tendermint_abci_CommitInfo_fields &tendermint_abci_CommitInfo_msg +#define tendermint_abci_ExtendedCommitInfo_fields &tendermint_abci_ExtendedCommitInfo_msg +#define tendermint_abci_Event_fields &tendermint_abci_Event_msg +#define tendermint_abci_EventAttribute_fields &tendermint_abci_EventAttribute_msg +#define tendermint_abci_TxResult_fields &tendermint_abci_TxResult_msg +#define tendermint_abci_Validator_fields &tendermint_abci_Validator_msg +#define tendermint_abci_ValidatorUpdate_fields &tendermint_abci_ValidatorUpdate_msg +#define tendermint_abci_VoteInfo_fields &tendermint_abci_VoteInfo_msg +#define tendermint_abci_ExtendedVoteInfo_fields &tendermint_abci_ExtendedVoteInfo_msg +#define tendermint_abci_Misbehavior_fields &tendermint_abci_Misbehavior_msg +#define tendermint_abci_Snapshot_fields &tendermint_abci_Snapshot_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_abci_Request_size depends on runtime parameters */ +/* tendermint_abci_RequestEcho_size depends on runtime parameters */ +/* tendermint_abci_RequestInfo_size depends on runtime parameters */ +/* tendermint_abci_RequestInitChain_size depends on runtime parameters */ +/* tendermint_abci_RequestQuery_size depends on runtime parameters */ +/* tendermint_abci_RequestBeginBlock_size depends on runtime parameters */ +/* tendermint_abci_RequestCheckTx_size depends on runtime parameters */ +/* tendermint_abci_RequestDeliverTx_size depends on runtime parameters */ +/* tendermint_abci_RequestOfferSnapshot_size depends on runtime parameters */ +/* tendermint_abci_RequestApplySnapshotChunk_size depends on runtime parameters */ +/* tendermint_abci_RequestPrepareProposal_size depends on runtime parameters */ +/* tendermint_abci_RequestProcessProposal_size depends on runtime parameters */ +/* tendermint_abci_Response_size depends on runtime parameters */ +/* tendermint_abci_ResponseException_size depends on runtime parameters */ +/* tendermint_abci_ResponseEcho_size depends on runtime parameters */ +/* tendermint_abci_ResponseInfo_size depends on runtime parameters */ +/* tendermint_abci_ResponseInitChain_size depends on runtime parameters */ +/* tendermint_abci_ResponseQuery_size depends on runtime parameters */ +/* tendermint_abci_ResponseBeginBlock_size depends on runtime parameters */ +/* tendermint_abci_ResponseCheckTx_size depends on runtime parameters */ +/* tendermint_abci_ResponseDeliverTx_size depends on runtime parameters */ +/* tendermint_abci_ResponseEndBlock_size depends on runtime parameters */ +/* tendermint_abci_ResponseCommit_size depends on runtime parameters */ +/* tendermint_abci_ResponseListSnapshots_size depends on runtime parameters */ +/* tendermint_abci_ResponseLoadSnapshotChunk_size depends on runtime parameters */ +/* tendermint_abci_ResponseApplySnapshotChunk_size depends on runtime parameters */ +/* tendermint_abci_ResponsePrepareProposal_size depends on runtime parameters */ +/* tendermint_abci_CommitInfo_size depends on runtime parameters */ +/* tendermint_abci_ExtendedCommitInfo_size depends on runtime parameters */ +/* tendermint_abci_Event_size depends on runtime parameters */ +/* tendermint_abci_EventAttribute_size depends on runtime parameters */ +/* tendermint_abci_TxResult_size depends on runtime parameters */ +/* tendermint_abci_Validator_size depends on runtime parameters */ +/* tendermint_abci_VoteInfo_size depends on runtime parameters */ +/* tendermint_abci_ExtendedVoteInfo_size depends on runtime parameters */ +/* tendermint_abci_Misbehavior_size depends on runtime parameters */ +/* tendermint_abci_Snapshot_size depends on runtime parameters */ +#define TENDERMINT_ABCI_TENDERMINT_ABCI_TYPES_PB_H_MAX_SIZE tendermint_abci_RequestLoadSnapshotChunk_size +#define tendermint_abci_RequestCommit_size 0 +#define tendermint_abci_RequestEndBlock_size 11 +#define tendermint_abci_RequestFlush_size 0 +#define tendermint_abci_RequestListSnapshots_size 0 +#define tendermint_abci_RequestLoadSnapshotChunk_size 23 +#define tendermint_abci_ResponseFlush_size 0 +#define tendermint_abci_ResponseOfferSnapshot_size 2 +#define tendermint_abci_ResponseProcessProposal_size 2 +#if defined(tendermint_crypto_PublicKey_size) +#define tendermint_abci_ValidatorUpdate_size (17 + tendermint_crypto_PublicKey_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/crypto/keys.pb.c b/app/src/protobuf/tendermint/crypto/keys.pb.c new file mode 100644 index 0000000..03ef682 --- /dev/null +++ b/app/src/protobuf/tendermint/crypto/keys.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/crypto/keys.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_crypto_PublicKey, tendermint_crypto_PublicKey, AUTO) diff --git a/app/src/protobuf/tendermint/crypto/keys.pb.h b/app/src/protobuf/tendermint/crypto/keys.pb.h new file mode 100644 index 0000000..dbad70b --- /dev/null +++ b/app/src/protobuf/tendermint/crypto/keys.pb.h @@ -0,0 +1,65 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_CRYPTO_TENDERMINT_CRYPTO_KEYS_PB_H_INCLUDED +#define PB_TENDERMINT_CRYPTO_TENDERMINT_CRYPTO_KEYS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* PublicKey defines the keys available for use with Validators */ +typedef struct _tendermint_crypto_PublicKey { + pb_size_t which_sum; + union { + pb_callback_t ed25519; + pb_callback_t secp256k1; + } sum; +} tendermint_crypto_PublicKey; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_crypto_PublicKey_init_default \ + { \ + 0, { \ + { {NULL}, NULL } \ + } \ + } +#define tendermint_crypto_PublicKey_init_zero \ + { \ + 0, { \ + { {NULL}, NULL } \ + } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_crypto_PublicKey_ed25519_tag 1 +#define tendermint_crypto_PublicKey_secp256k1_tag 2 + +/* Struct field encoding specification for nanopb */ +#define tendermint_crypto_PublicKey_FIELDLIST(X, a) \ + X(a, CALLBACK, ONEOF, BYTES, (sum, ed25519, sum.ed25519), 1) \ + X(a, CALLBACK, ONEOF, BYTES, (sum, secp256k1, sum.secp256k1), 2) +#define tendermint_crypto_PublicKey_CALLBACK pb_default_field_callback +#define tendermint_crypto_PublicKey_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_crypto_PublicKey_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_crypto_PublicKey_fields &tendermint_crypto_PublicKey_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_crypto_PublicKey_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/crypto/proof.pb.c b/app/src/protobuf/tendermint/crypto/proof.pb.c new file mode 100644 index 0000000..3290094 --- /dev/null +++ b/app/src/protobuf/tendermint/crypto/proof.pb.c @@ -0,0 +1,17 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/crypto/proof.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_crypto_Proof, tendermint_crypto_Proof, AUTO) + +PB_BIND(tendermint_crypto_ValueOp, tendermint_crypto_ValueOp, AUTO) + +PB_BIND(tendermint_crypto_DominoOp, tendermint_crypto_DominoOp, AUTO) + +PB_BIND(tendermint_crypto_ProofOp, tendermint_crypto_ProofOp, AUTO) + +PB_BIND(tendermint_crypto_ProofOps, tendermint_crypto_ProofOps, AUTO) diff --git a/app/src/protobuf/tendermint/crypto/proof.pb.h b/app/src/protobuf/tendermint/crypto/proof.pb.h new file mode 100644 index 0000000..7ac2886 --- /dev/null +++ b/app/src/protobuf/tendermint/crypto/proof.pb.h @@ -0,0 +1,166 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_CRYPTO_TENDERMINT_CRYPTO_PROOF_PB_H_INCLUDED +#define PB_TENDERMINT_CRYPTO_TENDERMINT_CRYPTO_PROOF_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _tendermint_crypto_Proof { + int64_t total; + int64_t index; + pb_callback_t leaf_hash; + pb_callback_t aunts; +} tendermint_crypto_Proof; + +typedef struct _tendermint_crypto_ValueOp { + /* Encoded in ProofOp.Key. */ + pb_callback_t key; + /* To encode in ProofOp.Data */ + bool has_proof; + tendermint_crypto_Proof proof; +} tendermint_crypto_ValueOp; + +typedef struct _tendermint_crypto_DominoOp { + pb_callback_t key; + pb_callback_t input; + pb_callback_t output; +} tendermint_crypto_DominoOp; + +/* ProofOp defines an operation used for calculating Merkle root + The data could be arbitrary format, providing nessecary data + for example neighbouring node hash */ +typedef struct _tendermint_crypto_ProofOp { + pb_callback_t type; + pb_callback_t key; + pb_callback_t data; +} tendermint_crypto_ProofOp; + +/* ProofOps is Merkle proof defined by the list of ProofOps */ +typedef struct _tendermint_crypto_ProofOps { + pb_callback_t ops; +} tendermint_crypto_ProofOps; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_crypto_Proof_init_default \ + { \ + 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ValueOp_init_default \ + { {{NULL}, NULL}, false, tendermint_crypto_Proof_init_default } +#define tendermint_crypto_DominoOp_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ProofOp_init_default \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ProofOps_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_crypto_Proof_init_zero \ + { \ + 0, 0, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ValueOp_init_zero \ + { {{NULL}, NULL}, false, tendermint_crypto_Proof_init_zero } +#define tendermint_crypto_DominoOp_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ProofOp_init_zero \ + { \ + {{NULL}, NULL}, {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_crypto_ProofOps_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_crypto_Proof_total_tag 1 +#define tendermint_crypto_Proof_index_tag 2 +#define tendermint_crypto_Proof_leaf_hash_tag 3 +#define tendermint_crypto_Proof_aunts_tag 4 +#define tendermint_crypto_ValueOp_key_tag 1 +#define tendermint_crypto_ValueOp_proof_tag 2 +#define tendermint_crypto_DominoOp_key_tag 1 +#define tendermint_crypto_DominoOp_input_tag 2 +#define tendermint_crypto_DominoOp_output_tag 3 +#define tendermint_crypto_ProofOp_type_tag 1 +#define tendermint_crypto_ProofOp_key_tag 2 +#define tendermint_crypto_ProofOp_data_tag 3 +#define tendermint_crypto_ProofOps_ops_tag 1 + +/* Struct field encoding specification for nanopb */ +#define tendermint_crypto_Proof_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, total, 1) \ + X(a, STATIC, SINGULAR, INT64, index, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, leaf_hash, 3) \ + X(a, CALLBACK, REPEATED, BYTES, aunts, 4) +#define tendermint_crypto_Proof_CALLBACK pb_default_field_callback +#define tendermint_crypto_Proof_DEFAULT NULL + +#define tendermint_crypto_ValueOp_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 2) +#define tendermint_crypto_ValueOp_CALLBACK pb_default_field_callback +#define tendermint_crypto_ValueOp_DEFAULT NULL +#define tendermint_crypto_ValueOp_proof_MSGTYPE tendermint_crypto_Proof + +#define tendermint_crypto_DominoOp_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, key, 1) \ + X(a, CALLBACK, SINGULAR, STRING, input, 2) \ + X(a, CALLBACK, SINGULAR, STRING, output, 3) +#define tendermint_crypto_DominoOp_CALLBACK pb_default_field_callback +#define tendermint_crypto_DominoOp_DEFAULT NULL + +#define tendermint_crypto_ProofOp_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, type, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, key, 2) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 3) +#define tendermint_crypto_ProofOp_CALLBACK pb_default_field_callback +#define tendermint_crypto_ProofOp_DEFAULT NULL + +#define tendermint_crypto_ProofOps_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, ops, 1) +#define tendermint_crypto_ProofOps_CALLBACK pb_default_field_callback +#define tendermint_crypto_ProofOps_DEFAULT NULL +#define tendermint_crypto_ProofOps_ops_MSGTYPE tendermint_crypto_ProofOp + +extern const pb_msgdesc_t tendermint_crypto_Proof_msg; +extern const pb_msgdesc_t tendermint_crypto_ValueOp_msg; +extern const pb_msgdesc_t tendermint_crypto_DominoOp_msg; +extern const pb_msgdesc_t tendermint_crypto_ProofOp_msg; +extern const pb_msgdesc_t tendermint_crypto_ProofOps_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_crypto_Proof_fields &tendermint_crypto_Proof_msg +#define tendermint_crypto_ValueOp_fields &tendermint_crypto_ValueOp_msg +#define tendermint_crypto_DominoOp_fields &tendermint_crypto_DominoOp_msg +#define tendermint_crypto_ProofOp_fields &tendermint_crypto_ProofOp_msg +#define tendermint_crypto_ProofOps_fields &tendermint_crypto_ProofOps_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_crypto_Proof_size depends on runtime parameters */ +/* tendermint_crypto_ValueOp_size depends on runtime parameters */ +/* tendermint_crypto_DominoOp_size depends on runtime parameters */ +/* tendermint_crypto_ProofOp_size depends on runtime parameters */ +/* tendermint_crypto_ProofOps_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/libs/bits/types.pb.c b/app/src/protobuf/tendermint/libs/bits/types.pb.c new file mode 100644 index 0000000..5cd9d0f --- /dev/null +++ b/app/src/protobuf/tendermint/libs/bits/types.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/libs/bits/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_libs_bits_BitArray, tendermint_libs_bits_BitArray, AUTO) diff --git a/app/src/protobuf/tendermint/libs/bits/types.pb.h b/app/src/protobuf/tendermint/libs/bits/types.pb.h new file mode 100644 index 0000000..cedafd1 --- /dev/null +++ b/app/src/protobuf/tendermint/libs/bits/types.pb.h @@ -0,0 +1,55 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_LIBS_BITS_TENDERMINT_LIBS_BITS_TYPES_PB_H_INCLUDED +#define PB_TENDERMINT_LIBS_BITS_TENDERMINT_LIBS_BITS_TYPES_PB_H_INCLUDED +#include + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _tendermint_libs_bits_BitArray { + int64_t bits; + pb_callback_t elems; +} tendermint_libs_bits_BitArray; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_libs_bits_BitArray_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_libs_bits_BitArray_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_libs_bits_BitArray_bits_tag 1 +#define tendermint_libs_bits_BitArray_elems_tag 2 + +/* Struct field encoding specification for nanopb */ +#define tendermint_libs_bits_BitArray_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, bits, 1) \ + X(a, CALLBACK, REPEATED, UINT64, elems, 2) +#define tendermint_libs_bits_BitArray_CALLBACK pb_default_field_callback +#define tendermint_libs_bits_BitArray_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_libs_bits_BitArray_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_libs_bits_BitArray_fields &tendermint_libs_bits_BitArray_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_libs_bits_BitArray_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/p2p/types.pb.c b/app/src/protobuf/tendermint/p2p/types.pb.c new file mode 100644 index 0000000..672201b --- /dev/null +++ b/app/src/protobuf/tendermint/p2p/types.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/p2p/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_p2p_NetAddress, tendermint_p2p_NetAddress, AUTO) + +PB_BIND(tendermint_p2p_ProtocolVersion, tendermint_p2p_ProtocolVersion, AUTO) + +PB_BIND(tendermint_p2p_DefaultNodeInfo, tendermint_p2p_DefaultNodeInfo, AUTO) + +PB_BIND(tendermint_p2p_DefaultNodeInfoOther, tendermint_p2p_DefaultNodeInfoOther, AUTO) diff --git a/app/src/protobuf/tendermint/p2p/types.pb.h b/app/src/protobuf/tendermint/p2p/types.pb.h new file mode 100644 index 0000000..6f8ea7e --- /dev/null +++ b/app/src/protobuf/tendermint/p2p/types.pb.h @@ -0,0 +1,152 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_P2P_TENDERMINT_P2P_TYPES_PB_H_INCLUDED +#define PB_TENDERMINT_P2P_TENDERMINT_P2P_TYPES_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _tendermint_p2p_NetAddress { + pb_callback_t id; + pb_callback_t ip; + uint32_t port; +} tendermint_p2p_NetAddress; + +typedef struct _tendermint_p2p_ProtocolVersion { + uint64_t p2p; + uint64_t block; + uint64_t app; +} tendermint_p2p_ProtocolVersion; + +typedef struct _tendermint_p2p_DefaultNodeInfoOther { + pb_callback_t tx_index; + pb_callback_t rpc_address; +} tendermint_p2p_DefaultNodeInfoOther; + +typedef struct _tendermint_p2p_DefaultNodeInfo { + bool has_protocol_version; + tendermint_p2p_ProtocolVersion protocol_version; + pb_callback_t default_node_id; + pb_callback_t listen_addr; + pb_callback_t network; + pb_callback_t version; + pb_callback_t channels; + pb_callback_t moniker; + bool has_other; + tendermint_p2p_DefaultNodeInfoOther other; +} tendermint_p2p_DefaultNodeInfo; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_p2p_NetAddress_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define tendermint_p2p_ProtocolVersion_init_default \ + { 0, 0, 0 } +#define tendermint_p2p_DefaultNodeInfo_init_default \ + { \ + false, tendermint_p2p_ProtocolVersion_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_p2p_DefaultNodeInfoOther_init_default \ + } +#define tendermint_p2p_DefaultNodeInfoOther_init_default \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } +#define tendermint_p2p_NetAddress_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, 0 } +#define tendermint_p2p_ProtocolVersion_init_zero \ + { 0, 0, 0 } +#define tendermint_p2p_DefaultNodeInfo_init_zero \ + { \ + false, tendermint_p2p_ProtocolVersion_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_p2p_DefaultNodeInfoOther_init_zero \ + } +#define tendermint_p2p_DefaultNodeInfoOther_init_zero \ + { \ + {{NULL}, NULL}, { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_p2p_NetAddress_id_tag 1 +#define tendermint_p2p_NetAddress_ip_tag 2 +#define tendermint_p2p_NetAddress_port_tag 3 +#define tendermint_p2p_ProtocolVersion_p2p_tag 1 +#define tendermint_p2p_ProtocolVersion_block_tag 2 +#define tendermint_p2p_ProtocolVersion_app_tag 3 +#define tendermint_p2p_DefaultNodeInfoOther_tx_index_tag 1 +#define tendermint_p2p_DefaultNodeInfoOther_rpc_address_tag 2 +#define tendermint_p2p_DefaultNodeInfo_protocol_version_tag 1 +#define tendermint_p2p_DefaultNodeInfo_default_node_id_tag 2 +#define tendermint_p2p_DefaultNodeInfo_listen_addr_tag 3 +#define tendermint_p2p_DefaultNodeInfo_network_tag 4 +#define tendermint_p2p_DefaultNodeInfo_version_tag 5 +#define tendermint_p2p_DefaultNodeInfo_channels_tag 6 +#define tendermint_p2p_DefaultNodeInfo_moniker_tag 7 +#define tendermint_p2p_DefaultNodeInfo_other_tag 8 + +/* Struct field encoding specification for nanopb */ +#define tendermint_p2p_NetAddress_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, id, 1) \ + X(a, CALLBACK, SINGULAR, STRING, ip, 2) \ + X(a, STATIC, SINGULAR, UINT32, port, 3) +#define tendermint_p2p_NetAddress_CALLBACK pb_default_field_callback +#define tendermint_p2p_NetAddress_DEFAULT NULL + +#define tendermint_p2p_ProtocolVersion_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, p2p, 1) \ + X(a, STATIC, SINGULAR, UINT64, block, 2) \ + X(a, STATIC, SINGULAR, UINT64, app, 3) +#define tendermint_p2p_ProtocolVersion_CALLBACK NULL +#define tendermint_p2p_ProtocolVersion_DEFAULT NULL + +#define tendermint_p2p_DefaultNodeInfo_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, protocol_version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, default_node_id, 2) \ + X(a, CALLBACK, SINGULAR, STRING, listen_addr, 3) \ + X(a, CALLBACK, SINGULAR, STRING, network, 4) \ + X(a, CALLBACK, SINGULAR, STRING, version, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, channels, 6) \ + X(a, CALLBACK, SINGULAR, STRING, moniker, 7) \ + X(a, STATIC, OPTIONAL, MESSAGE, other, 8) +#define tendermint_p2p_DefaultNodeInfo_CALLBACK pb_default_field_callback +#define tendermint_p2p_DefaultNodeInfo_DEFAULT NULL +#define tendermint_p2p_DefaultNodeInfo_protocol_version_MSGTYPE tendermint_p2p_ProtocolVersion +#define tendermint_p2p_DefaultNodeInfo_other_MSGTYPE tendermint_p2p_DefaultNodeInfoOther + +#define tendermint_p2p_DefaultNodeInfoOther_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, STRING, tx_index, 1) \ + X(a, CALLBACK, SINGULAR, STRING, rpc_address, 2) +#define tendermint_p2p_DefaultNodeInfoOther_CALLBACK pb_default_field_callback +#define tendermint_p2p_DefaultNodeInfoOther_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_p2p_NetAddress_msg; +extern const pb_msgdesc_t tendermint_p2p_ProtocolVersion_msg; +extern const pb_msgdesc_t tendermint_p2p_DefaultNodeInfo_msg; +extern const pb_msgdesc_t tendermint_p2p_DefaultNodeInfoOther_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_p2p_NetAddress_fields &tendermint_p2p_NetAddress_msg +#define tendermint_p2p_ProtocolVersion_fields &tendermint_p2p_ProtocolVersion_msg +#define tendermint_p2p_DefaultNodeInfo_fields &tendermint_p2p_DefaultNodeInfo_msg +#define tendermint_p2p_DefaultNodeInfoOther_fields &tendermint_p2p_DefaultNodeInfoOther_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_p2p_NetAddress_size depends on runtime parameters */ +/* tendermint_p2p_DefaultNodeInfo_size depends on runtime parameters */ +/* tendermint_p2p_DefaultNodeInfoOther_size depends on runtime parameters */ +#define TENDERMINT_P2P_TENDERMINT_P2P_TYPES_PB_H_MAX_SIZE tendermint_p2p_ProtocolVersion_size +#define tendermint_p2p_ProtocolVersion_size 33 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/types/block.pb.c b/app/src/protobuf/tendermint/types/block.pb.c new file mode 100644 index 0000000..753715f --- /dev/null +++ b/app/src/protobuf/tendermint/types/block.pb.c @@ -0,0 +1,9 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/types/block.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_types_Block, tendermint_types_Block, 2) diff --git a/app/src/protobuf/tendermint/types/block.pb.h b/app/src/protobuf/tendermint/types/block.pb.h new file mode 100644 index 0000000..89c7660 --- /dev/null +++ b/app/src/protobuf/tendermint/types/block.pb.h @@ -0,0 +1,81 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_TYPES_TENDERMINT_TYPES_BLOCK_PB_H_INCLUDED +#define PB_TENDERMINT_TYPES_TENDERMINT_TYPES_BLOCK_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "tendermint/types/evidence.pb.h" +#include "tendermint/types/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _tendermint_types_Block { + bool has_header; + tendermint_types_Header header; + bool has_data; + tendermint_types_Data data; + bool has_evidence; + tendermint_types_EvidenceList evidence; + bool has_last_commit; + tendermint_types_Commit last_commit; +} tendermint_types_Block; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_types_Block_init_default \ + { \ + false, tendermint_types_Header_init_default, false, tendermint_types_Data_init_default, false, \ + tendermint_types_EvidenceList_init_default, false, tendermint_types_Commit_init_default \ + } +#define tendermint_types_Block_init_zero \ + { \ + false, tendermint_types_Header_init_zero, false, tendermint_types_Data_init_zero, false, \ + tendermint_types_EvidenceList_init_zero, false, tendermint_types_Commit_init_zero \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_types_Block_header_tag 1 +#define tendermint_types_Block_data_tag 2 +#define tendermint_types_Block_evidence_tag 3 +#define tendermint_types_Block_last_commit_tag 4 + +/* Struct field encoding specification for nanopb */ +#define tendermint_types_Block_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, data, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, evidence, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_commit, 4) +#define tendermint_types_Block_CALLBACK NULL +#define tendermint_types_Block_DEFAULT NULL +#define tendermint_types_Block_header_MSGTYPE tendermint_types_Header +#define tendermint_types_Block_data_MSGTYPE tendermint_types_Data +#define tendermint_types_Block_evidence_MSGTYPE tendermint_types_EvidenceList +#define tendermint_types_Block_last_commit_MSGTYPE tendermint_types_Commit + +extern const pb_msgdesc_t tendermint_types_Block_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_types_Block_fields &tendermint_types_Block_msg + +/* Maximum encoded size of messages (where known) */ +#if defined(tendermint_types_Header_size) && defined(tendermint_types_Data_size) && \ + defined(tendermint_types_EvidenceList_size) && defined(tendermint_types_Commit_size) +#define TENDERMINT_TYPES_TENDERMINT_TYPES_BLOCK_PB_H_MAX_SIZE tendermint_types_Block_size +#define tendermint_types_Block_size \ + (24 + tendermint_types_Header_size + tendermint_types_Data_size + tendermint_types_EvidenceList_size + \ + tendermint_types_Commit_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/types/evidence.pb.c b/app/src/protobuf/tendermint/types/evidence.pb.c new file mode 100644 index 0000000..0863ee2 --- /dev/null +++ b/app/src/protobuf/tendermint/types/evidence.pb.c @@ -0,0 +1,15 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/types/evidence.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_types_Evidence, tendermint_types_Evidence, 2) + +PB_BIND(tendermint_types_DuplicateVoteEvidence, tendermint_types_DuplicateVoteEvidence, 2) + +PB_BIND(tendermint_types_LightClientAttackEvidence, tendermint_types_LightClientAttackEvidence, 2) + +PB_BIND(tendermint_types_EvidenceList, tendermint_types_EvidenceList, AUTO) diff --git a/app/src/protobuf/tendermint/types/evidence.pb.h b/app/src/protobuf/tendermint/types/evidence.pb.h new file mode 100644 index 0000000..bfa5c57 --- /dev/null +++ b/app/src/protobuf/tendermint/types/evidence.pb.h @@ -0,0 +1,166 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_TYPES_TENDERMINT_TYPES_EVIDENCE_PB_H_INCLUDED +#define PB_TENDERMINT_TYPES_TENDERMINT_TYPES_EVIDENCE_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/types/types.pb.h" +#include "tendermint/types/validator.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. */ +typedef struct _tendermint_types_DuplicateVoteEvidence { + bool has_vote_a; + tendermint_types_Vote vote_a; + bool has_vote_b; + tendermint_types_Vote vote_b; + int64_t total_voting_power; + int64_t validator_power; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} tendermint_types_DuplicateVoteEvidence; + +/* LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. */ +typedef struct _tendermint_types_LightClientAttackEvidence { + bool has_conflicting_block; + tendermint_types_LightBlock conflicting_block; + int64_t common_height; + pb_callback_t byzantine_validators; + int64_t total_voting_power; + bool has_timestamp; + google_protobuf_Timestamp timestamp; +} tendermint_types_LightClientAttackEvidence; + +typedef struct _tendermint_types_Evidence { + pb_size_t which_sum; + union { + tendermint_types_DuplicateVoteEvidence duplicate_vote_evidence; + tendermint_types_LightClientAttackEvidence light_client_attack_evidence; + } sum; +} tendermint_types_Evidence; + +typedef struct _tendermint_types_EvidenceList { + pb_callback_t evidence; +} tendermint_types_EvidenceList; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_types_Evidence_init_default \ + { \ + 0, { tendermint_types_DuplicateVoteEvidence_init_default } \ + } +#define tendermint_types_DuplicateVoteEvidence_init_default \ + { \ + false, tendermint_types_Vote_init_default, false, tendermint_types_Vote_init_default, 0, 0, false, \ + google_protobuf_Timestamp_init_default \ + } +#define tendermint_types_LightClientAttackEvidence_init_default \ + { false, tendermint_types_LightBlock_init_default, 0, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_default } +#define tendermint_types_EvidenceList_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_types_Evidence_init_zero \ + { \ + 0, { tendermint_types_DuplicateVoteEvidence_init_zero } \ + } +#define tendermint_types_DuplicateVoteEvidence_init_zero \ + { \ + false, tendermint_types_Vote_init_zero, false, tendermint_types_Vote_init_zero, 0, 0, false, \ + google_protobuf_Timestamp_init_zero \ + } +#define tendermint_types_LightClientAttackEvidence_init_zero \ + { false, tendermint_types_LightBlock_init_zero, 0, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_zero } +#define tendermint_types_EvidenceList_init_zero \ + { \ + { {NULL}, NULL } \ + } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_types_DuplicateVoteEvidence_vote_a_tag 1 +#define tendermint_types_DuplicateVoteEvidence_vote_b_tag 2 +#define tendermint_types_DuplicateVoteEvidence_total_voting_power_tag 3 +#define tendermint_types_DuplicateVoteEvidence_validator_power_tag 4 +#define tendermint_types_DuplicateVoteEvidence_timestamp_tag 5 +#define tendermint_types_LightClientAttackEvidence_conflicting_block_tag 1 +#define tendermint_types_LightClientAttackEvidence_common_height_tag 2 +#define tendermint_types_LightClientAttackEvidence_byzantine_validators_tag 3 +#define tendermint_types_LightClientAttackEvidence_total_voting_power_tag 4 +#define tendermint_types_LightClientAttackEvidence_timestamp_tag 5 +#define tendermint_types_Evidence_duplicate_vote_evidence_tag 1 +#define tendermint_types_Evidence_light_client_attack_evidence_tag 2 +#define tendermint_types_EvidenceList_evidence_tag 1 + +/* Struct field encoding specification for nanopb */ +#define tendermint_types_Evidence_FIELDLIST(X, a) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, duplicate_vote_evidence, sum.duplicate_vote_evidence), 1) \ + X(a, STATIC, ONEOF, MESSAGE, (sum, light_client_attack_evidence, sum.light_client_attack_evidence), 2) +#define tendermint_types_Evidence_CALLBACK NULL +#define tendermint_types_Evidence_DEFAULT NULL +#define tendermint_types_Evidence_sum_duplicate_vote_evidence_MSGTYPE tendermint_types_DuplicateVoteEvidence +#define tendermint_types_Evidence_sum_light_client_attack_evidence_MSGTYPE tendermint_types_LightClientAttackEvidence + +#define tendermint_types_DuplicateVoteEvidence_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote_a, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, vote_b, 2) \ + X(a, STATIC, SINGULAR, INT64, total_voting_power, 3) \ + X(a, STATIC, SINGULAR, INT64, validator_power, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 5) +#define tendermint_types_DuplicateVoteEvidence_CALLBACK NULL +#define tendermint_types_DuplicateVoteEvidence_DEFAULT NULL +#define tendermint_types_DuplicateVoteEvidence_vote_a_MSGTYPE tendermint_types_Vote +#define tendermint_types_DuplicateVoteEvidence_vote_b_MSGTYPE tendermint_types_Vote +#define tendermint_types_DuplicateVoteEvidence_timestamp_MSGTYPE google_protobuf_Timestamp + +#define tendermint_types_LightClientAttackEvidence_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, conflicting_block, 1) \ + X(a, STATIC, SINGULAR, INT64, common_height, 2) \ + X(a, CALLBACK, REPEATED, MESSAGE, byzantine_validators, 3) \ + X(a, STATIC, SINGULAR, INT64, total_voting_power, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 5) +#define tendermint_types_LightClientAttackEvidence_CALLBACK pb_default_field_callback +#define tendermint_types_LightClientAttackEvidence_DEFAULT NULL +#define tendermint_types_LightClientAttackEvidence_conflicting_block_MSGTYPE tendermint_types_LightBlock +#define tendermint_types_LightClientAttackEvidence_byzantine_validators_MSGTYPE tendermint_types_Validator +#define tendermint_types_LightClientAttackEvidence_timestamp_MSGTYPE google_protobuf_Timestamp + +#define tendermint_types_EvidenceList_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, MESSAGE, evidence, 1) +#define tendermint_types_EvidenceList_CALLBACK pb_default_field_callback +#define tendermint_types_EvidenceList_DEFAULT NULL +#define tendermint_types_EvidenceList_evidence_MSGTYPE tendermint_types_Evidence + +extern const pb_msgdesc_t tendermint_types_Evidence_msg; +extern const pb_msgdesc_t tendermint_types_DuplicateVoteEvidence_msg; +extern const pb_msgdesc_t tendermint_types_LightClientAttackEvidence_msg; +extern const pb_msgdesc_t tendermint_types_EvidenceList_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_types_Evidence_fields &tendermint_types_Evidence_msg +#define tendermint_types_DuplicateVoteEvidence_fields &tendermint_types_DuplicateVoteEvidence_msg +#define tendermint_types_LightClientAttackEvidence_fields &tendermint_types_LightClientAttackEvidence_msg +#define tendermint_types_EvidenceList_fields &tendermint_types_EvidenceList_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_types_Evidence_size depends on runtime parameters */ +/* tendermint_types_LightClientAttackEvidence_size depends on runtime parameters */ +/* tendermint_types_EvidenceList_size depends on runtime parameters */ +#if defined(tendermint_types_Vote_size) && defined(tendermint_types_Vote_size) +#define TENDERMINT_TYPES_TENDERMINT_TYPES_EVIDENCE_PB_H_MAX_SIZE tendermint_types_DuplicateVoteEvidence_size +#define tendermint_types_DuplicateVoteEvidence_size (58 + tendermint_types_Vote_size + tendermint_types_Vote_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/types/params.pb.c b/app/src/protobuf/tendermint/types/params.pb.c new file mode 100644 index 0000000..bccc84b --- /dev/null +++ b/app/src/protobuf/tendermint/types/params.pb.c @@ -0,0 +1,19 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/types/params.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_types_ConsensusParams, tendermint_types_ConsensusParams, AUTO) + +PB_BIND(tendermint_types_BlockParams, tendermint_types_BlockParams, AUTO) + +PB_BIND(tendermint_types_EvidenceParams, tendermint_types_EvidenceParams, AUTO) + +PB_BIND(tendermint_types_ValidatorParams, tendermint_types_ValidatorParams, AUTO) + +PB_BIND(tendermint_types_VersionParams, tendermint_types_VersionParams, AUTO) + +PB_BIND(tendermint_types_HashedParams, tendermint_types_HashedParams, AUTO) diff --git a/app/src/protobuf/tendermint/types/params.pb.h b/app/src/protobuf/tendermint/types/params.pb.h new file mode 100644 index 0000000..db3636b --- /dev/null +++ b/app/src/protobuf/tendermint/types/params.pb.h @@ -0,0 +1,203 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_TYPES_TENDERMINT_TYPES_PARAMS_PB_H_INCLUDED +#define PB_TENDERMINT_TYPES_TENDERMINT_TYPES_PARAMS_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/duration.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* BlockParams contains limits on the block size. */ +typedef struct _tendermint_types_BlockParams { + /* Max block size, in bytes. + Note: must be greater than 0 */ + int64_t max_bytes; + /* Max gas per block. + Note: must be greater or equal to -1 */ + int64_t max_gas; +} tendermint_types_BlockParams; + +/* EvidenceParams determine how we handle evidence of malfeasance. */ +typedef struct _tendermint_types_EvidenceParams { + /* Max age of evidence, in blocks. + + The basic formula for calculating this is: MaxAgeDuration / {average block + time}. */ + int64_t max_age_num_blocks; + /* Max age of evidence, in time. + + It should correspond with an app's "unbonding period" or other similar + mechanism for handling [Nothing-At-Stake + attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + */ + bool has_max_age_duration; + google_protobuf_Duration max_age_duration; + /* This sets the maximum size of total evidence in bytes that can be committed in a single block. + and should fall comfortably under the max block bytes. + Default is 1048576 or 1MB */ + int64_t max_bytes; +} tendermint_types_EvidenceParams; + +/* ValidatorParams restrict the public key types validators can use. + NOTE: uses ABCI pubkey naming, not Amino names. */ +typedef struct _tendermint_types_ValidatorParams { + pb_callback_t pub_key_types; +} tendermint_types_ValidatorParams; + +/* VersionParams contains the ABCI application version. */ +typedef struct _tendermint_types_VersionParams { + uint64_t app; +} tendermint_types_VersionParams; + +/* ConsensusParams contains consensus critical parameters that determine the + validity of blocks. */ +typedef struct _tendermint_types_ConsensusParams { + bool has_block; + tendermint_types_BlockParams block; + bool has_evidence; + tendermint_types_EvidenceParams evidence; + bool has_validator; + tendermint_types_ValidatorParams validator; + bool has_version; + tendermint_types_VersionParams version; +} tendermint_types_ConsensusParams; + +/* HashedParams is a subset of ConsensusParams. + + It is hashed into the Header.ConsensusHash. */ +typedef struct _tendermint_types_HashedParams { + int64_t block_max_bytes; + int64_t block_max_gas; +} tendermint_types_HashedParams; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_types_ConsensusParams_init_default \ + { \ + false, tendermint_types_BlockParams_init_default, false, tendermint_types_EvidenceParams_init_default, false, \ + tendermint_types_ValidatorParams_init_default, false, tendermint_types_VersionParams_init_default \ + } +#define tendermint_types_BlockParams_init_default \ + { 0, 0 } +#define tendermint_types_EvidenceParams_init_default \ + { 0, false, google_protobuf_Duration_init_default, 0 } +#define tendermint_types_ValidatorParams_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_types_VersionParams_init_default \ + { 0 } +#define tendermint_types_HashedParams_init_default \ + { 0, 0 } +#define tendermint_types_ConsensusParams_init_zero \ + { \ + false, tendermint_types_BlockParams_init_zero, false, tendermint_types_EvidenceParams_init_zero, false, \ + tendermint_types_ValidatorParams_init_zero, false, tendermint_types_VersionParams_init_zero \ + } +#define tendermint_types_BlockParams_init_zero \ + { 0, 0 } +#define tendermint_types_EvidenceParams_init_zero \ + { 0, false, google_protobuf_Duration_init_zero, 0 } +#define tendermint_types_ValidatorParams_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_types_VersionParams_init_zero \ + { 0 } +#define tendermint_types_HashedParams_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_types_BlockParams_max_bytes_tag 1 +#define tendermint_types_BlockParams_max_gas_tag 2 +#define tendermint_types_EvidenceParams_max_age_num_blocks_tag 1 +#define tendermint_types_EvidenceParams_max_age_duration_tag 2 +#define tendermint_types_EvidenceParams_max_bytes_tag 3 +#define tendermint_types_ValidatorParams_pub_key_types_tag 1 +#define tendermint_types_VersionParams_app_tag 1 +#define tendermint_types_ConsensusParams_block_tag 1 +#define tendermint_types_ConsensusParams_evidence_tag 2 +#define tendermint_types_ConsensusParams_validator_tag 3 +#define tendermint_types_ConsensusParams_version_tag 4 +#define tendermint_types_HashedParams_block_max_bytes_tag 1 +#define tendermint_types_HashedParams_block_max_gas_tag 2 + +/* Struct field encoding specification for nanopb */ +#define tendermint_types_ConsensusParams_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, block, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, evidence, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, version, 4) +#define tendermint_types_ConsensusParams_CALLBACK NULL +#define tendermint_types_ConsensusParams_DEFAULT NULL +#define tendermint_types_ConsensusParams_block_MSGTYPE tendermint_types_BlockParams +#define tendermint_types_ConsensusParams_evidence_MSGTYPE tendermint_types_EvidenceParams +#define tendermint_types_ConsensusParams_validator_MSGTYPE tendermint_types_ValidatorParams +#define tendermint_types_ConsensusParams_version_MSGTYPE tendermint_types_VersionParams + +#define tendermint_types_BlockParams_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, max_bytes, 1) \ + X(a, STATIC, SINGULAR, INT64, max_gas, 2) +#define tendermint_types_BlockParams_CALLBACK NULL +#define tendermint_types_BlockParams_DEFAULT NULL + +#define tendermint_types_EvidenceParams_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, max_age_num_blocks, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, max_age_duration, 2) \ + X(a, STATIC, SINGULAR, INT64, max_bytes, 3) +#define tendermint_types_EvidenceParams_CALLBACK NULL +#define tendermint_types_EvidenceParams_DEFAULT NULL +#define tendermint_types_EvidenceParams_max_age_duration_MSGTYPE google_protobuf_Duration + +#define tendermint_types_ValidatorParams_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, STRING, pub_key_types, 1) +#define tendermint_types_ValidatorParams_CALLBACK pb_default_field_callback +#define tendermint_types_ValidatorParams_DEFAULT NULL + +#define tendermint_types_VersionParams_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UINT64, app, 1) +#define tendermint_types_VersionParams_CALLBACK NULL +#define tendermint_types_VersionParams_DEFAULT NULL + +#define tendermint_types_HashedParams_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, block_max_bytes, 1) \ + X(a, STATIC, SINGULAR, INT64, block_max_gas, 2) +#define tendermint_types_HashedParams_CALLBACK NULL +#define tendermint_types_HashedParams_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_types_ConsensusParams_msg; +extern const pb_msgdesc_t tendermint_types_BlockParams_msg; +extern const pb_msgdesc_t tendermint_types_EvidenceParams_msg; +extern const pb_msgdesc_t tendermint_types_ValidatorParams_msg; +extern const pb_msgdesc_t tendermint_types_VersionParams_msg; +extern const pb_msgdesc_t tendermint_types_HashedParams_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_types_ConsensusParams_fields &tendermint_types_ConsensusParams_msg +#define tendermint_types_BlockParams_fields &tendermint_types_BlockParams_msg +#define tendermint_types_EvidenceParams_fields &tendermint_types_EvidenceParams_msg +#define tendermint_types_ValidatorParams_fields &tendermint_types_ValidatorParams_msg +#define tendermint_types_VersionParams_fields &tendermint_types_VersionParams_msg +#define tendermint_types_HashedParams_fields &tendermint_types_HashedParams_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_types_ConsensusParams_size depends on runtime parameters */ +/* tendermint_types_ValidatorParams_size depends on runtime parameters */ +#define TENDERMINT_TYPES_TENDERMINT_TYPES_PARAMS_PB_H_MAX_SIZE tendermint_types_EvidenceParams_size +#define tendermint_types_BlockParams_size 22 +#define tendermint_types_EvidenceParams_size 46 +#define tendermint_types_HashedParams_size 22 +#define tendermint_types_VersionParams_size 11 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/types/types.pb.c b/app/src/protobuf/tendermint/types/types.pb.c new file mode 100644 index 0000000..d2cfd5b --- /dev/null +++ b/app/src/protobuf/tendermint/types/types.pb.c @@ -0,0 +1,33 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/types/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_types_PartSetHeader, tendermint_types_PartSetHeader, AUTO) + +PB_BIND(tendermint_types_Part, tendermint_types_Part, AUTO) + +PB_BIND(tendermint_types_BlockID, tendermint_types_BlockID, AUTO) + +PB_BIND(tendermint_types_Header, tendermint_types_Header, 2) + +PB_BIND(tendermint_types_Data, tendermint_types_Data, AUTO) + +PB_BIND(tendermint_types_Vote, tendermint_types_Vote, AUTO) + +PB_BIND(tendermint_types_Commit, tendermint_types_Commit, AUTO) + +PB_BIND(tendermint_types_CommitSig, tendermint_types_CommitSig, AUTO) + +PB_BIND(tendermint_types_Proposal, tendermint_types_Proposal, AUTO) + +PB_BIND(tendermint_types_SignedHeader, tendermint_types_SignedHeader, 2) + +PB_BIND(tendermint_types_LightBlock, tendermint_types_LightBlock, 2) + +PB_BIND(tendermint_types_BlockMeta, tendermint_types_BlockMeta, 2) + +PB_BIND(tendermint_types_TxProof, tendermint_types_TxProof, AUTO) diff --git a/app/src/protobuf/tendermint/types/types.pb.h b/app/src/protobuf/tendermint/types/types.pb.h new file mode 100644 index 0000000..603b5b2 --- /dev/null +++ b/app/src/protobuf/tendermint/types/types.pb.h @@ -0,0 +1,524 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_TYPES_TENDERMINT_TYPES_TYPES_PB_H_INCLUDED +#define PB_TENDERMINT_TYPES_TENDERMINT_TYPES_TYPES_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "google/protobuf/timestamp.pb.h" +#include "tendermint/crypto/proof.pb.h" +#include "tendermint/types/validator.pb.h" +#include "tendermint/version/types.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Enum definitions */ +/* BlockIdFlag indicates which BlcokID the signature is for */ +typedef enum _tendermint_types_BlockIDFlag { + tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_UNKNOWN = 0, + tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_ABSENT = 1, + tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_COMMIT = 2, + tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_NIL = 3 +} tendermint_types_BlockIDFlag; + +/* SignedMsgType is a type of signed message in the consensus. */ +typedef enum _tendermint_types_SignedMsgType { + tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_UNKNOWN = 0, + /* Votes */ + tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_PREVOTE = 1, + tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_PRECOMMIT = 2, + /* Proposals */ + tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_PROPOSAL = 32 +} tendermint_types_SignedMsgType; + +/* Struct definitions */ +/* PartsetHeader */ +typedef struct _tendermint_types_PartSetHeader { + uint32_t total; + pb_callback_t hash; +} tendermint_types_PartSetHeader; + +typedef struct _tendermint_types_Part { + uint32_t index; + pb_callback_t bytes; + bool has_proof; + tendermint_crypto_Proof proof; +} tendermint_types_Part; + +/* BlockID */ +typedef struct _tendermint_types_BlockID { + pb_callback_t hash; + bool has_part_set_header; + tendermint_types_PartSetHeader part_set_header; +} tendermint_types_BlockID; + +/* Header defines the structure of a block header. */ +typedef struct _tendermint_types_Header { + /* basic block info */ + bool has_version; + tendermint_version_Consensus version; + pb_callback_t chain_id; + int64_t height; + bool has_time; + google_protobuf_Timestamp time; + /* prev block info */ + bool has_last_block_id; + tendermint_types_BlockID last_block_id; + /* hashes of block data */ + pb_callback_t last_commit_hash; /* commit from validators from the last block */ + pb_callback_t data_hash; /* transactions */ + /* hashes from the app output from the prev block */ + pb_callback_t validators_hash; /* validators for the current block */ + pb_callback_t next_validators_hash; /* validators for the next block */ + pb_callback_t consensus_hash; /* consensus params for current block */ + pb_callback_t app_hash; /* state after txs from the previous block */ + pb_callback_t last_results_hash; /* root hash of all results from the txs from the previous block */ + /* consensus info */ + pb_callback_t evidence_hash; /* evidence included in the block */ + pb_callback_t proposer_address; /* original proposer of the block */ +} tendermint_types_Header; + +/* Data contains the set of transactions included in the block */ +typedef struct _tendermint_types_Data { + /* Txs that will be applied by state @ block.Height+1. + NOTE: not all txs here are valid. We're just agreeing on the order first. + This means that block.AppHash does not include these txs. */ + pb_callback_t txs; +} tendermint_types_Data; + +/* Vote represents a prevote, precommit, or commit vote from validators for + consensus. */ +typedef struct _tendermint_types_Vote { + tendermint_types_SignedMsgType type; + int64_t height; + int32_t round; + bool has_block_id; + tendermint_types_BlockID block_id; /* zero if vote is nil. */ + bool has_timestamp; + google_protobuf_Timestamp timestamp; + pb_callback_t validator_address; + int32_t validator_index; + pb_callback_t signature; +} tendermint_types_Vote; + +/* Commit contains the evidence that a block was committed by a set of validators. */ +typedef struct _tendermint_types_Commit { + int64_t height; + int32_t round; + bool has_block_id; + tendermint_types_BlockID block_id; + pb_callback_t signatures; +} tendermint_types_Commit; + +/* CommitSig is a part of the Vote included in a Commit. */ +typedef struct _tendermint_types_CommitSig { + tendermint_types_BlockIDFlag block_id_flag; + pb_callback_t validator_address; + bool has_timestamp; + google_protobuf_Timestamp timestamp; + pb_callback_t signature; +} tendermint_types_CommitSig; + +typedef struct _tendermint_types_Proposal { + tendermint_types_SignedMsgType type; + int64_t height; + int32_t round; + int32_t pol_round; + bool has_block_id; + tendermint_types_BlockID block_id; + bool has_timestamp; + google_protobuf_Timestamp timestamp; + pb_callback_t signature; +} tendermint_types_Proposal; + +typedef struct _tendermint_types_SignedHeader { + bool has_header; + tendermint_types_Header header; + bool has_commit; + tendermint_types_Commit commit; +} tendermint_types_SignedHeader; + +typedef struct _tendermint_types_LightBlock { + bool has_signed_header; + tendermint_types_SignedHeader signed_header; + bool has_validator_set; + tendermint_types_ValidatorSet validator_set; +} tendermint_types_LightBlock; + +typedef struct _tendermint_types_BlockMeta { + bool has_block_id; + tendermint_types_BlockID block_id; + int64_t block_size; + bool has_header; + tendermint_types_Header header; + int64_t num_txs; +} tendermint_types_BlockMeta; + +/* TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. */ +typedef struct _tendermint_types_TxProof { + pb_callback_t root_hash; + pb_callback_t data; + bool has_proof; + tendermint_crypto_Proof proof; +} tendermint_types_TxProof; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Helper constants for enums */ +#define _tendermint_types_BlockIDFlag_MIN tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_UNKNOWN +#define _tendermint_types_BlockIDFlag_MAX tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_NIL +#define _tendermint_types_BlockIDFlag_ARRAYSIZE \ + ((tendermint_types_BlockIDFlag)(tendermint_types_BlockIDFlag_BLOCK_ID_FLAG_NIL + 1)) + +#define _tendermint_types_SignedMsgType_MIN tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_UNKNOWN +#define _tendermint_types_SignedMsgType_MAX tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_PROPOSAL +#define _tendermint_types_SignedMsgType_ARRAYSIZE \ + ((tendermint_types_SignedMsgType)(tendermint_types_SignedMsgType_SIGNED_MSG_TYPE_PROPOSAL + 1)) + +#define tendermint_types_Vote_type_ENUMTYPE tendermint_types_SignedMsgType + +#define tendermint_types_CommitSig_block_id_flag_ENUMTYPE tendermint_types_BlockIDFlag + +#define tendermint_types_Proposal_type_ENUMTYPE tendermint_types_SignedMsgType + +/* Initializer values for message structs */ +#define tendermint_types_PartSetHeader_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_types_Part_init_default \ + { 0, {{NULL}, NULL}, false, tendermint_crypto_Proof_init_default } +#define tendermint_types_BlockID_init_default \ + { {{NULL}, NULL}, false, tendermint_types_PartSetHeader_init_default } +#define tendermint_types_Header_init_default \ + { \ + false, tendermint_version_Consensus_init_default, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_default, \ + false, tendermint_types_BlockID_init_default, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_Data_init_default \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_types_Vote_init_default \ + { \ + _tendermint_types_SignedMsgType_MIN, 0, 0, false, tendermint_types_BlockID_init_default, false, \ + google_protobuf_Timestamp_init_default, {{NULL}, NULL}, 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_Commit_init_default \ + { \ + 0, 0, false, tendermint_types_BlockID_init_default, { {NULL}, NULL } \ + } +#define tendermint_types_CommitSig_init_default \ + { \ + _tendermint_types_BlockIDFlag_MIN, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, { {NULL}, NULL } \ + } +#define tendermint_types_Proposal_init_default \ + { \ + _tendermint_types_SignedMsgType_MIN, 0, 0, 0, false, tendermint_types_BlockID_init_default, false, \ + google_protobuf_Timestamp_init_default, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_SignedHeader_init_default \ + { false, tendermint_types_Header_init_default, false, tendermint_types_Commit_init_default } +#define tendermint_types_LightBlock_init_default \ + { false, tendermint_types_SignedHeader_init_default, false, tendermint_types_ValidatorSet_init_default } +#define tendermint_types_BlockMeta_init_default \ + { false, tendermint_types_BlockID_init_default, 0, false, tendermint_types_Header_init_default, 0 } +#define tendermint_types_TxProof_init_default \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_crypto_Proof_init_default } +#define tendermint_types_PartSetHeader_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_types_Part_init_zero \ + { 0, {{NULL}, NULL}, false, tendermint_crypto_Proof_init_zero } +#define tendermint_types_BlockID_init_zero \ + { {{NULL}, NULL}, false, tendermint_types_PartSetHeader_init_zero } +#define tendermint_types_Header_init_zero \ + { \ + false, tendermint_version_Consensus_init_zero, {{NULL}, NULL}, 0, false, google_protobuf_Timestamp_init_zero, \ + false, tendermint_types_BlockID_init_zero, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, \ + {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_Data_init_zero \ + { \ + { {NULL}, NULL } \ + } +#define tendermint_types_Vote_init_zero \ + { \ + _tendermint_types_SignedMsgType_MIN, 0, 0, false, tendermint_types_BlockID_init_zero, false, \ + google_protobuf_Timestamp_init_zero, {{NULL}, NULL}, 0, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_Commit_init_zero \ + { \ + 0, 0, false, tendermint_types_BlockID_init_zero, { {NULL}, NULL } \ + } +#define tendermint_types_CommitSig_init_zero \ + { \ + _tendermint_types_BlockIDFlag_MIN, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, { {NULL}, NULL } \ + } +#define tendermint_types_Proposal_init_zero \ + { \ + _tendermint_types_SignedMsgType_MIN, 0, 0, 0, false, tendermint_types_BlockID_init_zero, false, \ + google_protobuf_Timestamp_init_zero, { \ + {NULL}, NULL \ + } \ + } +#define tendermint_types_SignedHeader_init_zero \ + { false, tendermint_types_Header_init_zero, false, tendermint_types_Commit_init_zero } +#define tendermint_types_LightBlock_init_zero \ + { false, tendermint_types_SignedHeader_init_zero, false, tendermint_types_ValidatorSet_init_zero } +#define tendermint_types_BlockMeta_init_zero \ + { false, tendermint_types_BlockID_init_zero, 0, false, tendermint_types_Header_init_zero, 0 } +#define tendermint_types_TxProof_init_zero \ + { {{NULL}, NULL}, {{NULL}, NULL}, false, tendermint_crypto_Proof_init_zero } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_types_PartSetHeader_total_tag 1 +#define tendermint_types_PartSetHeader_hash_tag 2 +#define tendermint_types_Part_index_tag 1 +#define tendermint_types_Part_bytes_tag 2 +#define tendermint_types_Part_proof_tag 3 +#define tendermint_types_BlockID_hash_tag 1 +#define tendermint_types_BlockID_part_set_header_tag 2 +#define tendermint_types_Header_version_tag 1 +#define tendermint_types_Header_chain_id_tag 2 +#define tendermint_types_Header_height_tag 3 +#define tendermint_types_Header_time_tag 4 +#define tendermint_types_Header_last_block_id_tag 5 +#define tendermint_types_Header_last_commit_hash_tag 6 +#define tendermint_types_Header_data_hash_tag 7 +#define tendermint_types_Header_validators_hash_tag 8 +#define tendermint_types_Header_next_validators_hash_tag 9 +#define tendermint_types_Header_consensus_hash_tag 10 +#define tendermint_types_Header_app_hash_tag 11 +#define tendermint_types_Header_last_results_hash_tag 12 +#define tendermint_types_Header_evidence_hash_tag 13 +#define tendermint_types_Header_proposer_address_tag 14 +#define tendermint_types_Data_txs_tag 1 +#define tendermint_types_Vote_type_tag 1 +#define tendermint_types_Vote_height_tag 2 +#define tendermint_types_Vote_round_tag 3 +#define tendermint_types_Vote_block_id_tag 4 +#define tendermint_types_Vote_timestamp_tag 5 +#define tendermint_types_Vote_validator_address_tag 6 +#define tendermint_types_Vote_validator_index_tag 7 +#define tendermint_types_Vote_signature_tag 8 +#define tendermint_types_Commit_height_tag 1 +#define tendermint_types_Commit_round_tag 2 +#define tendermint_types_Commit_block_id_tag 3 +#define tendermint_types_Commit_signatures_tag 4 +#define tendermint_types_CommitSig_block_id_flag_tag 1 +#define tendermint_types_CommitSig_validator_address_tag 2 +#define tendermint_types_CommitSig_timestamp_tag 3 +#define tendermint_types_CommitSig_signature_tag 4 +#define tendermint_types_Proposal_type_tag 1 +#define tendermint_types_Proposal_height_tag 2 +#define tendermint_types_Proposal_round_tag 3 +#define tendermint_types_Proposal_pol_round_tag 4 +#define tendermint_types_Proposal_block_id_tag 5 +#define tendermint_types_Proposal_timestamp_tag 6 +#define tendermint_types_Proposal_signature_tag 7 +#define tendermint_types_SignedHeader_header_tag 1 +#define tendermint_types_SignedHeader_commit_tag 2 +#define tendermint_types_LightBlock_signed_header_tag 1 +#define tendermint_types_LightBlock_validator_set_tag 2 +#define tendermint_types_BlockMeta_block_id_tag 1 +#define tendermint_types_BlockMeta_block_size_tag 2 +#define tendermint_types_BlockMeta_header_tag 3 +#define tendermint_types_BlockMeta_num_txs_tag 4 +#define tendermint_types_TxProof_root_hash_tag 1 +#define tendermint_types_TxProof_data_tag 2 +#define tendermint_types_TxProof_proof_tag 3 + +/* Struct field encoding specification for nanopb */ +#define tendermint_types_PartSetHeader_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, total, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 2) +#define tendermint_types_PartSetHeader_CALLBACK pb_default_field_callback +#define tendermint_types_PartSetHeader_DEFAULT NULL + +#define tendermint_types_Part_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT32, index, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, bytes, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 3) +#define tendermint_types_Part_CALLBACK pb_default_field_callback +#define tendermint_types_Part_DEFAULT NULL +#define tendermint_types_Part_proof_MSGTYPE tendermint_crypto_Proof + +#define tendermint_types_BlockID_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, hash, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, part_set_header, 2) +#define tendermint_types_BlockID_CALLBACK pb_default_field_callback +#define tendermint_types_BlockID_DEFAULT NULL +#define tendermint_types_BlockID_part_set_header_MSGTYPE tendermint_types_PartSetHeader + +#define tendermint_types_Header_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, version, 1) \ + X(a, CALLBACK, SINGULAR, STRING, chain_id, 2) \ + X(a, STATIC, SINGULAR, INT64, height, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, time, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, last_block_id, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, last_commit_hash, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, data_hash, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, validators_hash, 8) \ + X(a, CALLBACK, SINGULAR, BYTES, next_validators_hash, 9) \ + X(a, CALLBACK, SINGULAR, BYTES, consensus_hash, 10) \ + X(a, CALLBACK, SINGULAR, BYTES, app_hash, 11) \ + X(a, CALLBACK, SINGULAR, BYTES, last_results_hash, 12) \ + X(a, CALLBACK, SINGULAR, BYTES, evidence_hash, 13) \ + X(a, CALLBACK, SINGULAR, BYTES, proposer_address, 14) +#define tendermint_types_Header_CALLBACK pb_default_field_callback +#define tendermint_types_Header_DEFAULT NULL +#define tendermint_types_Header_version_MSGTYPE tendermint_version_Consensus +#define tendermint_types_Header_time_MSGTYPE google_protobuf_Timestamp +#define tendermint_types_Header_last_block_id_MSGTYPE tendermint_types_BlockID + +#define tendermint_types_Data_FIELDLIST(X, a) X(a, CALLBACK, REPEATED, BYTES, txs, 1) +#define tendermint_types_Data_CALLBACK pb_default_field_callback +#define tendermint_types_Data_DEFAULT NULL + +#define tendermint_types_Vote_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, type, 1) \ + X(a, STATIC, SINGULAR, INT64, height, 2) \ + X(a, STATIC, SINGULAR, INT32, round, 3) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 5) \ + X(a, CALLBACK, SINGULAR, BYTES, validator_address, 6) \ + X(a, STATIC, SINGULAR, INT32, validator_index, 7) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 8) +#define tendermint_types_Vote_CALLBACK pb_default_field_callback +#define tendermint_types_Vote_DEFAULT NULL +#define tendermint_types_Vote_block_id_MSGTYPE tendermint_types_BlockID +#define tendermint_types_Vote_timestamp_MSGTYPE google_protobuf_Timestamp + +#define tendermint_types_Commit_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, INT64, height, 1) \ + X(a, STATIC, SINGULAR, INT32, round, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 3) \ + X(a, CALLBACK, REPEATED, MESSAGE, signatures, 4) +#define tendermint_types_Commit_CALLBACK pb_default_field_callback +#define tendermint_types_Commit_DEFAULT NULL +#define tendermint_types_Commit_block_id_MSGTYPE tendermint_types_BlockID +#define tendermint_types_Commit_signatures_MSGTYPE tendermint_types_CommitSig + +#define tendermint_types_CommitSig_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, block_id_flag, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, validator_address, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 3) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 4) +#define tendermint_types_CommitSig_CALLBACK pb_default_field_callback +#define tendermint_types_CommitSig_DEFAULT NULL +#define tendermint_types_CommitSig_timestamp_MSGTYPE google_protobuf_Timestamp + +#define tendermint_types_Proposal_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UENUM, type, 1) \ + X(a, STATIC, SINGULAR, INT64, height, 2) \ + X(a, STATIC, SINGULAR, INT32, round, 3) \ + X(a, STATIC, SINGULAR, INT32, pol_round, 4) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 5) \ + X(a, STATIC, OPTIONAL, MESSAGE, timestamp, 6) \ + X(a, CALLBACK, SINGULAR, BYTES, signature, 7) +#define tendermint_types_Proposal_CALLBACK pb_default_field_callback +#define tendermint_types_Proposal_DEFAULT NULL +#define tendermint_types_Proposal_block_id_MSGTYPE tendermint_types_BlockID +#define tendermint_types_Proposal_timestamp_MSGTYPE google_protobuf_Timestamp + +#define tendermint_types_SignedHeader_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, commit, 2) +#define tendermint_types_SignedHeader_CALLBACK NULL +#define tendermint_types_SignedHeader_DEFAULT NULL +#define tendermint_types_SignedHeader_header_MSGTYPE tendermint_types_Header +#define tendermint_types_SignedHeader_commit_MSGTYPE tendermint_types_Commit + +#define tendermint_types_LightBlock_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, signed_header, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, validator_set, 2) +#define tendermint_types_LightBlock_CALLBACK NULL +#define tendermint_types_LightBlock_DEFAULT NULL +#define tendermint_types_LightBlock_signed_header_MSGTYPE tendermint_types_SignedHeader +#define tendermint_types_LightBlock_validator_set_MSGTYPE tendermint_types_ValidatorSet + +#define tendermint_types_BlockMeta_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, block_id, 1) \ + X(a, STATIC, SINGULAR, INT64, block_size, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, header, 3) \ + X(a, STATIC, SINGULAR, INT64, num_txs, 4) +#define tendermint_types_BlockMeta_CALLBACK NULL +#define tendermint_types_BlockMeta_DEFAULT NULL +#define tendermint_types_BlockMeta_block_id_MSGTYPE tendermint_types_BlockID +#define tendermint_types_BlockMeta_header_MSGTYPE tendermint_types_Header + +#define tendermint_types_TxProof_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, root_hash, 1) \ + X(a, CALLBACK, SINGULAR, BYTES, data, 2) \ + X(a, STATIC, OPTIONAL, MESSAGE, proof, 3) +#define tendermint_types_TxProof_CALLBACK pb_default_field_callback +#define tendermint_types_TxProof_DEFAULT NULL +#define tendermint_types_TxProof_proof_MSGTYPE tendermint_crypto_Proof + +extern const pb_msgdesc_t tendermint_types_PartSetHeader_msg; +extern const pb_msgdesc_t tendermint_types_Part_msg; +extern const pb_msgdesc_t tendermint_types_BlockID_msg; +extern const pb_msgdesc_t tendermint_types_Header_msg; +extern const pb_msgdesc_t tendermint_types_Data_msg; +extern const pb_msgdesc_t tendermint_types_Vote_msg; +extern const pb_msgdesc_t tendermint_types_Commit_msg; +extern const pb_msgdesc_t tendermint_types_CommitSig_msg; +extern const pb_msgdesc_t tendermint_types_Proposal_msg; +extern const pb_msgdesc_t tendermint_types_SignedHeader_msg; +extern const pb_msgdesc_t tendermint_types_LightBlock_msg; +extern const pb_msgdesc_t tendermint_types_BlockMeta_msg; +extern const pb_msgdesc_t tendermint_types_TxProof_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_types_PartSetHeader_fields &tendermint_types_PartSetHeader_msg +#define tendermint_types_Part_fields &tendermint_types_Part_msg +#define tendermint_types_BlockID_fields &tendermint_types_BlockID_msg +#define tendermint_types_Header_fields &tendermint_types_Header_msg +#define tendermint_types_Data_fields &tendermint_types_Data_msg +#define tendermint_types_Vote_fields &tendermint_types_Vote_msg +#define tendermint_types_Commit_fields &tendermint_types_Commit_msg +#define tendermint_types_CommitSig_fields &tendermint_types_CommitSig_msg +#define tendermint_types_Proposal_fields &tendermint_types_Proposal_msg +#define tendermint_types_SignedHeader_fields &tendermint_types_SignedHeader_msg +#define tendermint_types_LightBlock_fields &tendermint_types_LightBlock_msg +#define tendermint_types_BlockMeta_fields &tendermint_types_BlockMeta_msg +#define tendermint_types_TxProof_fields &tendermint_types_TxProof_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_types_PartSetHeader_size depends on runtime parameters */ +/* tendermint_types_Part_size depends on runtime parameters */ +/* tendermint_types_BlockID_size depends on runtime parameters */ +/* tendermint_types_Header_size depends on runtime parameters */ +/* tendermint_types_Data_size depends on runtime parameters */ +/* tendermint_types_Vote_size depends on runtime parameters */ +/* tendermint_types_Commit_size depends on runtime parameters */ +/* tendermint_types_CommitSig_size depends on runtime parameters */ +/* tendermint_types_Proposal_size depends on runtime parameters */ +/* tendermint_types_SignedHeader_size depends on runtime parameters */ +/* tendermint_types_LightBlock_size depends on runtime parameters */ +/* tendermint_types_BlockMeta_size depends on runtime parameters */ +/* tendermint_types_TxProof_size depends on runtime parameters */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/types/validator.pb.c b/app/src/protobuf/tendermint/types/validator.pb.c new file mode 100644 index 0000000..fbe7911 --- /dev/null +++ b/app/src/protobuf/tendermint/types/validator.pb.c @@ -0,0 +1,13 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/types/validator.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_types_ValidatorSet, tendermint_types_ValidatorSet, AUTO) + +PB_BIND(tendermint_types_Validator, tendermint_types_Validator, AUTO) + +PB_BIND(tendermint_types_SimpleValidator, tendermint_types_SimpleValidator, AUTO) diff --git a/app/src/protobuf/tendermint/types/validator.pb.h b/app/src/protobuf/tendermint/types/validator.pb.h new file mode 100644 index 0000000..1d21d2f --- /dev/null +++ b/app/src/protobuf/tendermint/types/validator.pb.h @@ -0,0 +1,113 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_TYPES_TENDERMINT_TYPES_VALIDATOR_PB_H_INCLUDED +#define PB_TENDERMINT_TYPES_TENDERMINT_TYPES_VALIDATOR_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" +#include "tendermint/crypto/keys.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +typedef struct _tendermint_types_Validator { + pb_callback_t address; + bool has_pub_key; + tendermint_crypto_PublicKey pub_key; + int64_t voting_power; + int64_t proposer_priority; +} tendermint_types_Validator; + +typedef struct _tendermint_types_ValidatorSet { + pb_callback_t validators; + bool has_proposer; + tendermint_types_Validator proposer; + int64_t total_voting_power; +} tendermint_types_ValidatorSet; + +typedef struct _tendermint_types_SimpleValidator { + bool has_pub_key; + tendermint_crypto_PublicKey pub_key; + int64_t voting_power; +} tendermint_types_SimpleValidator; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_types_ValidatorSet_init_default \ + { {{NULL}, NULL}, false, tendermint_types_Validator_init_default, 0 } +#define tendermint_types_Validator_init_default \ + { {{NULL}, NULL}, false, tendermint_crypto_PublicKey_init_default, 0, 0 } +#define tendermint_types_SimpleValidator_init_default \ + { false, tendermint_crypto_PublicKey_init_default, 0 } +#define tendermint_types_ValidatorSet_init_zero \ + { {{NULL}, NULL}, false, tendermint_types_Validator_init_zero, 0 } +#define tendermint_types_Validator_init_zero \ + { {{NULL}, NULL}, false, tendermint_crypto_PublicKey_init_zero, 0, 0 } +#define tendermint_types_SimpleValidator_init_zero \ + { false, tendermint_crypto_PublicKey_init_zero, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_types_Validator_address_tag 1 +#define tendermint_types_Validator_pub_key_tag 2 +#define tendermint_types_Validator_voting_power_tag 3 +#define tendermint_types_Validator_proposer_priority_tag 4 +#define tendermint_types_ValidatorSet_validators_tag 1 +#define tendermint_types_ValidatorSet_proposer_tag 2 +#define tendermint_types_ValidatorSet_total_voting_power_tag 3 +#define tendermint_types_SimpleValidator_pub_key_tag 1 +#define tendermint_types_SimpleValidator_voting_power_tag 2 + +/* Struct field encoding specification for nanopb */ +#define tendermint_types_ValidatorSet_FIELDLIST(X, a) \ + X(a, CALLBACK, REPEATED, MESSAGE, validators, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, proposer, 2) \ + X(a, STATIC, SINGULAR, INT64, total_voting_power, 3) +#define tendermint_types_ValidatorSet_CALLBACK pb_default_field_callback +#define tendermint_types_ValidatorSet_DEFAULT NULL +#define tendermint_types_ValidatorSet_validators_MSGTYPE tendermint_types_Validator +#define tendermint_types_ValidatorSet_proposer_MSGTYPE tendermint_types_Validator + +#define tendermint_types_Validator_FIELDLIST(X, a) \ + X(a, CALLBACK, SINGULAR, BYTES, address, 1) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 2) \ + X(a, STATIC, SINGULAR, INT64, voting_power, 3) \ + X(a, STATIC, SINGULAR, INT64, proposer_priority, 4) +#define tendermint_types_Validator_CALLBACK pb_default_field_callback +#define tendermint_types_Validator_DEFAULT NULL +#define tendermint_types_Validator_pub_key_MSGTYPE tendermint_crypto_PublicKey + +#define tendermint_types_SimpleValidator_FIELDLIST(X, a) \ + X(a, STATIC, OPTIONAL, MESSAGE, pub_key, 1) \ + X(a, STATIC, SINGULAR, INT64, voting_power, 2) +#define tendermint_types_SimpleValidator_CALLBACK NULL +#define tendermint_types_SimpleValidator_DEFAULT NULL +#define tendermint_types_SimpleValidator_pub_key_MSGTYPE tendermint_crypto_PublicKey + +extern const pb_msgdesc_t tendermint_types_ValidatorSet_msg; +extern const pb_msgdesc_t tendermint_types_Validator_msg; +extern const pb_msgdesc_t tendermint_types_SimpleValidator_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_types_ValidatorSet_fields &tendermint_types_ValidatorSet_msg +#define tendermint_types_Validator_fields &tendermint_types_Validator_msg +#define tendermint_types_SimpleValidator_fields &tendermint_types_SimpleValidator_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_types_ValidatorSet_size depends on runtime parameters */ +/* tendermint_types_Validator_size depends on runtime parameters */ +#if defined(tendermint_crypto_PublicKey_size) +#define TENDERMINT_TYPES_TENDERMINT_TYPES_VALIDATOR_PB_H_MAX_SIZE tendermint_types_SimpleValidator_size +#define tendermint_types_SimpleValidator_size (17 + tendermint_crypto_PublicKey_size) +#endif + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/protobuf/tendermint/version/types.pb.c b/app/src/protobuf/tendermint/version/types.pb.c new file mode 100644 index 0000000..50c604d --- /dev/null +++ b/app/src/protobuf/tendermint/version/types.pb.c @@ -0,0 +1,11 @@ +/* Automatically generated nanopb constant definitions */ +/* Generated by nanopb-1.0.0-dev */ + +#include "tendermint/version/types.pb.h" +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +PB_BIND(tendermint_version_App, tendermint_version_App, AUTO) + +PB_BIND(tendermint_version_Consensus, tendermint_version_Consensus, AUTO) diff --git a/app/src/protobuf/tendermint/version/types.pb.h b/app/src/protobuf/tendermint/version/types.pb.h new file mode 100644 index 0000000..276fc82 --- /dev/null +++ b/app/src/protobuf/tendermint/version/types.pb.h @@ -0,0 +1,84 @@ +/* Automatically generated nanopb header */ +/* Generated by nanopb-1.0.0-dev */ + +#ifndef PB_TENDERMINT_VERSION_TENDERMINT_VERSION_TYPES_PB_H_INCLUDED +#define PB_TENDERMINT_VERSION_TENDERMINT_VERSION_TYPES_PB_H_INCLUDED +#include + +#include "gogoproto/gogo.pb.h" + +#if PB_PROTO_HEADER_VERSION != 40 +#error Regenerate this file with the current version of nanopb generator. +#endif + +/* Struct definitions */ +/* App includes the protocol and software version for the application. + This information is included in ResponseInfo. The App.Protocol can be + updated in ResponseEndBlock. */ +typedef struct _tendermint_version_App { + uint64_t protocol; + pb_callback_t software; +} tendermint_version_App; + +/* Consensus captures the consensus rules for processing a block in the blockchain, + including all blockchain data structures and the rules of the application's + state transition machine. */ +typedef struct _tendermint_version_Consensus { + uint64_t block; + uint64_t app; +} tendermint_version_Consensus; + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializer values for message structs */ +#define tendermint_version_App_init_default \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_version_Consensus_init_default \ + { 0, 0 } +#define tendermint_version_App_init_zero \ + { \ + 0, { {NULL}, NULL } \ + } +#define tendermint_version_Consensus_init_zero \ + { 0, 0 } + +/* Field tags (for use in manual encoding/decoding) */ +#define tendermint_version_App_protocol_tag 1 +#define tendermint_version_App_software_tag 2 +#define tendermint_version_Consensus_block_tag 1 +#define tendermint_version_Consensus_app_tag 2 + +/* Struct field encoding specification for nanopb */ +#define tendermint_version_App_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, protocol, 1) \ + X(a, CALLBACK, SINGULAR, STRING, software, 2) +#define tendermint_version_App_CALLBACK pb_default_field_callback +#define tendermint_version_App_DEFAULT NULL + +#define tendermint_version_Consensus_FIELDLIST(X, a) \ + X(a, STATIC, SINGULAR, UINT64, block, 1) \ + X(a, STATIC, SINGULAR, UINT64, app, 2) +#define tendermint_version_Consensus_CALLBACK NULL +#define tendermint_version_Consensus_DEFAULT NULL + +extern const pb_msgdesc_t tendermint_version_App_msg; +extern const pb_msgdesc_t tendermint_version_Consensus_msg; + +/* Defines for backwards compatibility with code written before nanopb-0.4.0 */ +#define tendermint_version_App_fields &tendermint_version_App_msg +#define tendermint_version_Consensus_fields &tendermint_version_Consensus_msg + +/* Maximum encoded size of messages (where known) */ +/* tendermint_version_App_size depends on runtime parameters */ +#define TENDERMINT_VERSION_TENDERMINT_VERSION_TYPES_PB_H_MAX_SIZE tendermint_version_Consensus_size +#define tendermint_version_Consensus_size 22 + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif diff --git a/app/src/spend_plan.c b/app/src/spend_plan.c new file mode 100644 index 0000000..8bc78b7 --- /dev/null +++ b/app/src/spend_plan.c @@ -0,0 +1,59 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +#include "parser_impl.h" +#include "parser_interface.h" +#include "pb_common.h" +#include "pb_decode.h" +#include "protobuf/penumbra/core/transaction/v1/transaction.pb.h" + +#include "parser_interface.h" +#include "zxformat.h" +#include "parser_pb_utils.h" + +parser_error_t decode_spend_plan(const Bytes_t *data, spend_plan_t *output) { + penumbra_core_component_shielded_pool_v1_SpendPlan spend_plan = penumbra_core_component_shielded_pool_v1_SpendPlan_init_default; + + pb_istream_t spend_stream = pb_istream_from_buffer(data->ptr, data->len); + CHECK_APP_CANARY() + + + // Set up fixed size fields + fixed_size_field_t randomizer_arg, value_blinding_arg, proof_blinding_r_arg, proof_blinding_s_arg; + + setup_decode_fixed_field(&spend_plan.randomizer, &randomizer_arg, &output->randomizer, 32, true); + setup_decode_fixed_field(&spend_plan.value_blinding, &value_blinding_arg, &output->value_blinding, 32, true); + setup_decode_fixed_field(&spend_plan.proof_blinding_r, &proof_blinding_r_arg, &output->proof_blinding_r, 32, true); + setup_decode_fixed_field(&spend_plan.proof_blinding_s, &proof_blinding_s_arg, &output->proof_blinding_s, 32, true); + setup_decode_fixed_field(&spend_plan.proof_blinding_s, &proof_blinding_s_arg, &output->proof_blinding_s, 32, true); + + // asset_id in Note + fixed_size_field_t asset_id_arg; + setup_decode_fixed_field(&spend_plan.note.value.asset_id.inner, &asset_id_arg, &output->note.value.asset_id.inner, ASSET_ID_LEN, true); + // rseed in Note + fixed_size_field_t rseed_arg; + setup_decode_fixed_field(&spend_plan.note.rseed, &rseed_arg, &output->note.rseed, RSEED_LEN, true); + + if (!pb_decode(&spend_stream, penumbra_core_component_shielded_pool_v1_SpendPlan_fields, &spend_plan)) { + return parser_spend_plan_error; + } + + output->note.value.amount.lo = spend_plan.note.value.amount.lo; + output->note.value.amount.hi = spend_plan.note.value.amount.hi; + output->position = spend_plan.position; + + return parser_ok; +} diff --git a/app/src/spend_plan.h b/app/src/spend_plan.h new file mode 100644 index 0000000..18b500c --- /dev/null +++ b/app/src/spend_plan.h @@ -0,0 +1,42 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#include +#include + +#include "parser_common.h" +#include "parser_txdef.h" +#include "zxtypes.h" + +#include "pb_common.h" +#include "pb_decode.h" +#include "protobuf/penumbra/core/transaction/v1/transaction.pb.h" + +parser_error_t decode_spend_plan(const Bytes_t *input, spend_plan_t *spend_plan); + + +#ifdef __cplusplus +} +#endif + diff --git a/app/stax_icon.gif b/app/stax_icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..db6e52dbceb9b9afcf0b1ee641a0e417a64ba6f1 GIT binary patch literal 167 zcmZ?wbhEHbRA5kG_`m=H|NsA2{K*1lD*os8%uP&B^-WCAOwQ&@Pt46tv^CH(F$F;e z9grH3J_e?Qp8l1m-|{b>v*p(5hI<*!|7_>6O={Pi87H~yVO7yYt-~U{+dpedXM8yQ zq0VLQVYVxZ{d-lon{?Qu15+n+R#~}*y`3`ivt;>0-7TEIgD!40G*jEF_ejU|S>O5B M-~a4e$iQF?0Nrpw?f?J) literal 0 HcmV?d00001 diff --git a/cmake/Hunter/config.cmake b/cmake/Hunter/config.cmake new file mode 100644 index 0000000..13447cb --- /dev/null +++ b/cmake/Hunter/config.cmake @@ -0,0 +1,3 @@ +hunter_config(jsoncpp VERSION 1.9.5-b1) +hunter_config(fmt VERSION 10.1.1) +hunter_config(GTest VERSION 1.14.0) diff --git a/cmake/HunterGate.cmake b/cmake/HunterGate.cmake new file mode 100644 index 0000000..17c6d38 --- /dev/null +++ b/cmake/HunterGate.cmake @@ -0,0 +1,543 @@ +# Copyright (c) 2013-2019, Ruslan Baratov +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This is a gate file to Hunter package manager. +# Include this file using `include` command and add package you need, example: +# +# cmake_minimum_required(VERSION 3.5) +# +# include("cmake/HunterGate.cmake") +# HunterGate( +# URL "https://github.com/path/to/hunter/archive.tar.gz" +# SHA1 "798501e983f14b28b10cda16afa4de69eee1da1d" +# ) +# +# project(MyProject) +# +# hunter_add_package(Foo) +# hunter_add_package(Boo COMPONENTS Bar Baz) +# +# Projects: +# * https://github.com/cpp-pm/gate/ +# * https://github.com/cpp-pm/hunter + +option(HUNTER_ENABLED "Enable Hunter package manager support" ON) + +if(HUNTER_ENABLED) + if(CMAKE_VERSION VERSION_LESS "3.5") + message( + FATAL_ERROR + "At least CMake version 3.5 required for Hunter dependency management." + " Update CMake or set HUNTER_ENABLED to OFF." + ) + endif() +endif() + +include(CMakeParseArguments) # cmake_parse_arguments + +option(HUNTER_STATUS_PRINT "Print working status" ON) +option(HUNTER_STATUS_DEBUG "Print a lot info" OFF) +option(HUNTER_TLS_VERIFY "Enable/disable TLS certificate checking on downloads" ON) +set(HUNTER_ROOT "" CACHE FILEPATH "Override the HUNTER_ROOT.") + +set(HUNTER_ERROR_PAGE "https://hunter.readthedocs.io/en/latest/reference/errors") + +function(hunter_gate_status_print) + if(HUNTER_STATUS_PRINT OR HUNTER_STATUS_DEBUG) + foreach(print_message ${ARGV}) + message(STATUS "[hunter] ${print_message}") + endforeach() + endif() +endfunction() + +function(hunter_gate_status_debug) + if(HUNTER_STATUS_DEBUG) + foreach(print_message ${ARGV}) + string(TIMESTAMP timestamp) + message(STATUS "[hunter *** DEBUG *** ${timestamp}] ${print_message}") + endforeach() + endif() +endfunction() + +function(hunter_gate_error_page error_page) + message("------------------------------ ERROR ------------------------------") + message(" ${HUNTER_ERROR_PAGE}/${error_page}.html") + message("-------------------------------------------------------------------") + message("") + message(FATAL_ERROR "") +endfunction() + +function(hunter_gate_internal_error) + message("") + foreach(print_message ${ARGV}) + message("[hunter ** INTERNAL **] ${print_message}") + endforeach() + message("[hunter ** INTERNAL **] [Directory:${CMAKE_CURRENT_LIST_DIR}]") + message("") + hunter_gate_error_page("error.internal") +endfunction() + +function(hunter_gate_fatal_error) + cmake_parse_arguments(hunter "" "ERROR_PAGE" "" "${ARGV}") + if("${hunter_ERROR_PAGE}" STREQUAL "") + hunter_gate_internal_error("Expected ERROR_PAGE") + endif() + message("") + foreach(x ${hunter_UNPARSED_ARGUMENTS}) + message("[hunter ** FATAL ERROR **] ${x}") + endforeach() + message("[hunter ** FATAL ERROR **] [Directory:${CMAKE_CURRENT_LIST_DIR}]") + message("") + hunter_gate_error_page("${hunter_ERROR_PAGE}") +endfunction() + +function(hunter_gate_user_error) + hunter_gate_fatal_error(${ARGV} ERROR_PAGE "error.incorrect.input.data") +endfunction() + +function(hunter_gate_self root version sha1 result) + string(COMPARE EQUAL "${root}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("root is empty") + endif() + + string(COMPARE EQUAL "${version}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("version is empty") + endif() + + string(COMPARE EQUAL "${sha1}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("sha1 is empty") + endif() + + string(SUBSTRING "${sha1}" 0 7 archive_id) + + if(EXISTS "${root}/cmake/Hunter") + set(hunter_self "${root}") + else() + set( + hunter_self + "${root}/_Base/Download/Hunter/${version}/${archive_id}/Unpacked" + ) + endif() + + set("${result}" "${hunter_self}" PARENT_SCOPE) +endfunction() + +# Set HUNTER_GATE_ROOT cmake variable to suitable value. +function(hunter_gate_detect_root) + # Check CMake variable + if(HUNTER_ROOT) + set(HUNTER_GATE_ROOT "${HUNTER_ROOT}" PARENT_SCOPE) + hunter_gate_status_debug("HUNTER_ROOT detected by cmake variable") + return() + endif() + + # Check environment variable + if(DEFINED ENV{HUNTER_ROOT}) + set(HUNTER_GATE_ROOT "$ENV{HUNTER_ROOT}" PARENT_SCOPE) + hunter_gate_status_debug("HUNTER_ROOT detected by environment variable") + return() + endif() + + # Check HOME environment variable + if(DEFINED ENV{HOME}) + set(HUNTER_GATE_ROOT "$ENV{HOME}/.hunter" PARENT_SCOPE) + hunter_gate_status_debug("HUNTER_ROOT set using HOME environment variable") + return() + endif() + + # Check SYSTEMDRIVE and USERPROFILE environment variable (windows only) + if(WIN32) + if(DEFINED ENV{SYSTEMDRIVE}) + set(HUNTER_GATE_ROOT "$ENV{SYSTEMDRIVE}/.hunter" PARENT_SCOPE) + hunter_gate_status_debug( + "HUNTER_ROOT set using SYSTEMDRIVE environment variable" + ) + return() + endif() + + if(DEFINED ENV{USERPROFILE}) + set(HUNTER_GATE_ROOT "$ENV{USERPROFILE}/.hunter" PARENT_SCOPE) + hunter_gate_status_debug( + "HUNTER_ROOT set using USERPROFILE environment variable" + ) + return() + endif() + endif() + + hunter_gate_fatal_error( + "Can't detect HUNTER_ROOT" + ERROR_PAGE "error.detect.hunter.root" + ) +endfunction() + +function(hunter_gate_download dir) + string( + COMPARE + NOTEQUAL + "$ENV{HUNTER_DISABLE_AUTOINSTALL}" + "" + disable_autoinstall + ) + if(disable_autoinstall AND NOT HUNTER_RUN_INSTALL) + hunter_gate_fatal_error( + "Hunter not found in '${dir}'" + "Set HUNTER_RUN_INSTALL=ON to auto-install it from '${HUNTER_GATE_URL}'" + "Settings:" + " HUNTER_ROOT: ${HUNTER_GATE_ROOT}" + " HUNTER_SHA1: ${HUNTER_GATE_SHA1}" + ERROR_PAGE "error.run.install" + ) + endif() + string(COMPARE EQUAL "${dir}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("Empty 'dir' argument") + endif() + + string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("HUNTER_GATE_SHA1 empty") + endif() + + string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" is_bad) + if(is_bad) + hunter_gate_internal_error("HUNTER_GATE_URL empty") + endif() + + set(done_location "${dir}/DONE") + set(sha1_location "${dir}/SHA1") + + set(build_dir "${dir}/Build") + set(cmakelists "${dir}/CMakeLists.txt") + + hunter_gate_status_debug("Locking directory: ${dir}") + file(LOCK "${dir}" DIRECTORY GUARD FUNCTION) + hunter_gate_status_debug("Lock done") + + if(EXISTS "${done_location}") + # while waiting for lock other instance can do all the job + hunter_gate_status_debug("File '${done_location}' found, skip install") + return() + endif() + + file(REMOVE_RECURSE "${build_dir}") + file(REMOVE_RECURSE "${cmakelists}") + + file(MAKE_DIRECTORY "${build_dir}") # check directory permissions + + # Disabling languages speeds up a little bit, reduces noise in the output + # and avoids path too long windows error + file( + WRITE + "${cmakelists}" + "cmake_minimum_required(VERSION 3.5)\n" + "if(POLICY CMP0114)\n" + " cmake_policy(SET CMP0114 NEW)\n" + "endif()\n" + "if(POLICY CMP0135)\n" + " cmake_policy(SET CMP0135 NEW)\n" + "endif()\n" + "project(HunterDownload LANGUAGES NONE)\n" + "include(ExternalProject)\n" + "ExternalProject_Add(\n" + " Hunter\n" + " URL\n" + " \"${HUNTER_GATE_URL}\"\n" + " URL_HASH\n" + " SHA1=${HUNTER_GATE_SHA1}\n" + " DOWNLOAD_DIR\n" + " \"${dir}\"\n" + " TLS_VERIFY\n" + " ${HUNTER_TLS_VERIFY}\n" + " SOURCE_DIR\n" + " \"${dir}/Unpacked\"\n" + " CONFIGURE_COMMAND\n" + " \"\"\n" + " BUILD_COMMAND\n" + " \"\"\n" + " INSTALL_COMMAND\n" + " \"\"\n" + ")\n" + ) + + if(HUNTER_STATUS_DEBUG) + set(logging_params "") + else() + set(logging_params OUTPUT_QUIET) + endif() + + hunter_gate_status_debug("Run generate") + + # Need to add toolchain file too. + # Otherwise on Visual Studio + MDD this will fail with error: + # "Could not find an appropriate version of the Windows 10 SDK installed on this machine" + if(EXISTS "${CMAKE_TOOLCHAIN_FILE}") + get_filename_component(absolute_CMAKE_TOOLCHAIN_FILE "${CMAKE_TOOLCHAIN_FILE}" ABSOLUTE) + set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=${absolute_CMAKE_TOOLCHAIN_FILE}") + else() + # 'toolchain_arg' can't be empty + set(toolchain_arg "-DCMAKE_TOOLCHAIN_FILE=") + endif() + + string(COMPARE EQUAL "${CMAKE_MAKE_PROGRAM}" "" no_make) + if(no_make) + set(make_arg "") + else() + # Test case: remove Ninja from PATH but set it via CMAKE_MAKE_PROGRAM + set(make_arg "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}") + endif() + + execute_process( + COMMAND + "${CMAKE_COMMAND}" + "-H${dir}" + "-B${build_dir}" + "-G${CMAKE_GENERATOR}" + "${toolchain_arg}" + ${make_arg} + WORKING_DIRECTORY "${dir}" + RESULT_VARIABLE download_result + ${logging_params} + ) + + if(NOT download_result EQUAL 0) + hunter_gate_internal_error( + "Configure project failed." + "To reproduce the error run: ${CMAKE_COMMAND} -H${dir} -B${build_dir} -G${CMAKE_GENERATOR} ${toolchain_arg} ${make_arg}" + "In directory ${dir}" + ) + endif() + + hunter_gate_status_print( + "Initializing Hunter workspace (${HUNTER_GATE_SHA1})" + " ${HUNTER_GATE_URL}" + " -> ${dir}" + ) + execute_process( + COMMAND "${CMAKE_COMMAND}" --build "${build_dir}" + WORKING_DIRECTORY "${dir}" + RESULT_VARIABLE download_result + ${logging_params} + ) + + if(NOT download_result EQUAL 0) + hunter_gate_internal_error("Build project failed") + endif() + + file(REMOVE_RECURSE "${build_dir}") + file(REMOVE_RECURSE "${cmakelists}") + + file(WRITE "${sha1_location}" "${HUNTER_GATE_SHA1}") + file(WRITE "${done_location}" "DONE") + + hunter_gate_status_debug("Finished") +endfunction() + +# Must be a macro so master file 'cmake/Hunter' can +# apply all variables easily just by 'include' command +# (otherwise PARENT_SCOPE magic needed) +macro(HunterGate) + if(HUNTER_GATE_DONE) + # variable HUNTER_GATE_DONE set explicitly for external project + # (see `hunter_download`) + set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES) + endif() + + # First HunterGate command will init Hunter, others will be ignored + get_property(_hunter_gate_done GLOBAL PROPERTY HUNTER_GATE_DONE SET) + + if(NOT HUNTER_ENABLED) + # Empty function to avoid error "unknown function" + function(hunter_add_package) + endfunction() + + set( + _hunter_gate_disabled_mode_dir + "${CMAKE_CURRENT_LIST_DIR}/cmake/Hunter/disabled-mode" + ) + if(EXISTS "${_hunter_gate_disabled_mode_dir}") + hunter_gate_status_debug( + "Adding \"disabled-mode\" modules: ${_hunter_gate_disabled_mode_dir}" + ) + list(APPEND CMAKE_PREFIX_PATH "${_hunter_gate_disabled_mode_dir}") + endif() + elseif(_hunter_gate_done) + hunter_gate_status_debug("Secondary HunterGate (use old settings)") + hunter_gate_self( + "${HUNTER_CACHED_ROOT}" + "${HUNTER_VERSION}" + "${HUNTER_SHA1}" + _hunter_self + ) + include("${_hunter_self}/cmake/Hunter") + else() + set(HUNTER_GATE_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}") + + string(COMPARE NOTEQUAL "${PROJECT_NAME}" "" _have_project_name) + if(_have_project_name) + hunter_gate_fatal_error( + "Please set HunterGate *before* 'project' command. " + "Detected project: ${PROJECT_NAME}" + ERROR_PAGE "error.huntergate.before.project" + ) + endif() + + cmake_parse_arguments( + HUNTER_GATE "LOCAL" "URL;SHA1;GLOBAL;FILEPATH" "" ${ARGV} + ) + + string(COMPARE EQUAL "${HUNTER_GATE_SHA1}" "" _empty_sha1) + string(COMPARE EQUAL "${HUNTER_GATE_URL}" "" _empty_url) + string( + COMPARE + NOTEQUAL + "${HUNTER_GATE_UNPARSED_ARGUMENTS}" + "" + _have_unparsed + ) + string(COMPARE NOTEQUAL "${HUNTER_GATE_GLOBAL}" "" _have_global) + string(COMPARE NOTEQUAL "${HUNTER_GATE_FILEPATH}" "" _have_filepath) + + if(_have_unparsed) + hunter_gate_user_error( + "HunterGate unparsed arguments: ${HUNTER_GATE_UNPARSED_ARGUMENTS}" + ) + endif() + if(_empty_sha1) + hunter_gate_user_error("SHA1 suboption of HunterGate is mandatory") + endif() + if(_empty_url) + hunter_gate_user_error("URL suboption of HunterGate is mandatory") + endif() + if(_have_global) + if(HUNTER_GATE_LOCAL) + hunter_gate_user_error("Unexpected LOCAL (already has GLOBAL)") + endif() + if(_have_filepath) + hunter_gate_user_error("Unexpected FILEPATH (already has GLOBAL)") + endif() + endif() + if(HUNTER_GATE_LOCAL) + if(_have_global) + hunter_gate_user_error("Unexpected GLOBAL (already has LOCAL)") + endif() + if(_have_filepath) + hunter_gate_user_error("Unexpected FILEPATH (already has LOCAL)") + endif() + endif() + if(_have_filepath) + if(_have_global) + hunter_gate_user_error("Unexpected GLOBAL (already has FILEPATH)") + endif() + if(HUNTER_GATE_LOCAL) + hunter_gate_user_error("Unexpected LOCAL (already has FILEPATH)") + endif() + endif() + + hunter_gate_detect_root() # set HUNTER_GATE_ROOT + + # Beautify path, fix probable problems with windows path slashes + get_filename_component( + HUNTER_GATE_ROOT "${HUNTER_GATE_ROOT}" ABSOLUTE + ) + hunter_gate_status_debug("HUNTER_ROOT: ${HUNTER_GATE_ROOT}") + if(NOT HUNTER_ALLOW_SPACES_IN_PATH) + string(FIND "${HUNTER_GATE_ROOT}" " " _contain_spaces) + if(NOT _contain_spaces EQUAL -1) + hunter_gate_fatal_error( + "HUNTER_ROOT (${HUNTER_GATE_ROOT}) contains spaces." + "Set HUNTER_ALLOW_SPACES_IN_PATH=ON to skip this error" + "(Use at your own risk!)" + ERROR_PAGE "error.spaces.in.hunter.root" + ) + endif() + endif() + + string( + REGEX + MATCH + "[0-9]+\\.[0-9]+\\.[0-9]+[-_a-z0-9]*" + HUNTER_GATE_VERSION + "${HUNTER_GATE_URL}" + ) + string(COMPARE EQUAL "${HUNTER_GATE_VERSION}" "" _is_empty) + if(_is_empty) + set(HUNTER_GATE_VERSION "unknown") + endif() + + hunter_gate_self( + "${HUNTER_GATE_ROOT}" + "${HUNTER_GATE_VERSION}" + "${HUNTER_GATE_SHA1}" + _hunter_self + ) + + set(_master_location "${_hunter_self}/cmake/Hunter") + if(EXISTS "${HUNTER_GATE_ROOT}/cmake/Hunter") + # Hunter downloaded manually (e.g. by 'git clone') + set(_unused "xxxxxxxxxx") + set(HUNTER_GATE_SHA1 "${_unused}") + set(HUNTER_GATE_VERSION "${_unused}") + else() + get_filename_component(_archive_id_location "${_hunter_self}/.." ABSOLUTE) + set(_done_location "${_archive_id_location}/DONE") + set(_sha1_location "${_archive_id_location}/SHA1") + + # Check Hunter already downloaded by HunterGate + if(NOT EXISTS "${_done_location}") + hunter_gate_download("${_archive_id_location}") + endif() + + if(NOT EXISTS "${_done_location}") + hunter_gate_internal_error("hunter_gate_download failed") + endif() + + if(NOT EXISTS "${_sha1_location}") + hunter_gate_internal_error("${_sha1_location} not found") + endif() + file(READ "${_sha1_location}" _sha1_value) + string(TOLOWER "${_sha1_value}" _sha1_value_lower) + string(TOLOWER "${HUNTER_GATE_SHA1}" _HUNTER_GATE_SHA1_lower) + string(COMPARE EQUAL "${_sha1_value_lower}" "${_HUNTER_GATE_SHA1_lower}" _is_equal) + if(NOT _is_equal) + hunter_gate_internal_error( + "Short SHA1 collision:" + " ${_sha1_value} (from ${_sha1_location})" + " ${HUNTER_GATE_SHA1} (HunterGate)" + ) + endif() + if(NOT EXISTS "${_master_location}") + hunter_gate_user_error( + "Master file not found:" + " ${_master_location}" + "try to update Hunter/HunterGate" + ) + endif() + endif() + include("${_master_location}") + set_property(GLOBAL PROPERTY HUNTER_GATE_DONE YES) + endif() +endmacro() diff --git a/cmake/cmake-modules b/cmake/cmake-modules new file mode 160000 index 0000000..1fcf7f4 --- /dev/null +++ b/cmake/cmake-modules @@ -0,0 +1 @@ +Subproject commit 1fcf7f4a2179a7b649be15473906882871ef5f0b diff --git a/deps/blake2 b/deps/blake2 new file mode 160000 index 0000000..93fefa2 --- /dev/null +++ b/deps/blake2 @@ -0,0 +1 @@ +Subproject commit 93fefa278c1a738685ce1a118ead7c85b5babc58 diff --git a/deps/ledger-secure-sdk b/deps/ledger-secure-sdk new file mode 160000 index 0000000..a85986c --- /dev/null +++ b/deps/ledger-secure-sdk @@ -0,0 +1 @@ +Subproject commit a85986c1cf0f52dd39bcf1d6550ca719b28de347 diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib new file mode 160000 index 0000000..d9ded97 --- /dev/null +++ b/deps/ledger-zxlib @@ -0,0 +1 @@ +Subproject commit d9ded9795bcb2700602907ccfff4d34087372225 diff --git a/deps/nanopb b/deps/nanopb new file mode 160000 index 0000000..6d0cc46 --- /dev/null +++ b/deps/nanopb @@ -0,0 +1 @@ +Subproject commit 6d0cc4606ea714952a9f164304040a2325ddc369 diff --git a/docs/APDUSPEC.md b/docs/APDUSPEC.md new file mode 100644 index 0000000..a035140 --- /dev/null +++ b/docs/APDUSPEC.md @@ -0,0 +1,205 @@ +# Penumbra App + +## General structure + +# #{TODO} --> Update CLA, HDPATH and APDU messages + +The general structure of commands and responses is as follows: + +### Commands + +| Field | Type | Content | Note | +| :------ | :------- | :--------------------- | ---- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | | +| P1 | byte (1) | Parameter 1 | | +| P2 | byte (1) | Parameter 2 | | +| L | byte (1) | Bytes in payload | | +| PAYLOAD | byte (L) | Payload | | + +### Response + +| Field | Type | Content | Note | +| ------- | -------- | ----------- | ------------------------ | +| ANSWER | byte (?) | Answer | depends on the command | +| SW1-SW2 | byte (2) | Return code | see list of return codes | + +### Return codes + +| Return code | Description | +| ----------- | ----------------------- | +| 0x6400 | Execution Error | +| 0x6982 | Empty buffer | +| 0x6983 | Output buffer too small | +| 0x6986 | Command not allowed | +| 0x6D00 | INS not supported | +| 0x6E00 | CLA not supported | +| 0x6F00 | Unknown | +| 0x9000 | Success | + +--- + +## Command definition + +### GET_VERSION + +#### Command + +| Field | Type | Content | Expected | +| ----- | -------- | ---------------------- | -------- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | 0x00 | +| P1 | byte (1) | Parameter 1 | ignored | +| P2 | byte (1) | Parameter 2 | ignored | +| L | byte (1) | Bytes in payload | 0 | + +#### Response + +| Field | Type | Content | Note | +| ------- | -------- | ---------------- | ------------------------------- | +| TEST | byte (1) | Test Mode | 0xFF means test mode is enabled | +| MAJOR | byte (2) | Version Major | 0..65535 | +| MINOR | byte (2) | Version Minor | 0..65535 | +| PATCH | byte (2) | Version Patch | 0..65535 | +| LOCKED | byte (1) | Device is locked | | +| SW1-SW2 | byte (2) | Return code | see list of return codes | + +--- + +### INS_GET_ADDR_ED25519 + +#### Command + +| Field | Type | Content | Expected | +| ------- | -------- | ------------------------- | ---------- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | 0x01 | +| P1 | byte (1) | Request User confirmation | No = 0 | +| P2 | byte (1) | Parameter 2 | ignored | +| L | byte (1) | Bytes in payload | (depends) | +| Path[0] | byte (4) | Derivation Path Data | 0x80000000 | 44 | +| Path[1] | byte (4) | Derivation Path Data | 0x80000000 | 434 | +| Path[2] | byte (4) | Derivation Path Data | ? | +| Path[3] | byte (4) | Derivation Path Data | ? | +| Path[4] | byte (4) | Derivation Path Data | ? | + +#### Response + +| Field | Type | Content | Note | +| ------- | --------- | ----------- | ------------------------ | +| PK | byte (32) | Public Key | | +| ADDR | byte (??) | address | | +| SW1-SW2 | byte (2) | Return code | see list of return codes | + +--- + +### INS_GET_ADDR_SR25519 + +#### Command + +| Field | Type | Content | Expected | +| ------- | -------- | ------------------------- | ---------- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | 0x11 | +| P1 | byte (1) | Request User confirmation | No = 0 | +| P2 | byte (1) | Parameter 2 | ignored | +| L | byte (1) | Bytes in payload | (depends) | +| Path[0] | byte (4) | Derivation Path Data | 0x80000000 | 44 | +| Path[1] | byte (4) | Derivation Path Data | 0x80000000 | 434 | +| Path[2] | byte (4) | Derivation Path Data | ? | +| Path[3] | byte (4) | Derivation Path Data | ? | +| Path[4] | byte (4) | Derivation Path Data | ? | + +#### Response + +| Field | Type | Content | Note | +| ------- | --------- | ----------- | ------------------------ | +| PK | byte (32) | Public Key | | +| ADDR | byte (??) | DOT address | | +| SW1-SW2 | byte (2) | Return code | see list of return codes | + +--- + +### INS_SIGN_ED25519 + +#### Command + +| Field | Type | Content | Expected | +| ----- | -------- | ---------------------- | --------- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | 0x02 | +| P1 | byte (1) | Payload desc | 0 = init | +| | | | 1 = add | +| | | | 2 = last | +| P2 | byte (1) | ---- | not used | +| L | byte (1) | Bytes in payload | (depends) | + +The first packet/chunk includes only the derivation path + +All other packets/chunks contain data chunks that are described below + +##### First Packet + +| Field | Type | Content | Expected | +| ------- | -------- | -------------------- | -------- | +| Path[0] | byte (4) | Derivation Path Data | 44 | +| Path[1] | byte (4) | Derivation Path Data | 434 | +| Path[2] | byte (4) | Derivation Path Data | ? | +| Path[3] | byte (4) | Derivation Path Data | ? | +| Path[4] | byte (4) | Derivation Path Data | ? | + +##### Other Chunks/Packets + +| Field | Type | Content | Expected | +| ------- | -------- | --------------- | -------- | +| Message | bytes... | Message to Sign | | + +#### Response + +| Field | Type | Content | Note | +| ------- | --------- | ----------- | ------------------------ | +| SIG | byte (65) | Signature | | +| SW1-SW2 | byte (2) | Return code | see list of return codes | + +--- + +### INS_SIGN_SR25519 + +#### Command + +| Field | Type | Content | Expected | +| ----- | -------- | ---------------------- | --------- | +| CLA | byte (1) | Application Identifier | 0x98 | +| INS | byte (1) | Instruction ID | 0x12 | +| P1 | byte (1) | Payload desc | 0 = init | +| | | | 1 = add | +| | | | 2 = last | +| P2 | byte (1) | ---- | not used | +| L | byte (1) | Bytes in payload | (depends) | + +The first packet/chunk includes only the derivation path + +All other packets/chunks contain data chunks that are described below + +##### First Packet + +| Field | Type | Content | Expected | +| ------- | -------- | -------------------- | -------- | +| Path[0] | byte (4) | Derivation Path Data | 44 | +| Path[1] | byte (4) | Derivation Path Data | 434 | +| Path[2] | byte (4) | Derivation Path Data | ? | +| Path[3] | byte (4) | Derivation Path Data | ? | +| Path[4] | byte (4) | Derivation Path Data | ? | + +##### Other Chunks/Packets + +| Field | Type | Content | Expected | +| ------- | -------- | --------------- | -------- | +| Message | bytes... | Message to Sign | | + +#### Response + +| Field | Type | Content | Note | +| ------- | --------- | ----------- | ------------------------ | +| SIG | byte (65) | Signature | | +| SW1-SW2 | byte (2) | Return code | see list of return codes | diff --git a/docs/zondax_dark.png b/docs/zondax_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..c14ba36853f86af8747f8d2c880b574261b2f77b GIT binary patch literal 21692 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 YxFb&M;g{{rFQERxO|4H99&^3^f06jK0RR91 literal 0 HcmV?d00001 diff --git a/fuzz/parser_parse.cpp b/fuzz/parser_parse.cpp new file mode 100644 index 0000000..481f52d --- /dev/null +++ b/fuzz/parser_parse.cpp @@ -0,0 +1,64 @@ +#include +#include +#include + +#include "parser.h" +#include "zxformat.h" + +#ifdef NDEBUG +#error "This fuzz target won't work correctly with NDEBUG defined, which will cause asserts to be eliminated" +#endif + +using std::size_t; + +namespace { +char PARSER_KEY[16384]; +char PARSER_VALUE[16384]; +} // namespace + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + parser_tx_t txObj; + MEMZERO(&txObj, sizeof(txObj)); + parser_context_t ctx; + parser_error_t rc; + + rc = parser_parse(&ctx, data, size, &txObj); + if (rc != parser_ok) { + return 0; + } + + rc = parser_validate(&ctx); + if (rc != parser_ok) { + return 0; + } + + uint8_t num_items; + rc = parser_getNumItems(&ctx, &num_items); + if (rc != parser_ok) { + fprintf(stderr, "error in parser_getNumItems: %s\n", parser_getErrorDescription(rc)); + assert(false); + } + + (void)fprintf(stderr, "----------------------------------------------\n"); + + for (uint8_t i = 0; i < num_items; i += 1) { + uint8_t page_idx = 0; + uint8_t page_count = 1; + while (page_idx < page_count) { + rc = parser_getItem(&ctx, i, PARSER_KEY, sizeof(PARSER_KEY), PARSER_VALUE, sizeof(PARSER_VALUE), page_idx, + &page_count); + + // (void)fprintf(stderr, "%s = %s\n", PARSER_KEY, PARSER_VALUE); + + if (rc != parser_ok) { + (void)fprintf(stderr, "error getting item %u at page index %u: %s\n", (unsigned)i, (unsigned)page_idx, + parser_getErrorDescription(rc)); + assert(false); + } + + page_idx += 1; + } + } + + return 0; +} diff --git a/fuzz/run-fuzz-crashes.py b/fuzz/run-fuzz-crashes.py new file mode 100755 index 0000000..d6d32be --- /dev/null +++ b/fuzz/run-fuzz-crashes.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +import os +import random +import shlex +import subprocess + +MAX_SECONDS_PER_RUN = 600 +MUTATE_DEPTH = random.randint(1, 20) + +# (fuzzer name, max length, max time scale factor) +CONFIGS = [ + ('parser_parse', 17000, 4), +] + +for config in CONFIGS: + fuzzer, max_len, scale_factor = config + max_time = MAX_SECONDS_PER_RUN * scale_factor + print(f'######## {fuzzer} ########') + + artifact_dir = os.path.join('fuzz', 'corpora', f'{fuzzer}-artifacts') + corpus_dir = os.path.join('fuzz', 'corpora', f'{fuzzer}') + fuzz_path = os.path.join(f'build/bin/fuzz-{fuzzer}') + + os.makedirs(artifact_dir, exist_ok=True) + os.makedirs(corpus_dir, exist_ok=True) + + env = os.environ.copy() + env['ASAN_OPTIONS'] = 'halt_on_error=1:print_stacktrace=1' + env['UBSAN_OPTIONS'] = 'halt_on_error=1:print_stacktrace=1' + + crash_files = os.listdir(artifact_dir) + for c in crash_files: + c_full_path = os.path.join(artifact_dir, c) + cmd = [fuzz_path, f'{c_full_path}'] + print(' '.join(shlex.quote(c) for c in cmd)) + error_code = subprocess.call(cmd, env=env) + if error_code != 0: + exit(error_code) + + diff --git a/fuzz/run-fuzzers.py b/fuzz/run-fuzzers.py new file mode 100755 index 0000000..3937753 --- /dev/null +++ b/fuzz/run-fuzzers.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +import os +import random +import shlex +import subprocess + +MAX_SECONDS_PER_RUN = 600 +MUTATE_DEPTH = random.randint(1, 20) + +# (fuzzer name, max length, max time scale factor) +CONFIGS = [ + ('parser_parse', 17000, 4), +] + +for config in CONFIGS: + fuzzer, max_len, scale_factor = config + max_time = MAX_SECONDS_PER_RUN * scale_factor + print(f'######## {fuzzer} ########') + + artifact_dir = os.path.join('fuzz', 'corpora', f'{fuzzer}-artifacts') + corpus_dir = os.path.join('fuzz', 'corpora', f'{fuzzer}') + fuzz_path = os.path.join(f'build/bin/fuzz-{fuzzer}') + + os.makedirs(artifact_dir, exist_ok=True) + os.makedirs(corpus_dir, exist_ok=True) + + env = os.environ.copy() + env['ASAN_OPTIONS'] = 'halt_on_error=1:print_stacktrace=1' + env['UBSAN_OPTIONS'] = 'halt_on_error=1:print_stacktrace=1' + + cmd = [fuzz_path, f'-max_total_time={max_time}', + f'-jobs=32' + f'-max_len={max_len}', + f'-mutate_depth={MUTATE_DEPTH}', + f'-artifact_prefix={artifact_dir}/', + corpus_dir] + print(' '.join(shlex.quote(c) for c in cmd)) + subprocess.call(cmd, env=env) diff --git a/ledger_app.toml b/ledger_app.toml new file mode 100644 index 0000000..7f63dfe --- /dev/null +++ b/ledger_app.toml @@ -0,0 +1,7 @@ +[app] +build_directory = "./app/" +sdk = "C" +devices = ["nanos", "nanox", "nanos+", "stax", "flex"] + +[tests] +unit_directory = "./tests/" diff --git a/proto/.DS_Store b/proto/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..95c8ac88e6eab7b0f5ce0f4d6d2cee36a564862f GIT binary patch literal 6148 zcmeHKL2uJA6n^f?mTFAu0R$H$OI*w7KunvsWMv$BH z9pfF1DW_dJr>Mb}hJR53Uc0LlQ$=sFZWq_@jIt-0If*k9gTou-2)_Hn8Y12l%e;&X zozUqT|I4L(-XD$e)vX49V)s)8ZcI~(R>xPL|HO}H#l-*qukj>Hi?ZMUrdk{AE1O%v zRP4C-W;QTY zo)k8B=sJQ<&>3}a%;yL9dwTD%zv$`t;k|xO@9#fYEIPsU+jk#69i3)px%r4Gz!d&I z)^$T`|$=&^Q)9++~eK$oig6+^jnv}?}`J=P9g zIw^noQ2xov-%yl&I>y(QPAYULr6?c@tSYeKs$D++A76g|UrmylC?E>_R|=^1@$h(n zDfzRtF*!bKHT(^njd``hUnvOeQ4B60#W&&B(5^WEh8}B&Xo1OxfR#ZCQQ)sC@DuL< BiUa@v literal 0 HcmV?d00001 diff --git a/proto/buf.gen.yaml b/proto/buf.gen.yaml new file mode 100644 index 0000000..171c866 --- /dev/null +++ b/proto/buf.gen.yaml @@ -0,0 +1,13 @@ +version: v2 +managed: + enabled: true + disable: + - file_option: go_package + module: buf.build/cosmos/ibc + override: + - file_option: go_package_prefix + value: github.com/penumbra-zone/penumbra/proto/go/gen +plugins: + - remote: buf.build/protocolbuffers/go + out: go/gen + opt: paths=source_relative diff --git a/proto/buf.lock b/proto/buf.lock new file mode 100644 index 0000000..a29f6d3 --- /dev/null +++ b/proto/buf.lock @@ -0,0 +1,21 @@ +# Generated by buf. DO NOT EDIT. +version: v2 +deps: + - name: buf.build/cosmos/cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 + digest: b5:0a29584117fe6433fa593d03fbda6b3964ddc59b986cd2277833ee01d4ac215a14b0286241462cd0dee6b460a108823dff5c7c42c9c1f4f7df861fcfa4bbebdf + - name: buf.build/cosmos/cosmos-sdk + commit: e7a85cef453e4b999ad9aff8714ae05f + digest: b5:78173376f272d38369c9e503118643f068b44a4f48c268a4a4e7af5a35807364ba52397ff5ed72e1ce18042df0d7cd757e7f862d429ccb844bd8bd7f8d0ab72b + - name: buf.build/cosmos/gogo-proto + commit: 34d970b699f84aa382f3c29773a60836 + digest: b5:15d77a039fd9ab81ffb28ce9601eeb687840474dd11cf645341d50c1bba7f70b01acdf0e9781d09d42d0e4bcb720eac96451827b6cf24146e2a6b2bb3d65a96c + - name: buf.build/cosmos/ibc + commit: 7ab44ae956a0488ea04e04511efa5f70 + digest: b5:17407a9bf53b990c5d362bc9bd357931aeb8516c1393b1de79823e09bcecc3c8217e0546d5be897599da6a60499bdda1bcf950eca6c4bad4209b98c937e725f1 + - name: buf.build/cosmos/ics23 + commit: 55085f7c710a45f58fa09947208eb70b + digest: b5:ab3cb4080c6974b1dd378d3e5602ae86ab7396dff1f4f25c5298c9827519ef0329e4be0e4f5f2d8cf61b1925f0c627cdfcf64955414c453036be05cab56994f0 + - name: buf.build/googleapis/googleapis + commit: 75b4300737fb4efca0831636be94e517 + digest: b5:d227a018d00bd477f62a1b3f394c87c142f7429b8bf046f7d5e6a1bb3d0e5293a96491d50825983683c295f038cdace614d258a083baa5f766985c9e618c5d2a diff --git a/proto/buf.yaml b/proto/buf.yaml new file mode 100644 index 0000000..805f75f --- /dev/null +++ b/proto/buf.yaml @@ -0,0 +1,20 @@ +version: v2 +modules: + - path: penumbra + name: buf.build/penumbra-zone/penumbra +deps: + - buf.build/cosmos/cosmos-sdk:e7a85cef453e4b999ad9aff8714ae05f + - buf.build/cosmos/ibc:7ab44ae956a0488ea04e04511efa5f70 +lint: + use: + - DEFAULT + except: + - FIELD_NOT_REQUIRED + - PACKAGE_NO_IMPORT_CYCLE + disallow_comment_ignores: true +breaking: + use: + - FILE + except: + - EXTENSION_NO_DELETE + - FIELD_SAME_DEFAULT diff --git a/proto/penumbra/.DS_Store b/proto/penumbra/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b71d3d282e755e22e71b1376b6f181afeae38ea2 GIT binary patch literal 6148 zcmeHKPfG$p6n~?ZBNBKh>NwCRZ05|Qu0o8O!FXJ_ZP%lrWV(MUQ~fD!;mRKiRFn=gdoqzjU99ztQB(Sra6;GaeM zej%G3e~|(Db`tu~g%}d}^!vs8 z^D-}s^0xJ$$E}e+N`?)8a811nt)pOO`@v<{9k)yCCpsSaVcZ>WW*613^a zNT?io4pWO5K@qkT(UuB##Spd}{mSKe4pWP^9E2GepW{Xr?uH`F=;&7_9fW6*TV{Y6 zm}eksyCvHHPrtwa&lhoz8DIwf6$2vIY&9D=CAYUOOpf+ig?fidLV2mhj}kP@R*bo{ d6>p&$LBApc(Q}wuL=Ord1Pl$_Fay8Jz&lL%Qsn>u literal 0 HcmV?d00001 diff --git a/proto/penumbra/penumbra/.DS_Store b/proto/penumbra/penumbra/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ce6f4cf8a15933531ea153e67fd10a0310410aee GIT binary patch literal 6148 zcmeHK!EVz)5S>lk#-T#W0R)#yD{+k=1yND;VnR9eN)Q|X1-rJu!u3Y6ja5aFe1-l) ze}QBFgn!`#Z+5p*oKTJk(H&{_t#{sRG|$;xFA<4R74H)DiO7dDdNh6VjKQ!AuByy23tNVQ*@lqKt|a=8qMohgnO!tgOxJd|2as1}mYu&C{>)eCbsp&Dr%- z!2Z?!?dw^-tJ*2x6!?Pzygx`dV_>l{sJ9L@`U(K_Fsu!I{$Su7X)&id5? z$vrs*oC5!q0>V2SAC6FxJzLj`#73i$V}D^tYcDddai6 z<_efUj9XvxdD`h&1*`&puK@249ulK(FxRNI4rJ;I0Cdo-3}yB45A?VJ=o`#6q6H>2 z6{xAgTrq^XI|xmO-#78OMolN7o{WCXlZCmV2y^uio(d=7YqYslz$#EwpsK44KL1aD zfB!F%Y|ScQ6<8|;gmcn4X=6&}Y+acgpS2#+CnPqG%QY$rGIJcO0w2XYNXp>zxB&DG T<{HrgvmXLV2Af$0{;2{F>$aVG literal 0 HcmV?d00001 diff --git a/proto/penumbra/penumbra/core/app/v1/app.proto b/proto/penumbra/penumbra/core/app/v1/app.proto new file mode 100644 index 0000000..7d9f1a9 --- /dev/null +++ b/proto/penumbra/penumbra/core/app/v1/app.proto @@ -0,0 +1,105 @@ +syntax = "proto3"; +package penumbra.core.app.v1; + +import "penumbra/core/component/auction/v1/auction.proto"; +import "penumbra/core/component/community_pool/v1/community_pool.proto"; +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/component/distributions/v1/distributions.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/funding/v1/funding.proto"; +import "penumbra/core/component/governance/v1/governance.proto"; +import "penumbra/core/component/ibc/v1/ibc.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/transaction/v1/transaction.proto"; + +// Query operations for the overall Penumbra application. +service QueryService { + // Gets the app parameters. + rpc AppParameters(AppParametersRequest) returns (AppParametersResponse); + // Returns the CometBFT transactions that occurred during a given block. + rpc TransactionsByHeight(TransactionsByHeightRequest) returns (TransactionsByHeightResponse); +} + +// Requests the list of all transactions that occurred within a given block. +message TransactionsByHeightRequest { + // The block height to retrieve. + uint64 block_height = 2; +} + +// A transaction that appeared within a given block. +message TransactionsByHeightResponse { + // The transactions. + repeated core.transaction.v1.Transaction transactions = 1; + // The block height. + uint64 block_height = 2; +} + +message AppParameters { + // The chain identifier. + string chain_id = 1; + // Sct module parameters. + core.component.sct.v1.SctParameters sct_params = 2; + // Community Pool module parameters. + core.component.community_pool.v1.CommunityPoolParameters community_pool_params = 3; + // Governance module parameters. + core.component.governance.v1.GovernanceParameters governance_params = 4; + // IBC module parameters. + core.component.ibc.v1.IbcParameters ibc_params = 5; + // Stake module parameters. + core.component.stake.v1.StakeParameters stake_params = 6; + // Fee module parameters. + core.component.fee.v1.FeeParameters fee_params = 7; + // Distributions module parameters. + core.component.distributions.v1.DistributionsParameters distributions_params = 8; + // Funding module parameters. + core.component.funding.v1.FundingParameters funding_params = 9; + // Shielded pool module parameters. + core.component.shielded_pool.v1.ShieldedPoolParameters shielded_pool_params = 10; + // DEX module parameters. + core.component.dex.v1.DexParameters dex_params = 11; + // Auction module parameters. + core.component.auction.v1.AuctionParameters auction_params = 12; +} + +// Requests the global configuration data for the app. +message AppParametersRequest {} + +message AppParametersResponse { + AppParameters app_parameters = 1; +} + +message GenesisAppState { + oneof genesis_app_state { + GenesisContent genesis_content = 1; + bytes genesis_checkpoint = 2; + } +} + +message GenesisContent { + // The initial chain identifier. + string chain_id = 1; + // Stake module genesis state. + core.component.stake.v1.GenesisContent stake_content = 2; + // Shielded pool module genesis state. + core.component.shielded_pool.v1.GenesisContent shielded_pool_content = 3; + // Governance module genesis state. + core.component.governance.v1.GenesisContent governance_content = 4; + // IBC module genesis state. + core.component.ibc.v1.GenesisContent ibc_content = 5; + // Sct module genesis state. + core.component.sct.v1.GenesisContent sct_content = 6; + // Community Pool module genesis state. + core.component.community_pool.v1.GenesisContent community_pool_content = 7; + // Fee module genesis state. + core.component.fee.v1.GenesisContent fee_content = 8; + // Distributions module genesis state. + core.component.distributions.v1.GenesisContent distributions_content = 9; + // Funding module genesis state. + core.component.funding.v1.GenesisContent funding_content = 10; + // DEX component genesis state. + core.component.dex.v1.GenesisContent dex_content = 11; + // Auction component genesis state. + core.component.auction.v1.GenesisContent auction_content = 12; +} diff --git a/proto/penumbra/penumbra/core/asset/v1/asset.proto b/proto/penumbra/penumbra/core/asset/v1/asset.proto new file mode 100644 index 0000000..433e1c1 --- /dev/null +++ b/proto/penumbra/penumbra/core/asset/v1/asset.proto @@ -0,0 +1,169 @@ +syntax = "proto3"; +package penumbra.core.asset.v1; + +import "google/protobuf/any.proto"; +import "penumbra/core/num/v1/num.proto"; + +message BalanceCommitment { + bytes inner = 1; +} + +// A Penumbra asset ID. +message AssetId { + // The bytes of the asset ID. + bytes inner = 1; + + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the `inner` bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. This field exists for convenience of RPC users. + string alt_bech32m = 2; + + // Alternatively, a base denomination string which should be hashed to obtain the asset ID. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_base_denom` set. This field exists for convenience of RPC users. + string alt_base_denom = 3; +} + +message Denom { + string denom = 1; +} + +// Describes metadata about a given asset. +message Metadata { + string description = 1; + // denom_units represents the list of DenomUnit's for a given coin + repeated DenomUnit denom_units = 2; + // base represents the base denom (should be the DenomUnit with exponent = 0). + string base = 3; + // display indicates the suggested denom that should be + // displayed in clients. + string display = 4; + // name defines the name of the token (eg: Cosmos Atom) + string name = 5; + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + string symbol = 6; + + // These are used by the CSDK but we do not use them, and in our opinion + // they should be deprecated there too. + reserved 7; + reserved "uri", "URI"; + reserved 8; + reserved "uri_hash", "URIHash"; + + // the asset ID on Penumbra for this denomination. + AssetId penumbra_asset_id = 1984; + + repeated AssetImage images = 1985; + + // An optional "score" used to prioritize token lists. + // + // This is solely for use in client-side registries. + uint64 priority_score = 1986; +} + +// DenomUnit represents a struct that describes a given denomination unit of the basic token. +message DenomUnit { + // denom represents the string name of the given denom unit (e.g uatom). + string denom = 1; + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + uint32 exponent = 2; + // aliases is a list of string aliases for the given denom + repeated string aliases = 3; +} + +message Value { + core.num.v1.Amount amount = 1; + AssetId asset_id = 2; +} + +// Represents a value of a known or unknown denomination. +message ValueView { + // A value whose asset ID is known and has metadata. + message KnownAssetId { + // The amount of the value. + core.num.v1.Amount amount = 1; + + // The asset metadata describing the asset of the value. + Metadata metadata = 2; + + // Optionally, a list of equivalent values in other numeraires. + repeated EquivalentValue equivalent_values = 3; + + // Optionally, extended, dynamically-typed metadata about the object this + // token represents. + // + // This is left flexible to allow future extensions. For instance, a view + // server could augment an LPNFT with a message describing the current state + // of the position and its reserves, allowing a frontend to render LPNFTs + // with their position information (trading pair, etc). However, because + // this is in an extension, a frontend that does not have special handling + // logic would fall back on the ordinary asset metadata. + google.protobuf.Any extended_metadata = 4; + } + // A value whose asset ID is unknown, with no metadata. + message UnknownAssetId { + core.num.v1.Amount amount = 1; + AssetId asset_id = 2; + } + oneof value_view { + KnownAssetId known_asset_id = 1; + UnknownAssetId unknown_asset_id = 2; + } +} + +// An image related to an asset. +message AssetImage { + // The URI of the image in PNG format. + string png = 1; + // The URI of the image in SVG format. + string svg = 2; + + message Theme { + // Should be in hex format, `^#[0-9a-fA-F]{6}$`. + string primary_color_hex = 1; + bool circle = 2; + bool dark_mode = 3; + } + Theme theme = 3; +} + +// The estimated price of one asset in terms of a numeraire. +// +// This is used for generating "equivalent values" in ValueViews. +message EstimatedPrice { + asset.v1.AssetId priced_asset = 1; + asset.v1.AssetId numeraire = 2; + // Multiply units of the priced asset by this value to get the value in the numeraire. + // + // This is a floating-point number since the price is approximate. + double numeraire_per_unit = 3; + // If set, gives some idea of when the price was estimated. + uint64 as_of_height = 4; +} + +// An "equivalent" value to a given value, in terms of a numeraire. +// +// For instance, this can provide a USD-equivalent value relative to a +// stablecoin, or an amount of the staking token, etc. A view server can +// optionally include this information to assist a frontend in displaying +// information about the value in a user-friendly way. +message EquivalentValue { + // The equivalent amount of the parent Value in terms of the numeraire. + core.num.v1.Amount equivalent_amount = 1; + // Metadata describing the numeraire. + Metadata numeraire = 2; + // If set, gives some idea of when the price/equivalence was estimated. + uint64 as_of_height = 3; +} diff --git a/proto/penumbra/penumbra/core/component/auction/v1/auction.proto b/proto/penumbra/penumbra/core/component/auction/v1/auction.proto new file mode 100755 index 0000000..0f68dee --- /dev/null +++ b/proto/penumbra/penumbra/core/component/auction/v1/auction.proto @@ -0,0 +1,227 @@ +syntax = "proto3"; +package penumbra.core.component.auction.v1; + +import "google/protobuf/any.proto"; +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/num/v1/num.proto"; + +// The configuration parameters for the auction component. +message AuctionParameters {} + +// Genesis data for the auction component. +message GenesisContent { + // The configuration parameters for the auction component at genesis. + AuctionParameters params = 1; +} + +// Query operations for the auction component. +service QueryService { + // Get the current state of an auction by ID. + rpc AuctionStateById(AuctionStateByIdRequest) returns (AuctionStateByIdResponse); + // Get the current state of a group of auctions by ID. + rpc AuctionStateByIds(AuctionStateByIdsRequest) returns (stream AuctionStateByIdsResponse); +} + +message AuctionStateByIdRequest { + AuctionId id = 1; +} + +message AuctionStateByIdResponse { + // If present, the state of the auction. If not present, no such auction is known. + google.protobuf.Any auction = 2; + // The state of any DEX positions relevant to the returned auction. + // + // Could be empty, depending on the auction state. + repeated core.component.dex.v1.Position positions = 3; +} + +message AuctionStateByIdsRequest { + // The auction IDs to request. Only known IDs will be returned in the response. + repeated AuctionId id = 1; +} + +message AuctionStateByIdsResponse { + // The auction ID of the returned auction. + AuctionId id = 1; + // The state of the returned auction. + DutchAuctionState auction = 2; + // The state of any DEX positions relevant to the returned auction. + // + // Could be empty, depending on the auction state. + repeated core.component.dex.v1.Position positions = 3; +} + +// A unique identifier for an auction, obtained from hashing a domain separator +// along with the immutable part of an auction description. +message AuctionId { + bytes inner = 1; +} + +// A bearer NFT tracking ownership of an auction and its proceeds. +message AuctionNft { + AuctionId id = 1; + uint64 seq = 2; +} + +// Describes a Dutch auction using programmatic liquidity on the DEX. +message DutchAuctionDescription { + // The value the seller wishes to auction. + asset.v1.Value input = 1; + // The asset ID of the target asset the seller wishes to acquire. + asset.v1.AssetId output_id = 2; + // The maximum output the seller can receive. + // + // This implicitly defines the starting price for the auction. + num.v1.Amount max_output = 3; + // The minimum output the seller is willing to receive. + // + // This implicitly defines the ending price for the auction. + num.v1.Amount min_output = 4; + // The block height at which the auction begins. + // + // This allows the seller to schedule an auction at a future time. + uint64 start_height = 5; + // The block height at which the auction ends. + // + // Together with `start_height`, `max_output`, and `min_output`, + // this implicitly defines the speed of the auction. + uint64 end_height = 6; + // The number of discrete price steps to use for the auction. + // + // `end_height - start_height` must be a multiple of `step_count`. + uint64 step_count = 7; + // A random nonce used to allow identical auctions to have + // distinct auction IDs. + bytes nonce = 8; +} + +message DutchAuctionState { + // The sequence number of the auction state. + // + // Dutch auctions move from: + // 0 (opened) => 1 (closed) => n (withdrawn) + uint64 seq = 1; + // If present, the current position controlled by this auction. + dex.v1.PositionId current_position = 2; + // If present, the next trigger height to step down the price. + uint64 next_trigger = 3; + // The amount of the input asset directly owned by the auction. + // + // The auction may also own the input asset indirectly, + // via the reserves of `current_position` if it exists. + num.v1.Amount input_reserves = 4; + // The amount of the output asset directly owned by the auction. + // + // The auction may also own the output asset indirectly, + // via the reserves of `current_position` if it exists. + num.v1.Amount output_reserves = 5; +} + +message DutchAuction { + // The immutable data describing the auction and its auction ID. + DutchAuctionDescription description = 1; + // The mutable data describing the auction's execution. + DutchAuctionState state = 2; +} + +// Initiates a Dutch auction using protocol-controlled liquidity. +message ActionDutchAuctionSchedule { + DutchAuctionDescription description = 1; +} + +// Terminate the auction associated with the specified `auction_id` +message ActionDutchAuctionEnd { + // The auction to end. + AuctionId auction_id = 1; +} + +// Withdraw funds from the ended auction associated with the specified `auction_id` +message ActionDutchAuctionWithdraw { + // The auction to withdraw funds from. + AuctionId auction_id = 1; + // The sequence number of the withdrawal. + uint64 seq = 2; + // A transparent (zero blinding factor) commitment to the + // auction's final reserves. + // + // The chain will check this commitment by recomputing it + // with the on-chain state. + asset.v1.BalanceCommitment reserves_commitment = 3; +} + +// A plan to a `ActionDutchAuctionWithdraw` which contains both private and public data. +message ActionDutchAuctionWithdrawPlan { + AuctionId auction_id = 1; + uint64 seq = 2; + asset.v1.Value reserves_input = 3; + asset.v1.Value reserves_output = 4; +} + +// An `ActionDutchAuctionSchedule` augmented with additional metadata. +message ActionDutchAuctionScheduleView { + ActionDutchAuctionSchedule action = 1; + AuctionId auction_id = 2; + asset.v1.Metadata input_metadata = 3; + asset.v1.Metadata output_metadata = 4; +} + +// An `ActionDutchAuctionWithdraw` augmented with additional metadata. +message ActionDutchAuctionWithdrawView { + ActionDutchAuctionWithdraw action = 1; + // A sequence of values that sum together to the provided + // reserves commitment. + repeated asset.v1.ValueView reserves = 2; +} + +message EventDutchAuctionScheduled { + AuctionId auction_id = 1; + DutchAuctionDescription description = 2; +} + +message EventDutchAuctionUpdated { + AuctionId auction_id = 1; + DutchAuctionState state = 2; +} + +message EventDutchAuctionEnded { + // The reason the auction ended. + enum Reason { + REASON_UNSPECIFIED = 0; + // The auction ended due to reaching its terminal height. + REASON_EXPIRED = 1; + // The auction ran out of reserves. + REASON_FILLED = 2; + // The auction ended was terminated by the initiator. + REASON_CLOSED_BY_OWNER = 3; + } + + AuctionId auction_id = 1; + DutchAuctionState state = 2; + Reason reason = 3; +} + +message EventDutchAuctionWithdrawn { + AuctionId auction_id = 1; + DutchAuctionState state = 2; +} + +// A message emitted when value flows *into* the auction component. +message EventValueCircuitBreakerCredit { + // The asset ID being deposited into the Auction component. + asset.v1.AssetId asset_id = 1; + // The previous balance of the asset in the Auction component. + num.v1.Amount previous_balance = 2; + // The new balance of the asset in the Auction component. + num.v1.Amount new_balance = 3; +} + +// A message emitted when value flows *out* of the auction component. +message EventValueCircuitBreakerDebit { + // The asset ID being deposited into the Auction component. + asset.v1.AssetId asset_id = 1; + // The previous balance of the asset in the Auction component. + num.v1.Amount previous_balance = 2; + // The new balance of the asset in the Auction component. + num.v1.Amount new_balance = 3; +} diff --git a/proto/penumbra/penumbra/core/component/community_pool/v1/community_pool.proto b/proto/penumbra/penumbra/core/component/community_pool/v1/community_pool.proto new file mode 100644 index 0000000..6f9b20c --- /dev/null +++ b/proto/penumbra/penumbra/core/component/community_pool/v1/community_pool.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; +package penumbra.core.component.community_pool.v1; + +import "penumbra/core/asset/v1/asset.proto"; + +// CommunityPool parameter data. +message CommunityPoolParameters { + // Whether Community Pool spend proposals are enabled. + bool community_pool_spend_proposals_enabled = 1; +} + +// CommunityPool genesis state. +message GenesisContent { + // CommunityPool parameters. + CommunityPoolParameters community_pool_params = 1; + // The initial balance of the Community Pool. + core.asset.v1.Value initial_balance = 2; +} + +// Query operations for the community_pool component. +service QueryService { + rpc CommunityPoolAssetBalances(CommunityPoolAssetBalancesRequest) returns (stream CommunityPoolAssetBalancesResponse); +} + +// Requests the list of all asset balances associated with the Community Pool. +message CommunityPoolAssetBalancesRequest { + // (Optional): The specific asset balances to retrieve, if excluded all will be returned. + repeated asset.v1.AssetId asset_ids = 2; +} + +// The Community Pool's balance of a single asset. +message CommunityPoolAssetBalancesResponse { + // The balance for a single asset. + core.asset.v1.Value balance = 1; +} diff --git a/proto/penumbra/penumbra/core/component/compact_block/v1/compact_block.proto b/proto/penumbra/penumbra/core/component/compact_block/v1/compact_block.proto new file mode 100644 index 0000000..e86e33e --- /dev/null +++ b/proto/penumbra/penumbra/core/component/compact_block/v1/compact_block.proto @@ -0,0 +1,89 @@ +syntax = "proto3"; +package penumbra.core.component.compact_block.v1; + +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/crypto/tct/v1/tct.proto"; + +// Contains the minimum data needed to update client state. +message CompactBlock { + uint64 height = 1; + // State payloads describing new state fragments. + repeated StatePayload state_payloads = 2; + // Nullifiers identifying spent notes. + repeated sct.v1.Nullifier nullifiers = 3; + // The block root of this block. + crypto.tct.v1.MerkleRoot block_root = 4; + // The epoch root of this epoch (only present when the block is the last in an epoch). + crypto.tct.v1.MerkleRoot epoch_root = 5; + // If a proposal started voting in this block, this is set to `true`. + bool proposal_started = 6; + // Latest Fuzzy Message Detection parameters. + shielded_pool.v1.FmdParameters fmd_parameters = 7; + // Price data for swaps executed in this block. + repeated dex.v1.BatchSwapOutputData swap_outputs = 8; + // Indicates updated app parameters. + bool app_parameters_updated = 9; + // Updated gas prices, if they have changed. + fee.v1.GasPrices gas_prices = 10; + // Updated gas prices for alternative fee tokens, if they have changed. + repeated fee.v1.GasPrices alt_gas_prices = 100; + // The epoch index + uint64 epoch_index = 11; +} + +// An encrypted payload, corresponding to a single commitment in the state commitment tree. +message StatePayload { + message RolledUp { + crypto.tct.v1.StateCommitment commitment = 1; + } + message Note { + shielded_pool.v1.NotePayload note = 2; + } + message Swap { + dex.v1.SwapPayload swap = 2; + } + // The source of the payload, if known. + sct.v1.CommitmentSource source = 1; + // The state payload itself. + oneof state_payload { + RolledUp rolled_up = 2; + Note note = 3; + Swap swap = 4; + } +} + +// Query operations for the compact block component. +service QueryService { + // Returns a stream of compact blocks, optionally keeping the stream alive for push notifications. + rpc CompactBlockRange(CompactBlockRangeRequest) returns (stream CompactBlockRangeResponse); + // Returns a single compact block at a specific height. + // + // Clients requesting multiple compact blocks should generally use the streaming RPC. + rpc CompactBlock(CompactBlockRequest) returns (CompactBlockResponse); +} + +// Requests a range of compact block data. +message CompactBlockRangeRequest { + // The start height of the range. + uint64 start_height = 2; + // The end height of the range, defaults to the latest block height. + uint64 end_height = 3; + // If set, keeps the connection alive past `end_height`, + // streaming new compact blocks as they are created. + bool keep_alive = 4; +} + +message CompactBlockRangeResponse { + core.component.compact_block.v1.CompactBlock compact_block = 1; +} + +message CompactBlockRequest { + uint64 height = 1; +} + +message CompactBlockResponse { + core.component.compact_block.v1.CompactBlock compact_block = 1; +} diff --git a/proto/penumbra/penumbra/core/component/dex/v1/dex.proto b/proto/penumbra/penumbra/core/component/dex/v1/dex.proto new file mode 100644 index 0000000..5e03b3e --- /dev/null +++ b/proto/penumbra/penumbra/core/component/dex/v1/dex.proto @@ -0,0 +1,808 @@ +syntax = "proto3"; +package penumbra.core.component.dex.v1; + +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; +import "penumbra/core/txhash/v1/txhash.proto"; +import "penumbra/crypto/tct/v1/tct.proto"; + +// A Penumbra ZK swap proof. +message ZKSwapProof { + bytes inner = 1; +} + +// A Penumbra ZK swap claim proof. +message ZKSwapClaimProof { + bytes inner = 1; +} + +// A transaction action that submits a swap to the dex. +message Swap { + // Contains the Swap proof. + ZKSwapProof proof = 1; + // Encapsulates the authorized fields of the Swap action, used in signing. + SwapBody body = 4; +} + +// A transaction action that obtains assets previously confirmed +// via a Swap transaction. Does not include a spend authorization +// signature, as it is only capable of consuming the NFT from a +// Swap transaction. +message SwapClaim { + // Contains the SwapClaim proof. + ZKSwapClaimProof proof = 1; + // Encapsulates the authorized fields of the SwapClaim action, used in signing. + SwapClaimBody body = 2; + // The epoch duration of the chain when the swap claim took place. + uint64 epoch_duration = 7; +} + +// Encapsulates the authorized fields of the SwapClaim action, used in signing. +message SwapClaimBody { + // The nullifier for the Swap commitment to be consumed. + component.sct.v1.Nullifier nullifier = 1; + // The fee allows `SwapClaim` without an additional `Spend`. + component.fee.v1.Fee fee = 2; + // Note output for asset 1. + crypto.tct.v1.StateCommitment output_1_commitment = 3; + // Note output for asset 2. + crypto.tct.v1.StateCommitment output_2_commitment = 4; + // Input and output amounts, and asset IDs for the assets in the swap. + BatchSwapOutputData output_data = 6; +} + +// The authorized data of a Swap transaction. +message SwapBody { + // The trading pair to swap. + TradingPair trading_pair = 1; + // The amount for asset 1. + num.v1.Amount delta_1_i = 2; + // The amount for asset 2. + num.v1.Amount delta_2_i = 3; + // A commitment to a prepaid fee for the future SwapClaim. + // This is recorded separately from delta_j_i because it's shielded; + // in the future we'll want separate commitments to each delta_j_i + // anyways in order to prove consistency with flow encryption. + asset.v1.BalanceCommitment fee_commitment = 4; + // The swap commitment and encryption of the swap data. + SwapPayload payload = 5; +} + +message SwapPayload { + crypto.tct.v1.StateCommitment commitment = 1; + bytes encrypted_swap = 2; +} + +message SwapPlaintext { + // The trading pair to swap. + TradingPair trading_pair = 1; + // Input amount of asset 1 + num.v1.Amount delta_1_i = 2; + // Input amount of asset 2 + num.v1.Amount delta_2_i = 3; + // Pre-paid fee to claim the swap + fee.v1.Fee claim_fee = 4; + // Address that will claim the swap outputs via SwapClaim. + keys.v1.Address claim_address = 5; + // Swap rseed (blinding factors are derived from this) + bytes rseed = 6; +} + +message SwapPlan { + // The plaintext version of the swap to be performed. + dex.v1.SwapPlaintext swap_plaintext = 1; + // The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the SwapClaim. + bytes fee_blinding = 2; + // The first blinding factor to use for the ZK swap proof. + bytes proof_blinding_r = 3; + // The second blinding factor to use for the ZK swap proof. + bytes proof_blinding_s = 4; +} + +message SwapClaimPlan { + // The plaintext version of the swap to be performed. + dex.v1.SwapPlaintext swap_plaintext = 1; + // The position of the swap commitment. + uint64 position = 2; + // Input and output amounts for the Swap. + dex.v1.BatchSwapOutputData output_data = 3; + // The epoch duration, used in proving. + uint64 epoch_duration = 4; + // The first blinding factor to use for the ZK swap claim proof. + bytes proof_blinding_r = 5; + // The second blinding factor to use for the ZK swap claim proof. + bytes proof_blinding_s = 6; +} + +message SwapView { + message Visible { + // The underlying Swap action being viewed. + dex.v1.Swap swap = 1; + // The plaintext of the encrypted swap. + dex.v1.SwapPlaintext swap_plaintext = 3; + // Optionally, a transaction hash for the transaction that claimed this + // swap. + // + // Presence of this field signals that the swap outputs have been claimed + // and that the claim transaction is known to the view server. Absence of + // this field does not indicate anything about the state of the swap. + // + // This field allows frontends to more easily crossreference the sequence of + // Swap/SwapClaim actions. + txhash.v1.TransactionId claim_tx = 4; + // Optionally, if the swap has been confirmed, the batch price it received. + // + // As soon as the swap is detected, the view server can in principle record + // the relevant BSOD and provide it as part of the view. This allows providing + // info about the execution of the swap. + BatchSwapOutputData batch_swap_output_data = 20; + // Optionally, if the swap has been confirmed, the output note of asset 1. + // + // This is the note that will be minted by the SwapClaim action. + shielded_pool.v1.NoteView output_1 = 30; + // Optionally, if the swap has been confirmed, the output note of asset 2. + // + // This is the note that will be minted by the SwapClaim action. + shielded_pool.v1.NoteView output_2 = 31; + // Optionally, metadata about asset 1 in the `swap`'s trading pair. + asset.v1.Metadata asset_1_metadata = 40; + // Optionally, metadata about asset 2 in the `swap`'s trading pair. + asset.v1.Metadata asset_2_metadata = 41; + } + + message Opaque { + dex.v1.Swap swap = 1; + // Optionally, if the swap has been confirmed, the batch price it received. + // + // As soon as the swap is detected, the view server can in principle record + // the relevant BSOD and provide it as part of the view. This allows providing + // info about the execution of the swap. + BatchSwapOutputData batch_swap_output_data = 20; + // Optionally, if the swap has been confirmed, the output value of asset 1. + // + // This is the value of the note that will be minted by the SwapClaim action. + // Note that unlike the `Visible` variant, this is only a `ValueView` since + // the details of the note (in particular the claim address) are not publicly known. + asset.v1.ValueView output_1_value = 30; + // Optionally, if the swap has been confirmed, the output value of asset 2. + // + // This is the note that will be minted by the SwapClaim action. + // Note that unlike the `Visible` variant, this is only a `ValueView` since + // the details of the note (in particular the claim address) are not publicly known. + asset.v1.ValueView output_2_value = 31; + // Optionally, metadata about asset 1 in the `swap`'s trading pair. + asset.v1.Metadata asset_1_metadata = 40; + // Optionally, metadata about asset 2 in the `swap`'s trading pair. + asset.v1.Metadata asset_2_metadata = 41; + } + + oneof swap_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message SwapClaimView { + message Visible { + dex.v1.SwapClaim swap_claim = 1; + shielded_pool.v1.NoteView output_1 = 2; + shielded_pool.v1.NoteView output_2 = 3; + // Optionally, a transaction hash for the transaction that created the swap + // this action claims. + // + // This field allows frontends to more easily crossreference the sequence of + // Swap/SwapClaim actions. + txhash.v1.TransactionId swap_tx = 4; + } + message Opaque { + dex.v1.SwapClaim swap_claim = 1; + } + oneof swap_claim_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +// Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we +// require `asset_1 < asset_2` as field elements, to ensure a canonical +// representation of an unordered pair. +message TradingPair { + // The first asset of the pair. + asset.v1.AssetId asset_1 = 1; + // The second asset of the pair. + asset.v1.AssetId asset_2 = 2; +} + +// Encodes a trading pair starting from asset `start` +// and ending on asset `end`. +message DirectedTradingPair { + // The start asset of the pair. + asset.v1.AssetId start = 1; + // The end asset of the pair. + asset.v1.AssetId end = 2; +} + +// Records the result of a batch swap on-chain. +// +// Used as a public input to a swap claim proof, as it implies the effective +// clearing price for the batch. +message BatchSwapOutputData { + // The total amount of asset 1 that was input to the batch swap. + num.v1.Amount delta_1 = 1; + // The total amount of asset 2 that was input to the batch swap. + num.v1.Amount delta_2 = 2; + // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. + num.v1.Amount lambda_1 = 3; + // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. + num.v1.Amount lambda_2 = 4; + // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. + num.v1.Amount unfilled_1 = 5; + // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. + num.v1.Amount unfilled_2 = 6; + // The height for which the batch swap data is valid. + uint64 height = 7; + // The trading pair associated with the batch swap. + TradingPair trading_pair = 8; + // The starting block height of the epoch for which the batch swap data is valid. + uint64 epoch_starting_height = 9 [deprecated = true]; + // The prefix (epoch, block) of the position where this batch swap occurred. + uint64 sct_position_prefix = 10; +} + +// The trading function for a specific pair. +// For a pair (asset_1, asset_2), a trading function is defined by: +// `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. +// The trading function is frequently referred to as "phi". +message TradingFunction { + BareTradingFunction component = 1; + TradingPair pair = 2; +} + +// The minimum amount of data describing a trading function. +// +// This implicitly treats the trading function as being between assets 1 and 2, +// without specifying what those assets are, to avoid duplicating data (each +// asset ID alone is twice the size of the trading function). +message BareTradingFunction { + uint32 fee = 1; + // This is not actually an amount, it's an integer the same width as an amount + num.v1.Amount p = 2; + // This is not actually an amount, it's an integer the same width as an amount + num.v1.Amount q = 3; +} + +// The reserves of a position. +// +// Like a position, this implicitly treats the trading function as being +// between assets 1 and 2, without specifying what those assets are, to avoid +// duplicating data (each asset ID alone is four times the size of the +// reserves). +message Reserves { + num.v1.Amount r1 = 1; + num.v1.Amount r2 = 2; +} + +// Data identifying a position. +message Position { + TradingFunction phi = 1; + // A random value used to disambiguate different positions with the exact same + // trading function. The chain should reject newly created positions with the + // same nonce as an existing position. This ensures that `PositionId`s will + // be unique, and allows us to track position ownership with a + // sequence of stateful NFTs based on the `PositionId`. + bytes nonce = 2; + PositionState state = 3; + Reserves reserves = 4; + /// If set to true, the position is a limit-order and will be closed + /// immediately after being filled. + bool close_on_fill = 5; +} + +// A hash of a `Position`. +message PositionId { + // The bytes of the position ID. + bytes inner = 1; + + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + string alt_bech32m = 2; +} + +// The state of a position. +message PositionState { + enum PositionStateEnum { + POSITION_STATE_ENUM_UNSPECIFIED = 0; + // The position has been opened, is active, has reserves and accumulated + // fees, and can be traded against. + POSITION_STATE_ENUM_OPENED = 1; + // The position has been closed, is inactive and can no longer be traded + // against, but still has reserves and accumulated fees. + POSITION_STATE_ENUM_CLOSED = 2; + // The final reserves and accumulated fees have been withdrawn, leaving an + // empty, inactive position awaiting (possible) retroactive rewards. + // + // Positions can be withdrawn from multiple times, incrementing a sequence + // number each time. + POSITION_STATE_ENUM_WITHDRAWN = 3; + // Deprecated. + POSITION_STATE_ENUM_CLAIMED = 4 [deprecated = true]; + } + PositionStateEnum state = 1; + // Only meaningful if `state` is `POSITION_STATE_ENUM_WITHDRAWN`. + // + // The sequence number allows multiple withdrawals from the same position. + uint64 sequence = 2; +} + +// An LPNFT tracking both ownership and state of a position. +// +// Tracking the state as part of the LPNFT means that all LP-related actions can +// be authorized by spending funds: a state transition (e.g., closing a +// position) is modeled as spending an "open position LPNFT" and minting a +// "closed position LPNFT" for the same (globally unique) position ID. +// +// This means that the LP mechanics can be agnostic to the mechanism used to +// record custody and spend authorization. For instance, they can be recorded +// in the shielded pool, where custody is based on off-chain keys, or they could +// be recorded in a programmatic on-chain account (in the future, e.g., to +// support interchain accounts). This also means that LP-related actions don't +// require any cryptographic implementation (proofs, signatures, etc), other +// than hooking into the value commitment mechanism used for transaction +// balances. +message LpNft { + PositionId position_id = 1; + PositionState state = 2; +} + +// A transaction action that opens a new position. +// +// This action's contribution to the transaction's value balance is to consume +// the initial reserves and contribute an opened position NFT. +message PositionOpen { + // Contains the data defining the position, sufficient to compute its `PositionId`. + // + // Positions are immutable, so the `PositionData` (and hence the `PositionId`) + // are unchanged over the entire lifetime of the position. + Position position = 1; +} + +// A transaction action that closes a position. +// +// This action's contribution to the transaction's value balance is to consume +// an opened position NFT and contribute a closed position NFT. +// +// Closing a position does not immediately withdraw funds, because Penumbra +// transactions (like any ZK transaction model) are early-binding: the prover +// must know the state transition they prove knowledge of, and they cannot know +// the final reserves with certainty until after the position has been deactivated. +message PositionClose { + PositionId position_id = 1; +} + +// A transaction action that withdraws funds from a closed position. +// +// This action's contribution to the transaction's value balance is to consume a +// closed position NFT and contribute a withdrawn position NFT, as well as all +// of the funds that were in the position at the time of closing. +message PositionWithdraw { + PositionId position_id = 1; + // A transparent (zero blinding factor) commitment to the position's final reserves and fees. + // + // The chain will check this commitment by recomputing it with the on-chain state. + asset.v1.BalanceCommitment reserves_commitment = 2; + // The sequence number of the withdrawal. + // + // This allows multiple withdrawals from the same position, rather than a single reward claim. + uint64 sequence = 3; +} + +// Deprecated. +message PositionRewardClaim { + PositionId position_id = 1; + asset.v1.BalanceCommitment rewards_commitment = 2; +} + +// Contains the entire execution of a particular swap. +message SwapExecution { + // Contains all individual steps consisting of a trade trace. + message Trace { + // Each step in the trade trace. + repeated asset.v1.Value value = 1; + } + repeated Trace traces = 1; + + // The total input amount for this execution. + asset.v1.Value input = 2; + // The total output amount for this execution. + asset.v1.Value output = 3; +} + +// Contains private and public data for withdrawing funds from a closed position. +message PositionWithdrawPlan { + Reserves reserves = 1; + PositionId position_id = 2; + TradingPair pair = 3; + // The sequence number of the withdrawal. + uint64 sequence = 4; + // Any accumulated rewards assigned to this position. + repeated asset.v1.Value rewards = 5; +} + +// Deprecated. +message PositionRewardClaimPlan { + Reserves reserves = 1; +} + +// Query operations for the DEX component. +service QueryService { + // Get the batch clearing prices for a specific block height and trading pair. + rpc BatchSwapOutputData(BatchSwapOutputDataRequest) returns (BatchSwapOutputDataResponse); + // Get the precise swap execution used for a specific batch swap. + rpc SwapExecution(SwapExecutionRequest) returns (SwapExecutionResponse); + // Get the precise execution used to perform on-chain arbitrage. + rpc ArbExecution(ArbExecutionRequest) returns (ArbExecutionResponse); + + // Stream all swap executions over a range of heights, optionally subscribing to future executions. + rpc SwapExecutions(SwapExecutionsRequest) returns (stream SwapExecutionsResponse); + // Stream all arbitrage executions over a range of heights, optionally subscribing to future executions. + rpc ArbExecutions(ArbExecutionsRequest) returns (stream ArbExecutionsResponse); + + // Query all liquidity positions on the DEX. + rpc LiquidityPositions(LiquidityPositionsRequest) returns (stream LiquidityPositionsResponse); + // Query liquidity positions by ID. + // + // To get multiple positions, use `LiquidityPositionsById`. + rpc LiquidityPositionById(LiquidityPositionByIdRequest) returns (LiquidityPositionByIdResponse); + // Query multiple liquidity positions by ID. + rpc LiquidityPositionsById(LiquidityPositionsByIdRequest) returns (stream LiquidityPositionsByIdResponse); + // Query liquidity positions on a specific pair, sorted by effective price. + rpc LiquidityPositionsByPrice(LiquidityPositionsByPriceRequest) returns (stream LiquidityPositionsByPriceResponse); + + // Get the current (direct) spread on a trading pair. + // + // This method doesn't do simulation, so actually executing might result in a + // better price (if the chain takes a different route to the target asset). + rpc Spread(SpreadRequest) returns (SpreadResponse); + + // Get historical candlestick data for a given trading pair. + // + // Note that this RPC is directional, to get data for both directions, make a second request. + rpc CandlestickData(CandlestickDataRequest) returns (CandlestickDataResponse); + + // Subscribe to candlestick data updates. + rpc CandlestickDataStream(CandlestickDataStreamRequest) returns (stream CandlestickDataStreamResponse); +} + +// Simulation for the DEX component. +// +// This is a separate service from the QueryService because it's not just a +// simple read query from the state. Thus it poses greater DoS risks, and node +// operators may want to enable it separately. +service SimulationService { + // Simulate routing and trade execution. + rpc SimulateTrade(SimulateTradeRequest) returns (SimulateTradeResponse); +} + +// Requests batch swap data associated with a given height and trading pair from the view service. +message BatchSwapOutputDataRequest { + uint64 height = 2; + core.component.dex.v1.TradingPair trading_pair = 3; +} + +message BatchSwapOutputDataResponse { + core.component.dex.v1.BatchSwapOutputData data = 1; +} + +message SwapExecutionRequest { + uint64 height = 2; + core.component.dex.v1.DirectedTradingPair trading_pair = 3; +} + +message SwapExecutionResponse { + core.component.dex.v1.SwapExecution swap_execution = 1; +} + +message ArbExecutionRequest { + uint64 height = 2; +} + +message ArbExecutionResponse { + core.component.dex.v1.SwapExecution swap_execution = 1; + uint64 height = 2; +} + +message SwapExecutionsRequest { + // If present, only return swap executions occurring after the given height. + uint64 start_height = 2; + // If present, only return swap executions occurring before the given height. + uint64 end_height = 3; + // If present, filter swap executions by the given trading pair. + core.component.dex.v1.DirectedTradingPair trading_pair = 4; +} + +message SwapExecutionsResponse { + core.component.dex.v1.SwapExecution swap_execution = 1; + uint64 height = 2; + core.component.dex.v1.DirectedTradingPair trading_pair = 3; +} + +message ArbExecutionsRequest { + // If present, only return arb executions occurring after the given height. + uint64 start_height = 2; + // If present, only return arb executions occurring before the given height. + uint64 end_height = 3; +} + +message ArbExecutionsResponse { + core.component.dex.v1.SwapExecution swap_execution = 1; + uint64 height = 2; +} + +message LiquidityPositionsRequest { + // If true, include closed and withdrawn positions. + bool include_closed = 4; +} + +message LiquidityPositionsResponse { + core.component.dex.v1.Position data = 1; +} + +message LiquidityPositionByIdRequest { + core.component.dex.v1.PositionId position_id = 2; +} + +message LiquidityPositionByIdResponse { + core.component.dex.v1.Position data = 1; +} + +message LiquidityPositionsByIdRequest { + repeated core.component.dex.v1.PositionId position_id = 2; +} + +message LiquidityPositionsByIdResponse { + core.component.dex.v1.Position data = 1; +} + +message LiquidityPositionsByPriceRequest { + // The directed trading pair to request positions for + core.component.dex.v1.DirectedTradingPair trading_pair = 2; + // The maximum number of positions to return. + uint64 limit = 5; +} + +message LiquidityPositionsByPriceResponse { + core.component.dex.v1.Position data = 1; + core.component.dex.v1.PositionId id = 2; +} + +message SpreadRequest { + core.component.dex.v1.TradingPair trading_pair = 2; +} + +message SpreadResponse { + // The best position when trading 1 => 2. + core.component.dex.v1.Position best_1_to_2_position = 1; + // The best position when trading 2 => 1. + core.component.dex.v1.Position best_2_to_1_position = 2; + // An approximation of the effective price when trading 1 => 2. + double approx_effective_price_1_to_2 = 3; + // An approximation of the effective price when trading 2 => 1. + double approx_effective_price_2_to_1 = 4; +} + +message SimulateTradeRequest { + message Routing { + oneof setting { + Default default_ = 1; + SingleHop single_hop = 2; + } + + message SingleHop {} + message Default {} + } + + core.asset.v1.Value input = 1; + core.asset.v1.AssetId output = 2; + Routing routing = 3; +} + +message SimulateTradeResponse { + core.component.dex.v1.SwapExecution output = 1; + // Estimated input amount that will not be swapped due to liquidity + asset.v1.Value unfilled = 2; +} + +message EventSwap { + // The trading pair to swap. + TradingPair trading_pair = 1; + // The amount for asset 1. + num.v1.Amount delta_1_i = 2; + // The amount for asset 2. + num.v1.Amount delta_2_i = 3; + // The swap commitment. + crypto.tct.v1.StateCommitment swap_commitment = 4; +} + +message EventSwapClaim { + // The trading pair that is subject of the swap claim. + TradingPair trading_pair = 1; + // Note commitment for the first asset. + crypto.tct.v1.StateCommitment output_1_commitment = 2; + // Note commitment for the second asset. + crypto.tct.v1.StateCommitment output_2_commitment = 3; + // The nullifier for the swap commitment. + component.sct.v1.Nullifier nullifier = 4; +} + +message EventPositionOpen { + // Position ID. + PositionId position_id = 1; + // The trading pair to open. + TradingPair trading_pair = 2; + // The amount for asset 1. + num.v1.Amount reserves_1 = 3; + // The amount for asset 2. + num.v1.Amount reserves_2 = 4; + // The trading fee for the position, expressed in basis points. + // e.g. 2% fee is expressed as 200, 100% fee is expressed as 10000; + uint32 trading_fee = 5; + // The full position. + // + // This is somewhat redundant, but contains any information not present above. + Position position = 6; +} + +message EventPositionClose { + // The ID of the closed position + PositionId position_id = 1; +} + +message EventQueuePositionClose { + // The ID of the position queued that is closed for closure. + PositionId position_id = 1; +} + +message EventPositionWithdraw { + // The ID of the withdrawn position. + PositionId position_id = 1; + // The trading pair of the withdrawn position. + TradingPair trading_pair = 2; + // The reserves of asset 1 of the withdrawn position. + num.v1.Amount reserves_1 = 3; + // The reserves of asset 2 of the withdrawn position. + num.v1.Amount reserves_2 = 4; + // The sequence number of the withdrawal. + uint64 sequence = 5; +} + +message EventPositionExecution { + // The ID of the position executed against. + PositionId position_id = 1; + // The trading pair of the position executed against. + TradingPair trading_pair = 2; + // The reserves of asset 1 of the position after execution. + num.v1.Amount reserves_1 = 3; + // The reserves of asset 2 of the position after execution. + num.v1.Amount reserves_2 = 4; + // The reserves of asset 1 of the position before execution. + num.v1.Amount prev_reserves_1 = 5; + // The reserves of asset 2 of the position before execution. + num.v1.Amount prev_reserves_2 = 6; + // Context: the end-to-end route that was being traversed during execution. + DirectedTradingPair context = 7; +} + +message EventBatchSwap { + // The BatchSwapOutputData containing the results of the batch swap. + BatchSwapOutputData batch_swap_output_data = 1; + // The record of execution for the batch swap in the 1 -> 2 direction. + SwapExecution swap_execution_1_for_2 = 2; + // The record of execution for the batch swap in the 2 -> 1 direction. + SwapExecution swap_execution_2_for_1 = 3; +} + +message EventArbExecution { + // The height at which the arb execution occurred. + uint64 height = 1; + // The record of execution for the arb execution. + SwapExecution swap_execution = 2; +} + +// Indicates that value was added to the DEX. +message EventValueCircuitBreakerCredit { + // The asset ID being deposited into the DEX. + asset.v1.AssetId asset_id = 1; + // The previous balance of the asset in the DEX. + num.v1.Amount previous_balance = 2; + // The new balance of the asset in the DEX. + num.v1.Amount new_balance = 3; +} + +// Indicates that value is leaving the DEX. +message EventValueCircuitBreakerDebit { + // The asset ID being deposited into the DEX. + asset.v1.AssetId asset_id = 1; + // The previous balance of the asset in the DEX. + num.v1.Amount previous_balance = 2; + // The new balance of the asset in the DEX. + num.v1.Amount new_balance = 3; +} + +message DexParameters { + // Whether or not the DEX is enabled. + bool is_enabled = 1; + // The list of fixed candidates for routing. + repeated asset.v1.AssetId fixed_candidates = 2; + // The number of hops to traverse while routing from A to B. + uint32 max_hops = 3; + // The maximum number of positions per trading pair. + // If this number is exceeded, positions with the least + // inventory get evicted from the DEX. + uint32 max_positions_per_pair = 4; + // The maximum number of routing and execution steps to be performed + // for a single pair + uint32 max_execution_budget = 5; +} + +message GenesisContent { + // The initial parameters for the DEX. + DexParameters dex_params = 1; +} + +message CandlestickData { + // The height of the candlestick data. + uint64 height = 1; + // The first observed price during the block execution. + double open = 2; + // The last observed price during the block execution. + double close = 3; + // The highest observed price during the block execution. + double high = 4; + // The lowest observed price during the block execution. + double low = 5; + // The volume that traded "directly", during individual position executions. + double direct_volume = 6; + // The volume that traded as part of swaps, which could have traversed multiple routes. + double swap_volume = 7; +} + +message CandlestickDataRequest { + // The directed trading pair to request candlestick data for. + // + // NOTE: the returned data will only have trades from the SOURCE asset to the + // DEST asset, not the other direction. Make another request if you want both + // sets of data. + DirectedTradingPair pair = 1; + // The maximum number of candlestick data points to return. + // + // The server may clamp this limit to a maximum value. + uint64 limit = 2; + // The height to start the query from. + // + // If this is unset (= 0), the server will return the most recent data points. + uint64 start_height = 3; +} + +message CandlestickDataResponse { + // The candlestick data points. + repeated CandlestickData data = 1; +} + +message CandlestickDataStreamRequest { + // The directed trading pair to subscribe to. + DirectedTradingPair pair = 1; +} + +message CandlestickDataStreamResponse { + // The candlestick data point. + CandlestickData data = 1; +} diff --git a/proto/penumbra/penumbra/core/component/distributions/v1/distributions.proto b/proto/penumbra/penumbra/core/component/distributions/v1/distributions.proto new file mode 100644 index 0000000..035037e --- /dev/null +++ b/proto/penumbra/penumbra/core/component/distributions/v1/distributions.proto @@ -0,0 +1,13 @@ +syntax = "proto3"; +package penumbra.core.component.distributions.v1; + +// Distribution configuration data. +message DistributionsParameters { + // The amount of staking token issued per block. + uint64 staking_issuance_per_block = 1; +} + +// Genesis data for the distributions module. +message GenesisContent { + DistributionsParameters distributions_params = 1; +} diff --git a/proto/penumbra/penumbra/core/component/fee/v1/fee.proto b/proto/penumbra/penumbra/core/component/fee/v1/fee.proto new file mode 100644 index 0000000..1284511 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/fee/v1/fee.proto @@ -0,0 +1,120 @@ +syntax = "proto3"; +package penumbra.core.component.fee.v1; + +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/num/v1/num.proto"; + +// Specifies fees paid by a transaction. +message Fee { + // The amount of the token used to pay fees. + num.v1.Amount amount = 1; + // If present, the asset ID of the token used to pay fees. + // If absent, specifies the staking token implicitly. + asset.v1.AssetId asset_id = 2; +} + +// Gas usage for a transaction. +// +// Gas used is multiplied by `GasPrices` to determine a `Fee`. +message Gas { + // The amount of block space used. + uint64 block_space = 1; + // The amount of compact block space used. + uint64 compact_block_space = 2; + // The amount of verification cost used. + uint64 verification = 3; + // The amount of execution cost used. + uint64 execution = 4; +} + +message GasPrices { + // The asset ID of the fee token these prices are for. + // + // If absent, specifies the staking token implicitly. + asset.v1.AssetId asset_id = 15; + + // The price per unit block space in terms of the staking token, with an implicit 1,000 denominator. + uint64 block_space_price = 1; + // The price per unit compact block space in terms of the staking token, with an implicit 1,000 denominator. + uint64 compact_block_space_price = 2; + // The price per unit verification cost in terms of the staking token, with an implicit 1,000 denominator. + uint64 verification_price = 3; + // The price per unit execution cost in terms of the staking token, with an implicit 1,000 denominator. + uint64 execution_price = 4; +} + +message FeeTier { + // The tier for the fee. + enum Tier { + TIER_UNSPECIFIED = 0; + TIER_LOW = 1; + TIER_MEDIUM = 2; + TIER_HIGH = 3; + } + + // The selected fee tier. + Tier fee_tier = 1; +} + +// Fee component configuration data. +message FeeParameters { + // Fixed gas prices in the native token used to compute transactions' base + // fees. + // + // In the future, this should be removed and replaced with parameters for + // dynamic gas pricing. + GasPrices fixed_gas_prices = 1; + + // Fixed gas prices in other tokens used to compute transactions' base fees. + // + // In the future, this should be removed and replaced with fixed multiples of + // the native token's price (so that there is one set of dynamically + // determined gas prices in the native token, and derived gas prices in other + // alternative tokens). + // + // If this is empty, no other tokens are accepted for gas. + repeated GasPrices fixed_alt_gas_prices = 2; +} + +// Fee-specific genesis content. +message GenesisContent { + // The FeeParameters present at genesis. + FeeParameters fee_params = 1; +} + +// Query operations for the fee component. +service QueryService { + // Get the current gas prices. + rpc CurrentGasPrices(CurrentGasPricesRequest) returns (CurrentGasPricesResponse); +} + +message CurrentGasPricesRequest {} + +message CurrentGasPricesResponse { + // The current gas prices, in the preferred (native) token. + GasPrices gas_prices = 1; + // Other gas prices for other accepted tokens. + repeated GasPrices alt_gas_prices = 2; +} + +// Emitted during fee payment. +message EventPaidFee { + // The fee paid. + Fee fee = 1; + // The base fee that was required. + Fee base_fee = 2; + // The tip that was paid to the proposer. + Fee tip = 3; + // The gas used to compute the base fee. + Gas gas_used = 4; +} + +// Emitted as a summary of fees in the block. +message EventBlockFees { + // The total fees, after swapping to the native token. + Fee swapped_fee_total = 1; + // The total base fees, after swapping to the native token. + Fee swapped_base_fee_total = 2; + // The total tips, after swapping to the native token. + Fee swapped_tip_total = 3; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/component/funding/v1/funding.proto b/proto/penumbra/penumbra/core/component/funding/v1/funding.proto new file mode 100644 index 0000000..6c3f3b2 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/funding/v1/funding.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package penumbra.core.component.funding.v1; + +import "penumbra/core/num/v1/num.proto"; + +// Funding component configuration data. +message FundingParameters {} + +// Genesis data for the funding component. +message GenesisContent { + FundingParameters funding_params = 1; +} + +// Indicates that a funding stream reward was paid. +message EventFundingStreamReward { + // The recipient of the funding stream reward. + // This is a string value for future extensibility. + // Currently it will be either "community-pool" + // or an address. + string recipient = 1; + // The epoch for which the reward was paid. + uint64 epoch_index = 2; + // The amount of the reward, in staking tokens. + num.v1.Amount reward_amount = 3; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/component/governance/v1/governance.proto b/proto/penumbra/penumbra/core/component/governance/v1/governance.proto new file mode 100644 index 0000000..25d7ae6 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/governance/v1/governance.proto @@ -0,0 +1,591 @@ +syntax = "proto3"; +package penumbra.core.component.governance.v1; + +import "google/protobuf/any.proto"; +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/auction/v1/auction.proto"; +import "penumbra/core/component/community_pool/v1/community_pool.proto"; +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/component/distributions/v1/distributions.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/funding/v1/funding.proto"; +import "penumbra/core/component/ibc/v1/ibc.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; +import "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto"; + +// A Penumbra ZK delegator vote proof. +message ZKDelegatorVoteProof { + bytes inner = 1; +} + +message ProposalSubmit { + // The proposal to be submitted. + governance.v1.Proposal proposal = 1; + // The amount of the proposal deposit. + num.v1.Amount deposit_amount = 3; +} + +message ProposalWithdraw { + // The proposal to be withdrawn. + uint64 proposal = 1; + // The reason for the proposal being withdrawn. + string reason = 2; +} + +message ProposalDepositClaim { + // The proposal to claim the deposit for. + uint64 proposal = 1; + // The expected deposit amount. + num.v1.Amount deposit_amount = 2; + // The outcome of the proposal. + ProposalOutcome outcome = 3; +} + +message ValidatorVote { + // The effecting data for the vote. + ValidatorVoteBody body = 1; + // The vote authorization signature is authorizing data. + penumbra.crypto.decaf377_rdsa.v1.SpendAuthSignature auth_sig = 2; +} + +message ValidatorVoteReason { + string reason = 1; +} + +message ValidatorVoteBody { + // The proposal being voted on. + uint64 proposal = 1; + // The vote. + governance.v1.Vote vote = 2; + // The validator identity. + keys.v1.IdentityKey identity_key = 3; + // The validator governance key. + keys.v1.GovernanceKey governance_key = 4; + // A justification of the vote. + ValidatorVoteReason reason = 5; +} + +message DelegatorVote { + // The effecting data for the vote. + DelegatorVoteBody body = 1; + // The vote authorization signature is authorizing data. + penumbra.crypto.decaf377_rdsa.v1.SpendAuthSignature auth_sig = 2; + // The vote proof is authorizing data. + ZKDelegatorVoteProof proof = 3; +} + +message DelegatorVoteBody { + // The proposal being voted on. + uint64 proposal = 1; + // The start position of the proposal in the TCT. + uint64 start_position = 2; + // The vote. + governance.v1.Vote vote = 3; + // The value of the delegation note. + asset.v1.Value value = 4; + // The amount of the delegation note, in unbonded penumbra. + num.v1.Amount unbonded_amount = 5; + // The nullifier of the input note. + sct.v1.Nullifier nullifier = 6; + // The randomized validating key for the spend authorization signature. + crypto.decaf377_rdsa.v1.SpendVerificationKey rk = 7; +} + +message DelegatorVoteView { + message Visible { + governance.v1.DelegatorVote delegator_vote = 1; + shielded_pool.v1.NoteView note = 2; + } + message Opaque { + governance.v1.DelegatorVote delegator_vote = 1; + } + oneof delegator_vote { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message DelegatorVotePlan { + // The proposal to vote on. + uint64 proposal = 1; + // The start position of the proposal in the TCT. + uint64 start_position = 2; + // The vote to cast. + governance.v1.Vote vote = 3; + // The delegation note to prove that we can vote. + shielded_pool.v1.Note staked_note = 4; + // The position of that delegation note. + uint64 staked_note_position = 5; + // The unbonded amount equivalent to the delegation note. + num.v1.Amount unbonded_amount = 6; + // The randomizer to use for the proof of spend capability. + bytes randomizer = 7; + // The first blinding factor to use for the ZK delegator vote proof. + bytes proof_blinding_r = 8; + // The second blinding factor to use for the ZK delegator vote proof. + bytes proof_blinding_s = 9; +} + +message CommunityPoolDeposit { + // The value to deposit into the Community Pool. + asset.v1.Value value = 1; +} + +message CommunityPoolSpend { + // The value to spend from the Community Pool. + asset.v1.Value value = 1; +} + +message CommunityPoolOutput { + // The value to output from the Community Pool. + asset.v1.Value value = 1; + // The address to send the output to. + keys.v1.Address address = 2; +} + +// A vote on a proposal. +message Vote { + // A vote. + enum Vote { + VOTE_UNSPECIFIED = 0; + VOTE_ABSTAIN = 1; + VOTE_YES = 2; + VOTE_NO = 3; + } + + // The vote. + Vote vote = 1; +} + +// The current state of a proposal. +message ProposalState { + // Voting is in progress and the proposal has not yet concluded voting or been withdrawn. + message Voting {} + + // The proposal has been withdrawn but the voting period is not yet concluded. + message Withdrawn { + // The reason for the withdrawal. + string reason = 1; + } + + // The voting period has ended, and the proposal has been assigned an outcome. + message Finished { + ProposalOutcome outcome = 1; + } + + // The voting period has ended, and the original proposer has claimed their deposit. + message Claimed { + ProposalOutcome outcome = 1; + } + + // The state of the proposal. + oneof state { + Voting voting = 2; + Withdrawn withdrawn = 3; + Finished finished = 4; + Claimed claimed = 5; + } +} + +// The outcome of a concluded proposal. +message ProposalOutcome { + // Whether or not the proposal was withdrawn. + message Withdrawn { + // The reason for withdrawing the proposal during the voting period. + string reason = 1; + } + + // The proposal was passed. + message Passed {} + + // The proposal did not pass. + message Failed { + // Present if the proposal was withdrawn during the voting period. + Withdrawn withdrawn = 1; + } + + // The proposal did not pass, and was slashed. + message Slashed { + // Present if the proposal was withdrawn during the voting period. + Withdrawn withdrawn = 1; + } + + oneof outcome { + Passed passed = 1; + Failed failed = 2; + Slashed slashed = 3; + } +} + +// A tally of votes on a proposal. +message Tally { + // The number of votes in favor of the proposal. + uint64 yes = 1; + // The number of votes against the proposal. + uint64 no = 2; + // The number of abstentions. + uint64 abstain = 3; +} + +// A proposal to be voted upon. +message Proposal { + // The unique identifier of the proposal. + uint64 id = 4; + + // A short title for the proposal. + string title = 1; + + // A natural-language description of the effect of the proposal and its justification. + string description = 2; + + // The proposal's payload. + oneof payload { + Signaling signaling = 5; + Emergency emergency = 6; + ParameterChange parameter_change = 7; + CommunityPoolSpend community_pool_spend = 8; + UpgradePlan upgrade_plan = 9; + FreezeIbcClient freeze_ibc_client = 10; + UnfreezeIbcClient unfreeze_ibc_client = 11; + } + + // A signaling proposal is meant to register a vote on-chain, but does not have an automatic + // effect when passed. + // + // It optionally contains a reference to a commit which contains code to upgrade the chain. + message Signaling { + // The commit to be voted upon, if any is relevant. + string commit = 1; + } + + // An emergency proposal can be passed instantaneously by a 1/3 majority of validators, without + // waiting for the voting period to expire. + // + // If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the + // proposal is passed. + message Emergency { + // If `true`, the chain will halt immediately when the proposal is passed. + bool halt_chain = 1; + } + + // A parameter change proposal describes a replacement of the app parameters, which should take + // effect when the proposal is passed. + message ParameterChange { + // DEPRECATED + ChangedAppParameters old_parameters = 1 [deprecated = true]; + // DEPRECATED + ChangedAppParameters new_parameters = 2 [deprecated = true]; + + // A list of encoded preconditions for the parameter change: even if the + // proposal passes, the update will not be applied if the value of the + // precondition does not match the proposal at the time it is enacted. + // + // This can be empty, in which case the changes will be applied + // unconditionally. + repeated EncodedParameter preconditions = 3; + + // A list of encoded changes to the application parameters. + repeated EncodedParameter changes = 4; + } + + // A Community Pool spend proposal describes zero or more transactions to execute on behalf of the Community Pool, with + // access to its funds, and zero or more scheduled transactions from previous passed proposals to + // cancel. + message CommunityPoolSpend { + // The transaction plan to be executed at the time the proposal is passed. This must be a + // transaction plan which can be executed by the Community Pool, which means it can't require any witness + // data or authorization signatures, but it may use the `CommunityPoolSpend` action. + google.protobuf.Any transaction_plan = 2; + } + + // An upgrade plan describes a candidate upgrade to be executed at a certain height. If passed, the chain + // will halt at the specified height. + message UpgradePlan { + uint64 height = 1; + } + + // Freeze an existing IBC client. + // Like `Emergency` proposals, it is enacted immediately after receiving + // +2/3 of validator votes. + message FreezeIbcClient { + string client_id = 1; + } + + // Unfreeze an existing IBC client. + // Like `Emergency` proposals, it is enacted immediately after receiving + // +2/3 of validator votes. + message UnfreezeIbcClient { + string client_id = 1; + } +} + +// All the different kinds of proposals. +enum ProposalKind { + // To make the linter happy + PROPOSAL_KIND_UNSPECIFIED = 0; + PROPOSAL_KIND_SIGNALING = 1; + PROPOSAL_KIND_EMERGENCY = 2; + PROPOSAL_KIND_PARAMETER_CHANGE = 3; + PROPOSAL_KIND_COMMUNITY_POOL_SPEND = 4; + PROPOSAL_KIND_UPGRADE_PLAN = 5; + PROPOSAL_KIND_FREEZE_IBC_CLIENT = 6; + PROPOSAL_KIND_UNFREEZE_IBC_CLIENT = 7; +} + +// Query operations for the governance component. +service QueryService { + rpc ProposalInfo(ProposalInfoRequest) returns (ProposalInfoResponse); + rpc ProposalList(ProposalListRequest) returns (stream ProposalListResponse); + rpc ProposalData(ProposalDataRequest) returns (ProposalDataResponse); + rpc NextProposalId(NextProposalIdRequest) returns (NextProposalIdResponse); + rpc ValidatorVotes(ValidatorVotesRequest) returns (stream ValidatorVotesResponse); + rpc VotingPowerAtProposalStart(VotingPowerAtProposalStartRequest) returns (VotingPowerAtProposalStartResponse); + rpc AllTalliedDelegatorVotesForProposal(AllTalliedDelegatorVotesForProposalRequest) returns (stream AllTalliedDelegatorVotesForProposalResponse); + // Used for computing voting power ? + rpc ProposalRateData(ProposalRateDataRequest) returns (stream ProposalRateDataResponse); +} + +message ProposalInfoRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; +} + +message ProposalInfoResponse { + // The block height at which the proposal started voting. + uint64 start_block_height = 1; + // The position of the state commitment tree at which the proposal is considered to have started voting. + uint64 start_position = 2; +} + +message ProposalDataRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; +} + +message ProposalDataResponse { + // The proposal metadata. + Proposal proposal = 1; + // The block height at which the proposal started voting. + uint64 start_block_height = 2; + // The block height at which the proposal ends voting. + uint64 end_block_height = 3; + // The position of the state commitment tree at which the proposal is considered to have started voting. + uint64 start_position = 4; + // The current state of the proposal. + ProposalState state = 5; + // The deposit amount paid for the proposal. + penumbra.core.num.v1.Amount proposal_deposit_amount = 6; +} + +// Requests the validator rate data for a proposal. +message ProposalRateDataRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; +} + +// The rate data for a single validator. +message ProposalRateDataResponse { + core.component.stake.v1.RateData rate_data = 1; +} + +// Requests the list of all proposals. +message ProposalListRequest { + // Whether to include proposals that are no longer active.; + bool inactive = 2; + // TODO: we could filter by starting block height here? +} + +// The data for a single proposal. +message ProposalListResponse { + // The proposal metadata. + Proposal proposal = 1; + // The block height at which the proposal started voting. + uint64 start_block_height = 2; + // The block height at which the proposal ends voting. + uint64 end_block_height = 3; + // The position of the state commitment tree at which the proposal is considered to have started voting. + uint64 start_position = 4; + // The current state of the proposal. + ProposalState state = 5; +} + +// Requests the list of all validator votes for a given proposal. +message ValidatorVotesRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; +} + +// The data for a single validator vote. +message ValidatorVotesResponse { + // The vote. + governance.v1.Vote vote = 1; + // The validator identity. + keys.v1.IdentityKey identity_key = 2; +} + +// Governance configuration data. +message GovernanceParameters { + // The number of blocks during which a proposal is voted on. + uint64 proposal_voting_blocks = 1; + // The deposit required to create a proposal. + penumbra.core.num.v1.Amount proposal_deposit_amount = 2; + // The quorum required for a proposal to be considered valid, as a fraction of the total stake + // weight of the network. + string proposal_valid_quorum = 3; + // The threshold for a proposal to pass voting, as a ratio of "yes" votes over "no" votes. + string proposal_pass_threshold = 4; + // The threshold for a proposal to be slashed, regardless of whether the "yes" and "no" votes + // would have passed it, as a ratio of "no" votes over all total votes. + string proposal_slash_threshold = 5; +} + +// Governance genesis state. +message GenesisContent { + // Governance parameters. + GovernanceParameters governance_params = 1; +} + +message EncodedParameter { + // The component name in the `AppParameters`. + // + // This is the ProtoJSON-produced key in the `AppParameters` structure. + string component = 1; + // The parameter key in the component parameters. + // + // This is the ProtoJSON-produced field name in the component's substructure. + string key = 2; + // The parameter value. + // + // This is the ProtoJSON-encoded value of the parameter. + string value = 3; +} + +// DEPRECATED +message ChangedAppParameters { + option deprecated = true; + // Sct module parameters. + core.component.sct.v1.SctParameters sct_params = 1; + // Community Pool module parameters. + core.component.community_pool.v1.CommunityPoolParameters community_pool_params = 2; + // Governance module parameters. + core.component.governance.v1.GovernanceParameters governance_params = 3; + // IBC module parameters. + core.component.ibc.v1.IbcParameters ibc_params = 4; + // Stake module parameters. + core.component.stake.v1.StakeParameters stake_params = 5; + // Fee module parameters. + core.component.fee.v1.FeeParameters fee_params = 6; + // Distributions module parameters. + core.component.distributions.v1.DistributionsParameters distributions_params = 7; + // Funding module parameters. + core.component.funding.v1.FundingParameters funding_params = 8; + // Shielded pool module parameters + core.component.shielded_pool.v1.ShieldedPoolParameters shielded_pool_params = 9; + // DEX component parameters + core.component.dex.v1.DexParameters dex_params = 10; + // Auction module parameters. + core.component.auction.v1.AuctionParameters auction_params = 11; +} + +// DEPRECATED +message ChangedAppParametersSet { + option deprecated = true; + // The set of app parameters at the time the proposal was submitted. + ChangedAppParameters old = 1; + // The new set of parameters the proposal is trying to enact. + ChangedAppParameters new = 2; +} + +message VotingPowerAtProposalStartRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; + // The validator identity key to request information on. + keys.v1.IdentityKey identity_key = 3; +} + +message VotingPowerAtProposalStartResponse { + // The voting power for the given identity key at the start of the proposal. + // TODO: since we don't support optional fields in our protos any more, + // this will be set to 0 if the validator was not active at the start of the proposal. + // Is this potentially an issue? + uint64 voting_power = 1; +} + +message AllTalliedDelegatorVotesForProposalRequest { + // The proposal id to request information on. + uint64 proposal_id = 2; +} + +message AllTalliedDelegatorVotesForProposalResponse { + // The tally of delegator votes for a given validator for the proposal. + Tally tally = 1; + // The validator identity associated with the tally. + keys.v1.IdentityKey identity_key = 2; +} + +message NextProposalIdRequest {} + +message NextProposalIdResponse { + // The next proposal ID. + uint64 next_proposal_id = 1; +} + +// The ratio between two numbers, used in governance to describe vote thresholds and quorums. +message Ratio { + // The numerator. + uint64 numerator = 1; + // The denominator. + uint64 denominator = 2; +} + +message EventDelegatorVote { + // The delegator vote. + DelegatorVote vote = 1; + // The corresponding validator's identity key. + keys.v1.IdentityKey validator_identity_key = 2; +} + +message EventProposalDepositClaim { + // The deposit claim body. + ProposalDepositClaim deposit_claim = 1; +} + +message EventValidatorVote { + // The validator vote. + ValidatorVote vote = 1; + // The validator's voting power at the time of the proposal's start. + uint64 voting_power = 2; +} + +message EventProposalWithdraw { + // Details on the withdrawn proposal. + ProposalWithdraw withdraw = 1; +} + +message EventProposalSubmit { + // Details on the submitted proposal. + ProposalSubmit submit = 1; + // The start height for the proposal. + uint64 start_height = 2; + // The end height for the proposal. + uint64 end_height = 3; +} + +message EventProposalPassed { + // The passed proposal. + Proposal proposal = 1; +} + +message EventProposalFailed { + // The failed proposal. + Proposal proposal = 1; +} + +message EventProposalSlashed { + // The slashed proposal. + Proposal proposal = 1; +} diff --git a/proto/penumbra/penumbra/core/component/ibc/v1/ibc.proto b/proto/penumbra/penumbra/core/component/ibc/v1/ibc.proto new file mode 100644 index 0000000..733ca5a --- /dev/null +++ b/proto/penumbra/penumbra/core/component/ibc/v1/ibc.proto @@ -0,0 +1,100 @@ +syntax = "proto3"; +package penumbra.core.component.ibc.v1; + +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; + +message IbcRelay { + .google.protobuf.Any raw_action = 1; +} + +// FungibleTokenPacketData defines a struct for the packet payload +// See FungibleTokenPacketData spec: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +message FungibleTokenPacketData { + // the token denomination to be transferred + string denom = 1; + // the token amount to be transferred + string amount = 2; + // the return address + string sender = 3; + // the recipient address on the destination chain + string receiver = 4; + // optional memo + string memo = 5; +} + +// A Penumbra transaction action requesting an ICS20 transfer. +message Ics20Withdrawal { + num.v1.Amount amount = 1; + asset.v1.Denom denom = 2; + + // the address on the destination chain to send the transfer to + string destination_chain_address = 3; + + // a "sender" penumbra address to use to return funds from this withdrawal. + // this should be an ephemeral address + keys.v1.Address return_address = 4; + + // The height on the counterparty chain at which this transfer expires, and + // funds are sent back to the return address. + .ibc.core.client.v1.Height timeout_height = 5; + + // The timestamp, in epoch time, after which this transfer will be considered invalid. + // Clients must quantize this value to the nearest minute, to preserve privacy. + // IBC withdrawals that do not quantize timestamps will be rejected. + uint64 timeout_time = 6; + + // The source channel used for the withdrawal + string source_channel = 7; + + // Whether to use a "compat" (bech32, non-m) address for the return address in the withdrawal, + // for compatability with chains that expect to be able to parse the return address as bech32. + bool use_compat_address = 8; +} + +message ClientData { + string client_id = 1; + google.protobuf.Any client_state = 2; // NOTE: left as Any to allow us to add more client types later + string processed_time = 3; + uint64 processed_height = 4; +} + +message ClientCounter { + uint64 counter = 1; +} + +message ConsensusState { + google.protobuf.Any consensus_state = 1; +} + +message VerifiedHeights { + repeated .ibc.core.client.v1.Height heights = 1; +} + +message ConnectionCounter { + uint64 counter = 1; +} + +message ClientConnections { + repeated string connections = 1; +} + +// IBC configuration data. +message IbcParameters { + // Whether IBC (forming connections, processing IBC packets) is enabled. + bool ibc_enabled = 1; + // Whether inbound ICS-20 transfers are enabled + bool inbound_ics20_transfers_enabled = 2; + // Whether outbound ICS-20 transfers are enabled + bool outbound_ics20_transfers_enabled = 3; +} + +// IBC genesis state. +message GenesisContent { + // IBC parameters. + IbcParameters ibc_params = 1; +} diff --git a/proto/penumbra/penumbra/core/component/sct/v1/sct.proto b/proto/penumbra/penumbra/core/component/sct/v1/sct.proto new file mode 100644 index 0000000..742b692 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/sct/v1/sct.proto @@ -0,0 +1,138 @@ +syntax = "proto3"; +package penumbra.core.component.sct.v1; + +import "penumbra/crypto/tct/v1/tct.proto"; +import "google/protobuf/timestamp.proto"; + +// Configuration data for the SCT component. +message SctParameters { + // The default duration of each epoch, in number of blocks. + uint64 epoch_duration = 1; +} + +// Sct-specific genesis content. +message GenesisContent { + // The SctParameters present at genesis. + SctParameters sct_params = 1; +} + +// An epoch is a sequentially numbered collection of contiguous blocks. +message Epoch { + // The unique index of the epoch. + uint64 index = 1; + // The starting height for the epoch. + uint64 start_height = 2; +} + +// Metadata describing the source of a commitment in the state commitment tree. +// +// This message allows clients to track provenance of state commitments, and to +// decide whether or not to download block data. +message CommitmentSource { + // The state commitment was included in the genesis state. + message Genesis {} + // The commitment was created by a transaction. + // + // When included in a `CompactBlock` via a `StatePayload`, the transaction source is "dehydrated" + // by stripping the `id` field and putting empty bytes in its place. When clients perform extended + // transaction fetch, they should match up transaction hashes to "rehydrate" the source info. + message Transaction { + // The transaction ID, if specified. + // + // This field may be omitted to save space, and should not be required to be present. + // If the bytes are missing, the message should be interpreted as "Transaction (Unknown)". + bytes id = 1; + } + // The commitment was created through a validator's funding stream. + message FundingStreamReward { + // The epoch index the rewards were issued in. + uint64 epoch_index = 1; + } + // The commitment was created through a `CommunityPoolOutput` in a governance-initated transaction. + message CommunityPoolOutput {} + // The commitment was created by an inbound ICS20 transfer. + message Ics20Transfer { + // The sequence number of the packet that triggered the transfer + uint64 packet_seq = 1; + // The channel id the transfer happened on + string channel_id = 2; + // The sender address on the counterparty chain + string sender = 3; + } + oneof source { + Transaction transaction = 1; + Ics20Transfer ics_20_transfer = 2; + FundingStreamReward funding_stream_reward = 20; + CommunityPoolOutput community_pool_output = 30; + Genesis genesis = 40; + } +} + +message Nullifier { + bytes inner = 1; +} + +// Records information about what transaction spent a nullifier. +message NullificationInfo { + bytes id = 1; + uint64 spend_height = 2; +} + +// Event recording a new commitment added to the SCT. +message EventCommitment { + crypto.tct.v1.StateCommitment commitment = 1; + uint64 position = 2; + CommitmentSource source = 3; +} + +// Event recording an SCT anchor (global root). +message EventAnchor { + crypto.tct.v1.MerkleRoot anchor = 1; + uint64 height = 2; + google.protobuf.Timestamp timestamp = 3; +} + +// Event recording an SCT epoch root. +message EventEpochRoot { + crypto.tct.v1.MerkleRoot root = 1; + uint64 index = 2; + google.protobuf.Timestamp timestamp = 3; +} + +// Event recording an SCT block root. +message EventBlockRoot { + crypto.tct.v1.MerkleRoot root = 1; + uint64 height = 2; + google.protobuf.Timestamp timestamp = 3; +} + +message EpochByHeightRequest { + uint64 height = 1; +} + +message EpochByHeightResponse { + Epoch epoch = 1; +} + +message AnchorByHeightRequest { + uint64 height = 1; +} + +message AnchorByHeightResponse { + crypto.tct.v1.MerkleRoot anchor = 1; +} + +message TimestampByHeightRequest { + uint64 height = 1; +} + +message TimestampByHeightResponse { + google.protobuf.Timestamp timestamp = 1; +} + +// Query operations for the SCT component. +service QueryService { + rpc AnchorByHeight(AnchorByHeightRequest) returns (AnchorByHeightResponse); + rpc EpochByHeight(EpochByHeightRequest) returns (EpochByHeightResponse); + rpc TimestampByHeight(TimestampByHeightRequest) returns (TimestampByHeightResponse); +} diff --git a/proto/penumbra/penumbra/core/component/shielded_pool/v1/shielded_pool.proto b/proto/penumbra/penumbra/core/component/shielded_pool/v1/shielded_pool.proto new file mode 100644 index 0000000..02251a7 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/shielded_pool/v1/shielded_pool.proto @@ -0,0 +1,277 @@ +syntax = "proto3"; +package penumbra.core.component.shielded_pool.v1; + +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; +import "penumbra/core/txhash/v1/txhash.proto"; +import "penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto"; +import "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto"; +import "penumbra/crypto/tct/v1/tct.proto"; + +// Configuration data for the shielded pool component. +message ShieldedPoolParameters { + FmdParameters fixed_fmd_params = 1 [deprecated = true]; + FmdMetaParameters fmd_meta_params = 2; +} + +// Genesis data for the shielded pool component. +message GenesisContent { + ShieldedPoolParameters shielded_pool_params = 1; + message Allocation { + penumbra.core.num.v1.Amount amount = 1; + string denom = 2; + penumbra.core.keys.v1.Address address = 3; + } + + // The allocations present at genesis + repeated Allocation allocations = 3; +} + +// The parameters which control how the FMD parameters evolve over time. +message FmdMetaParameters { + // A sliding window algorithm for updating the parameters. + message AlgorithmSlidingWindow { + // The window size, in terms of the number of update periods. + // + // The update period is 16 blocks, by default, but can change with governance. + uint32 window_update_periods = 1; + // The number of detections we aim to see per window. + uint32 targeted_detections_per_window = 2; + } + + // How much time users have to transition to new parameters. + uint64 fmd_grace_period_blocks = 1; + // The algorithm governing how the parameters change. + oneof algorithm { + uint32 fixed_precision_bits = 2; + AlgorithmSlidingWindow sliding_window = 3; + } +} + +// Used to potentially store state for the FMD Meta Parameters algorithm. +message FmdMetaParametersAlgorithmState { + // The state used for the fixed algorithm. + message FixedState {} + + // The state used for the sliding window algorithm. + message SlidingWindowState { + // The number of clues previously observed, approximately. + uint32 approximate_clue_count = 1; + } + + oneof state { + FixedState fixed = 1; + SlidingWindowState sliding_window = 2; + } +} + +// Parameters for Fuzzy Message Detection +message FmdParameters { + uint32 precision_bits = 1; + uint64 as_of_block_height = 2; +} + +message Note { + asset.v1.Value value = 1; + bytes rseed = 2; + keys.v1.Address address = 3; +} + +message NoteView { + asset.v1.ValueView value = 1; + bytes rseed = 2; + keys.v1.AddressView address = 3; +} + +// An encrypted note. +// 176 = 80(address) + 16(amount) + 32(asset ID) + 32(rseed) + 16(MAC) bytes. +message NoteCiphertext { + bytes inner = 1; +} + +// The body of an output description, including only the minimal +// data required to scan and process the output. +message NotePayload { + // The note commitment for the output note. 32 bytes. + crypto.tct.v1.StateCommitment note_commitment = 1; + // The encoding of an ephemeral public key. 32 bytes. + bytes ephemeral_key = 2; + // An encryption of the newly created note. + // 176 = 80(address) + 16(amount) + 32(asset ID) + 32(rseed) + 16(MAC) bytes. + NoteCiphertext encrypted_note = 3; +} + +// A Penumbra ZK output proof. +message ZKOutputProof { + bytes inner = 1; +} + +// A Penumbra ZK spend proof. +message ZKSpendProof { + bytes inner = 1; +} + +// A Penumbra ZK nullifier derivation proof. +message ZKNullifierDerivationProof { + bytes inner = 1; +} + +// Spends a shielded note. +message Spend { + // The effecting data of the spend. + SpendBody body = 1; + // The authorizing signature for the spend. + crypto.decaf377_rdsa.v1.SpendAuthSignature auth_sig = 2; + // The proof that the spend is well-formed is authorizing data. + ZKSpendProof proof = 3; +} + +// ABCI Event recording a spend. +message EventSpend { + core.component.sct.v1.Nullifier nullifier = 1; +} + +// ABCI Event recording an output. +message EventOutput { + crypto.tct.v1.StateCommitment note_commitment = 1; +} + +// ABCI Event recording a clue. +message EventBroadcastClue { + crypto.decaf377_fmd.v1.Clue clue = 1; + txhash.v1.TransactionId tx = 2; +} + +// The body of a spend description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +message SpendBody { + // A commitment to the value of the input note. + asset.v1.BalanceCommitment balance_commitment = 1; + // The nullifier of the input note. + sct.v1.Nullifier nullifier = 6; + // The randomized validating key for the spend authorization signature. + crypto.decaf377_rdsa.v1.SpendVerificationKey rk = 4; +} +message SpendView { + message Visible { + Spend spend = 1; + NoteView note = 2; + } + message Opaque { + Spend spend = 1; + } + oneof spend_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message SpendPlan { + // The plaintext note we plan to spend. + Note note = 1; + // The position of the note we plan to spend. + uint64 position = 2; + // The randomizer to use for the spend. + bytes randomizer = 3; + // The blinding factor to use for the value commitment. + bytes value_blinding = 4; + // The first blinding factor to use for the ZK spend proof. + bytes proof_blinding_r = 5; + // The second blinding factor to use for the ZK spend proof. + bytes proof_blinding_s = 6; +} + +// Creates a new shielded note. +message Output { + // The effecting data for the output. + OutputBody body = 1; + // The output proof is authorizing data. + ZKOutputProof proof = 2; +} + +// The body of an output description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +message OutputBody { + // The minimal data required to scan and process the new output note. + NotePayload note_payload = 1; + // A commitment to the value of the output note. 32 bytes. + asset.v1.BalanceCommitment balance_commitment = 2; + // An encrypted key for decrypting the memo. + bytes wrapped_memo_key = 3; + // The key material used for note encryption, wrapped in encryption to the + // sender's outgoing viewing key. 48 bytes. + bytes ovk_wrapped_key = 4; +} + +message OutputView { + message Visible { + Output output = 1; + NoteView note = 2; + keys.v1.PayloadKey payload_key = 3; + } + + message Opaque { + Output output = 1; + } + oneof output_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message OutputPlan { + // The value to send to this output. + asset.v1.Value value = 1; + // The destination address to send it to. + keys.v1.Address dest_address = 2; + // The rseed to use for the new note. + bytes rseed = 3; + // The blinding factor to use for the value commitment. + bytes value_blinding = 4; + // The first blinding factor to use for the ZK output proof. + bytes proof_blinding_r = 5; + // The second blinding factor to use for the ZK output proof. + bytes proof_blinding_s = 6; +} + +// Query operations for the shielded pool component. +service QueryService { + rpc AssetMetadataById(AssetMetadataByIdRequest) returns (AssetMetadataByIdResponse); + + // Requests a stream of asset metadata, given an array of asset IDs. Responses + // may be streamed in a different order from that of the asset IDs in the + // request, and asset IDs unknown to the node will not receive any response + // objects -- that is, the number of responses may be smaller than the length + // of the asset IDs array. + rpc AssetMetadataByIds(AssetMetadataByIdsRequest) returns (stream AssetMetadataByIdsResponse); +} + + +// Requests information on an asset by asset id +message AssetMetadataByIdRequest { + // The asset id to request information on. + core.asset.v1.AssetId asset_id = 2; +} + +message AssetMetadataByIdResponse { + // If present, information on the requested asset. + // + // If the requested asset was unknown, this field will not be present. + core.asset.v1.Metadata denom_metadata = 1; +} + +// Requests information on an asset by multiple asset ids +message AssetMetadataByIdsRequest { + // The asset IDs to request information on. Note that node is neither required + // nor expected to stream responses in the same order as this array. + repeated core.asset.v1.AssetId asset_id = 1; +} + +message AssetMetadataByIdsResponse { + // A single asset metadata streamed from the node. + core.asset.v1.Metadata denom_metadata = 1; +} diff --git a/proto/penumbra/penumbra/core/component/stake/v1/stake.proto b/proto/penumbra/penumbra/core/component/stake/v1/stake.proto new file mode 100644 index 0000000..1c2aa8c --- /dev/null +++ b/proto/penumbra/penumbra/core/component/stake/v1/stake.proto @@ -0,0 +1,411 @@ +syntax = "proto3"; +package penumbra.core.component.stake.v1; + +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; + +// A Penumbra ZK undelegate claim proof. +message ZKUndelegateClaimProof { + bytes inner = 1; +} + +// Describes a validator's configuration data. +message Validator { + // The validator's identity verification key. + keys.v1.IdentityKey identity_key = 1; + // The validator's consensus pubkey for use in Tendermint (Ed25519). + bytes consensus_key = 2; + // The validator's (human-readable) name. + string name = 3; + // The validator's website. + string website = 4; + // The validator's description. + string description = 5; + // Whether the validator is enabled or not. + // + // Disabled validators cannot be delegated to, and immediately begin unbonding. + bool enabled = 8; + // A list of funding streams describing the validator's commission. + repeated FundingStream funding_streams = 6; + // The sequence number determines which validator data takes priority, and + // prevents replay attacks. The chain only accepts new validator definitions + // with increasing sequence numbers. + uint32 sequence_number = 7; + // The validator's governance key. + keys.v1.GovernanceKey governance_key = 9; +} + +// For storing the list of keys of known validators. +message ValidatorList { + repeated keys.v1.IdentityKey validator_keys = 1; +} + +// A portion of a validator's commission. +message FundingStream { + message ToAddress { + // The destination address for the funding stream. + string address = 1; + // The portion of the staking reward for the entire delegation pool + // allocated to this funding stream, specified in basis points. + uint32 rate_bps = 2; + } + + message ToCommunityPool { + // The portion of the staking reward for the entire delegation pool + // allocated to this funding stream, specified in basis points. + uint32 rate_bps = 2; + } + + // The recipient of the funding stream. + oneof recipient { + ToAddress to_address = 1; + ToCommunityPool to_community_pool = 2; + } +} + +// Describes the reward and exchange rates and voting power for a validator in some epoch. +message RateData { + keys.v1.IdentityKey identity_key = 1; + uint64 epoch_index = 2 [deprecated = true]; + num.v1.Amount validator_reward_rate = 4; + // The validator exchange rate between delegation tokens and staking tokens. + // The rate is expressed in fixed-point representation with a scaling factor + // of 10^8. For example, a decimal rate of `1.234` will be represented as + // `123400000` + num.v1.Amount validator_exchange_rate = 5; +} + +// Describes the base reward and exchange rates in some epoch. +message BaseRateData { + uint64 epoch_index = 1; + num.v1.Amount base_reward_rate = 2; + num.v1.Amount base_exchange_rate = 3; +} + +// Describes the current state of a validator on-chain +message ValidatorStatus { + keys.v1.IdentityKey identity_key = 1; + ValidatorState state = 2; + num.v1.Amount voting_power = 3; + BondingState bonding_state = 4; +} + +// Describes the unbonding state of a validator's stake pool. +message BondingState { + enum BondingStateEnum { + BONDING_STATE_ENUM_UNSPECIFIED = 0; + BONDING_STATE_ENUM_BONDED = 1; + BONDING_STATE_ENUM_UNBONDING = 2; + BONDING_STATE_ENUM_UNBONDED = 3; + } + BondingStateEnum state = 1; + uint64 unbonds_at_epoch = 2 [deprecated = true]; + uint64 unbonds_at_height = 3; +} + +// Describes the state of a validator +message ValidatorState { + enum ValidatorStateEnum { + VALIDATOR_STATE_ENUM_UNSPECIFIED = 0; + VALIDATOR_STATE_ENUM_DEFINED = 1; + VALIDATOR_STATE_ENUM_INACTIVE = 2; + VALIDATOR_STATE_ENUM_ACTIVE = 3; + VALIDATOR_STATE_ENUM_JAILED = 4; + VALIDATOR_STATE_ENUM_TOMBSTONED = 5; + VALIDATOR_STATE_ENUM_DISABLED = 6; + } + ValidatorStateEnum state = 1; +} + +// Combines all validator info into a single packet. +message ValidatorInfo { + Validator validator = 1; + ValidatorStatus status = 2; + RateData rate_data = 3; +} + +// A transaction action (re)defining a validator. +message ValidatorDefinition { + // The configuration data for the validator. + Validator validator = 1; + // A signature by the validator's identity key over the validator data. + bytes auth_sig = 2; +} + +// A transaction action adding stake to a validator's delegation pool. +message Delegate { + // The identity key of the validator to delegate to. + keys.v1.IdentityKey validator_identity = 1; + // The index of the epoch in which this delegation was performed. + // The delegation takes effect in the next epoch. + uint64 epoch_index = 2; + // The delegation amount, in units of unbonded stake. + // TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; + num.v1.Amount unbonded_amount = 3; + // The amount of delegation tokens produced by this action. + // + // This is implied by the validator's exchange rate in the specified epoch + // (and should be checked in transaction validation!), but including it allows + // stateless verification that the transaction is internally consistent. + num.v1.Amount delegation_amount = 4; +} + +// A transaction action withdrawing stake from a validator's delegation pool. +message Undelegate { + // The identity key of the validator to undelegate from. + keys.v1.IdentityKey validator_identity = 1; + // The index of the epoch in which this undelegation was performed. + uint64 start_epoch_index = 2 [deprecated = true]; + // The amount to undelegate, in units of unbonding tokens. + num.v1.Amount unbonded_amount = 3; + // The amount of delegation tokens consumed by this action. + // + // This is implied by the validator's exchange rate in the specified epoch + // (and should be checked in transaction validation!), but including it allows + // stateless verification that the transaction is internally consistent. + num.v1.Amount delegation_amount = 4; + // The epoch in which this delegation was performed. + penumbra.core.component.sct.v1.Epoch from_epoch = 5; +} + +// A transaction action finishing an undelegation, converting (slashable) +// "unbonding tokens" to (unslashable) staking tokens. +message UndelegateClaim { + UndelegateClaimBody body = 1; + bytes proof = 2; +} + +message UndelegateClaimBody { + // The identity key of the validator to finish undelegating from. + keys.v1.IdentityKey validator_identity = 1; + // The epoch in which unbonding began, used to verify the penalty. + uint64 start_epoch_index = 2 [deprecated = true]; + // The penalty applied to undelegation, in bps^2 (10e-8). + // In the happy path (no slashing), this is 0. + Penalty penalty = 3; + // The action's contribution to the transaction's value balance. + asset.v1.BalanceCommitment balance_commitment = 4; + /// The starting height of the epoch during which unbonding began. + uint64 unbonding_start_height = 5; +} + +message UndelegateClaimPlan { + // The identity key of the validator to finish undelegating from. + keys.v1.IdentityKey validator_identity = 1; + // The epoch in which unbonding began, used to verify the penalty. + uint64 start_epoch_index = 2 [deprecated = true]; + // The penalty applied to undelegation, in bps^2 (10e-8). + // In the happy path (no slashing), this is 0. + Penalty penalty = 4; + // The amount of unbonding tokens to claim. + // This is a bare number because its denom is determined by the preceding data. + num.v1.Amount unbonding_amount = 5; + // The blinding factor to use for the balance commitment. + bytes balance_blinding = 6; + // The first blinding factor to use for the ZK undelegate claim proof. + bytes proof_blinding_r = 7; + // The second blinding factor to use for the ZK undelegate claim proof. + bytes proof_blinding_s = 8; + // The height during which unbonding began. + uint64 unbonding_start_height = 9; +} + +// A list of pending delegations and undelegations. +message DelegationChanges { + repeated Delegate delegations = 1; + repeated Undelegate undelegations = 2; +} + +// Track's a validator's uptime. +message Uptime { + uint64 as_of_block_height = 1; + uint32 window_len = 2; + bytes bitvec = 3; +} + +// Tracks our view of Tendermint's view of the validator set, so we can keep it +// from getting confused. +message CurrentConsensusKeys { + repeated keys.v1.ConsensusKey consensus_keys = 1; +} + +// Tracks slashing penalties applied to a validator in some epoch. +message Penalty { + bytes inner = 1; +} + +// Query operations for the staking component. +service QueryService { + // Queries for information about a specific validator. + rpc GetValidatorInfo(GetValidatorInfoRequest) returns (GetValidatorInfoResponse); + // Queries the current validator set, with filtering. + rpc ValidatorInfo(ValidatorInfoRequest) returns (stream ValidatorInfoResponse); + rpc ValidatorStatus(ValidatorStatusRequest) returns (ValidatorStatusResponse); + rpc ValidatorPenalty(ValidatorPenaltyRequest) returns (ValidatorPenaltyResponse); + rpc CurrentValidatorRate(CurrentValidatorRateRequest) returns (CurrentValidatorRateResponse); + rpc ValidatorUptime(ValidatorUptimeRequest) returns (ValidatorUptimeResponse); +} + +// Requests information about a specific validator. +message GetValidatorInfoRequest { + // The identity key of the validator. + core.keys.v1.IdentityKey identity_key = 2; +} + +message GetValidatorInfoResponse { + core.component.stake.v1.ValidatorInfo validator_info = 1; +} + +// Requests information on the chain's validators. +message ValidatorInfoRequest { + // Whether or not to return inactive validators + bool show_inactive = 2; +} + +message ValidatorInfoResponse { + core.component.stake.v1.ValidatorInfo validator_info = 1; +} + +message ValidatorStatusRequest { + core.keys.v1.IdentityKey identity_key = 2; +} + +message ValidatorStatusResponse { + core.component.stake.v1.ValidatorStatus status = 1; +} + +// Requests the compounded penalty for a validator over a range of epochs. +message ValidatorPenaltyRequest { + core.keys.v1.IdentityKey identity_key = 2; + uint64 start_epoch_index = 3; + uint64 end_epoch_index = 4; +} + +message ValidatorPenaltyResponse { + core.component.stake.v1.Penalty penalty = 1; +} + +message CurrentValidatorRateRequest { + core.keys.v1.IdentityKey identity_key = 2; +} + +message CurrentValidatorRateResponse { + core.component.stake.v1.RateData data = 1; +} + +message ValidatorUptimeRequest { + core.keys.v1.IdentityKey identity_key = 2; +} + +message ValidatorUptimeResponse { + Uptime uptime = 1; +} + +// Staking configuration data. +message StakeParameters { + // The number of epochs an unbonding note for before being released. + uint64 unbonding_epochs = 1 [deprecated = true]; + // The maximum number of validators in the consensus set. + uint64 active_validator_limit = 2; + // The base reward rate, expressed in basis points of basis points + uint64 base_reward_rate = 3 [deprecated = true]; + // The penalty for slashing due to misbehavior. + uint64 slashing_penalty_misbehavior = 4; + // The penalty for slashing due to downtime. + uint64 slashing_penalty_downtime = 5; + // The number of blocks in the window to check for downtime. + uint64 signed_blocks_window_len = 6; + // The maximum number of blocks in the window each validator can miss signing without slashing. + uint64 missed_blocks_maximum = 7; + // The minimum amount of stake required for a validator to be indexed by the protocol. + num.v1.Amount min_validator_stake = 8; + // The number of blocks that must elapse before an unbonding note can be claimed. + uint64 unbonding_delay = 9; +} + +// Genesis data for the staking component. +message GenesisContent { + // The configuration parameters for the staking component present at genesis + StakeParameters stake_params = 1; + // The list of validators present at genesis. + repeated stake.v1.Validator validators = 2; +} + +// Events for the staking component: + +message EventTombstoneValidator { + // The height at which the offense occurred. + uint64 evidence_height = 1; + // The height at which the evidence was processed. + uint64 current_height = 2; + // The validator identity key. + keys.v1.IdentityKey identity_key = 4; + // The validator's Comet address. + bytes address = 5; + // The voting power for the validator. + uint64 voting_power = 6; +} + +message EventValidatorStateChange { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The new state of the validator. + ValidatorState state = 2; +} + +message EventValidatorVotingPowerChange { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The new voting power of the validator. + num.v1.Amount voting_power = 2; +} + +message EventValidatorBondingStateChange { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The new bonding state of the validator. + BondingState bonding_state = 2; +} + +message EventRateDataChange { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The new rate data. + RateData rate_data = 2; +} + +message EventValidatorDefinitionUpload { + // The validator definition. + Validator validator = 1; +} + +message EventValidatorMissedBlock { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; +} + +message EventDelegate { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The amount of stake delegated, in the staking token. + num.v1.Amount amount = 3; +} + +message EventUndelegate { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The amount of stake undelegated, in the staking token. + num.v1.Amount amount = 3; +} + +// Indicates a slashing penalty was applied to a validator's reward rates. +message EventSlashingPenaltyApplied { + // The validator's identity key. + keys.v1.IdentityKey identity_key = 1; + // The epoch in which the penalty was applied. + uint64 epoch_index = 2; + // The penalty amount after slashing. + Penalty new_penalty = 3; +} diff --git a/proto/penumbra/penumbra/core/keys/v1/keys.proto b/proto/penumbra/penumbra/core/keys/v1/keys.proto new file mode 100644 index 0000000..8b88579 --- /dev/null +++ b/proto/penumbra/penumbra/core/keys/v1/keys.proto @@ -0,0 +1,75 @@ +syntax = "proto3"; +package penumbra.core.keys.v1; + +// A Penumbra address. An address in Penumbra is a Bech32m-encoded +// string, with the human-readable prefix (HRP) `penumbrav2t`. +message Address { + // The bytes of the address. Must be represented as a series of + // `uint8` (i.e. values 0 through 255), with a length of 80 elements. + bytes inner = 1; + + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + string alt_bech32m = 2; +} + +message AddressView { + // A decoded address, with information about the address index and wallet ID visible. + message Decoded { + Address address = 1; + AddressIndex index = 2; + WalletId wallet_id = 3; + } + // An opaque address, with no information about the address index or wallet ID visible. + message Opaque { + Address address = 1; + } + oneof address_view { + Decoded decoded = 1; + Opaque opaque = 2; + } +} + +message PayloadKey { + bytes inner = 1; +} + +message SpendKey { + bytes inner = 1; +} + +message FullViewingKey { + bytes inner = 1; +} + +message WalletId { + bytes inner = 1; +} + +message Diversifier { + bytes inner = 1; +} + +message AddressIndex { + uint32 account = 2; + bytes randomizer = 3; +} + +// A validator's identity key (decaf377-rdsa spendauth verification key). +message IdentityKey { + bytes ik = 1; +} + +// A validator's governance key (decaf377-rdsa spendauth verification key). +message GovernanceKey { + bytes gk = 1; +} + +message ConsensusKey { + bytes inner = 1; +} diff --git a/proto/penumbra/penumbra/core/num/v1/num.proto b/proto/penumbra/penumbra/core/num/v1/num.proto new file mode 100644 index 0000000..edc5c50 --- /dev/null +++ b/proto/penumbra/penumbra/core/num/v1/num.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package penumbra.core.num.v1; + +// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +// of the 128-bit value, respectively. Clients must assemble these bits in their +// implementation into a `uint128` or comparable data structure, in order to model +// the Amount accurately. +message Amount { + uint64 lo = 1; + uint64 hi = 2; +} diff --git a/proto/penumbra/penumbra/core/transaction/.DS_Store b/proto/penumbra/penumbra/core/transaction/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e04001d79b238be4a8ef4d3dd7a2aa9001e299c7 GIT binary patch literal 6148 zcmeH~K}*9h6vvZox{e|Apy)B+b!ewJ9A4_22d`H2pfX!KuvnY1cJ?p^z3Lb8oA`C~ zy(B$M=T*eL2kGx6@4dA7k2NV{jQ1vCn=zX)WaLaZvhxa2XBrfxUhrlgy8j;aC+!;Sf@8uA(HAc~4G~Fjcjl4pm&3R)d9GohsmmExcZPY)oy(6GuI>)wLZvhAYSNVyAO+?XsOqkb`~NBYWfp$q z&zDe-6d(ounF74l_xe3pl-XOqEf4ov0qqVN8s-(~fPp`E2!Ia0N48W@#|8S3=NcB8 UI17%eav&W9lpu5=1%5$+Prc|&Hvj+t literal 0 HcmV?d00001 diff --git a/proto/penumbra/penumbra/core/transaction/v1/transaction.proto b/proto/penumbra/penumbra/core/transaction/v1/transaction.proto new file mode 100644 index 0000000..8ea68e8 --- /dev/null +++ b/proto/penumbra/penumbra/core/transaction/v1/transaction.proto @@ -0,0 +1,383 @@ +syntax = "proto3"; +package penumbra.core.transaction.v1; + +import "google/protobuf/any.proto"; +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/auction/v1/auction.proto"; +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/governance/v1/governance.proto"; +import "penumbra/core/component/ibc/v1/ibc.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/txhash/v1/txhash.proto"; +import "penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto"; +import "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto"; +import "penumbra/crypto/tct/v1/tct.proto"; + +// A Penumbra transaction. +message Transaction { + TransactionBody body = 1; + // The binding signature is stored separately from the transaction body that it signs. + crypto.decaf377_rdsa.v1.BindingSignature binding_sig = 2; + // The root of some previous state of the state commitment tree, used as an anchor for all + // ZK state transition proofs. + crypto.tct.v1.MerkleRoot anchor = 3; +} + +// The body of a transaction. +message TransactionBody { + // A list of actions (state changes) performed by this transaction. + repeated Action actions = 1; + // Parameters determining if a transaction should be accepted by this chain. + TransactionParameters transaction_parameters = 2; + // Detection data for use with Fuzzy Message Detection + DetectionData detection_data = 4; + // The encrypted memo for this transaction. + // + // This field will be present if and only if the transaction has outputs. + MemoCiphertext memo = 5; +} + +// The parameters determining if a transaction should be accepted by the chain. +message TransactionParameters { + // The maximum height that this transaction can be included in the chain. + // + // If zero, there is no maximum. + uint64 expiry_height = 1; + // The chain this transaction is intended for. Including this prevents + // replaying a transaction on one chain onto a different chain. + string chain_id = 2; + // The transaction fee. + component.fee.v1.Fee fee = 3; +} + +// Detection data used by a detection server performing Fuzzy Message Detection. +message DetectionData { + // A list of clues for use with Fuzzy Message Detection. + repeated crypto.decaf377_fmd.v1.Clue fmd_clues = 4; +} + +// A state change performed by a transaction. +message Action { + oneof action { + // Common actions have numbers < 15, to save space. + component.shielded_pool.v1.Spend spend = 1; + component.shielded_pool.v1.Output output = 2; + component.dex.v1.Swap swap = 3; + component.dex.v1.SwapClaim swap_claim = 4; + + // Uncommon actions have numbers > 15. + + component.stake.v1.ValidatorDefinition validator_definition = 16; + component.ibc.v1.IbcRelay ibc_relay_action = 17; + + // Governance: + component.governance.v1.ProposalSubmit proposal_submit = 18; + component.governance.v1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1.ValidatorVote validator_vote = 20; + component.governance.v1.DelegatorVote delegator_vote = 21; + component.governance.v1.ProposalDepositClaim proposal_deposit_claim = 22; + + // Positions + component.dex.v1.PositionOpen position_open = 30; + component.dex.v1.PositionClose position_close = 31; + component.dex.v1.PositionWithdraw position_withdraw = 32; + component.dex.v1.PositionRewardClaim position_reward_claim = 34 [deprecated = true]; + + // (un)delegation + component.stake.v1.Delegate delegate = 40; + component.stake.v1.Undelegate undelegate = 41; + component.stake.v1.UndelegateClaim undelegate_claim = 42; + + // Community Pool + component.governance.v1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1.CommunityPoolDeposit community_pool_deposit = 52; + + // Dutch auctions + component.auction.v1.ActionDutchAuctionSchedule action_dutch_auction_schedule = 53; + component.auction.v1.ActionDutchAuctionEnd action_dutch_auction_end = 54; + component.auction.v1.ActionDutchAuctionWithdraw action_dutch_auction_withdraw = 55; + + component.ibc.v1.Ics20Withdrawal ics20_withdrawal = 200; + } +} + +// A transaction perspective is a bundle of key material and commitment openings +// that allow generating a view of a transaction from that perspective. +message TransactionPerspective { + repeated PayloadKeyWithCommitment payload_keys = 1; + repeated NullifierWithNote spend_nullifiers = 2; + // The openings of note commitments referred to in the transaction + // but not included in the transaction. + repeated component.shielded_pool.v1.Note advice_notes = 3; + // Any relevant address views. + repeated keys.v1.AddressView address_views = 4; + // Any relevant denoms for viewed assets. + repeated asset.v1.Metadata denoms = 5; + // The transaction ID associated with this TransactionPerspective + txhash.v1.TransactionId transaction_id = 6; + + // Any relevant estimated prices + repeated asset.v1.EstimatedPrice prices = 20; + + message ExtendedMetadataById { + asset.v1.AssetId asset_id = 1; + google.protobuf.Any extended_metadata = 2; + } + // Any relevant extended metadata, indexed by asset id. + repeated ExtendedMetadataById extended_metadata = 30; + + // Associates a nullifier with the transaction ID that created the nullified state commitment. + // + // Note: this is _not_ the transaction ID that revealed the nullifier. + // + // Allows walking backwards from a spend to the transaction that created the note. + message CreationTransactionIdByNullifier { + component.sct.v1.Nullifier nullifier = 1; + txhash.v1.TransactionId transaction_id = 2; + } + repeated CreationTransactionIdByNullifier creation_transaction_ids_by_nullifier = 40; + + // Associates a commitment with the transaction ID that eventually nullified it. + // + // Allows walking forwards from an output to the transaction that spent the note. + message NullificationTransactionIdByCommitment { + crypto.tct.v1.StateCommitment commitment = 1; + txhash.v1.TransactionId transaction_id = 2; + } + repeated NullificationTransactionIdByCommitment nullification_transaction_ids_by_commitment = 50; + + // Any relevant BatchSwapOutputData to the transaction. + // + // This can be used to fill in information about swap outputs. + repeated component.dex.v1.BatchSwapOutputData batch_swap_output_data = 60; +} + +message PayloadKeyWithCommitment { + keys.v1.PayloadKey payload_key = 1; + crypto.tct.v1.StateCommitment commitment = 2; +} + +message NullifierWithNote { + component.sct.v1.Nullifier nullifier = 1; + component.shielded_pool.v1.Note note = 2; +} + +// View of a Penumbra transaction. +message TransactionView { + // View of the transaction body + TransactionBodyView body_view = 1; + // The binding signature is stored separately from the transaction body that it signs. + crypto.decaf377_rdsa.v1.BindingSignature binding_sig = 2; + // The root of some previous state of the state commitment tree, used as an anchor for all + // ZK state transition proofs. + crypto.tct.v1.MerkleRoot anchor = 3; +} + +message TransactionBodyView { + // A list views into of actions (state changes) performed by this transaction. + repeated ActionView action_views = 1; + // Transaction parameters. + TransactionParameters transaction_parameters = 2; + // The detection data in this transaction, only populated if + // there are outputs in the actions of this transaction. + DetectionData detection_data = 4; + // An optional view of a transaction memo. It will only be populated if there are + // outputs in the actions of this transaction. + MemoView memo_view = 5; +} + +// A view of a specific state change action performed by a transaction. +message ActionView { + oneof action_view { + // Action types with visible/opaque variants + component.shielded_pool.v1.SpendView spend = 1; + component.shielded_pool.v1.OutputView output = 2; + component.dex.v1.SwapView swap = 3; + component.dex.v1.SwapClaimView swap_claim = 4; + component.governance.v1.DelegatorVoteView delegator_vote = 21; + + // Action types without visible/opaque variants + component.stake.v1.ValidatorDefinition validator_definition = 16; + component.ibc.v1.IbcRelay ibc_relay_action = 17; + + // Governance: + component.governance.v1.ProposalSubmit proposal_submit = 18; + component.governance.v1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1.ValidatorVote validator_vote = 20; + component.governance.v1.ProposalDepositClaim proposal_deposit_claim = 22; + + component.dex.v1.PositionOpen position_open = 30; + component.dex.v1.PositionClose position_close = 31; + component.dex.v1.PositionWithdraw position_withdraw = 32; + component.dex.v1.PositionRewardClaim position_reward_claim = 34 [deprecated = true]; + + component.stake.v1.Delegate delegate = 41; + component.stake.v1.Undelegate undelegate = 42; + // Community Pool + component.governance.v1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1.CommunityPoolDeposit community_pool_deposit = 52; + // Dutch auctions + component.auction.v1.ActionDutchAuctionScheduleView action_dutch_auction_schedule = 53; + component.auction.v1.ActionDutchAuctionEnd action_dutch_auction_end = 54; + component.auction.v1.ActionDutchAuctionWithdrawView action_dutch_auction_withdraw = 55; + + // TODO: we have no way to recover the opening of the undelegate_claim's + // balance commitment, and can only infer the value from looking at the rest + // of the transaction. is that fine? + component.stake.v1.UndelegateClaim undelegate_claim = 43; + component.ibc.v1.Ics20Withdrawal ics20_withdrawal = 200; + } +} + +// The data required to authorize a transaction plan. +message AuthorizationData { + // The computed auth hash for the approved transaction plan. + core.txhash.v1.EffectHash effect_hash = 1; + // The required spend authorizations, returned in the same order as the + // Spend actions in the original request. + repeated crypto.decaf377_rdsa.v1.SpendAuthSignature spend_auths = 2; + // The required delegator vote authorizations, returned in the same order as the + // DelegatorVote actions in the original request. + repeated crypto.decaf377_rdsa.v1.SpendAuthSignature delegator_vote_auths = 3; +} + +// The data required for proving when building a transaction from a plan. +message WitnessData { + // The anchor for the state transition proofs. + crypto.tct.v1.MerkleRoot anchor = 1; + // The auth paths for the notes the transaction spends, in the + // same order as the spends in the transaction plan. + repeated crypto.tct.v1.StateCommitmentProof state_commitment_proofs = 2; +} + +// Describes a planned transaction. Permits clients to prepare a transaction +// prior submission, so that a user can review it prior to authorizing its execution. +// +// The `TransactionPlan` is a fully determined bundle binding all of a transaction's effects. +// The only thing it does not include is the witness data used for proving. +message TransactionPlan { + // The sequence of actions planned for this transaction. + repeated ActionPlan actions = 1; + // Parameters determining if a transaction should be accepted by this chain. + TransactionParameters transaction_parameters = 2; + // Detection data for use with Fuzzy Message Detection + DetectionDataPlan detection_data = 4; + // The memo plan for this transaction. + MemoPlan memo = 5; +} + +message DetectionDataPlan { + repeated CluePlan clue_plans = 5; +} + +// Describes a planned transaction action. +// +// Some transaction Actions don't have any private data and are treated as being plans +// themselves. +message ActionPlan { + oneof action { + component.shielded_pool.v1.SpendPlan spend = 1; + component.shielded_pool.v1.OutputPlan output = 2; + component.dex.v1.SwapPlan swap = 3; + component.dex.v1.SwapClaimPlan swap_claim = 4; + + // This is just a message relayed to the chain. + component.stake.v1.ValidatorDefinition validator_definition = 16; + // This is just a message relayed to the chain. + component.ibc.v1.IbcRelay ibc_relay_action = 17; + // Governance: + component.governance.v1.ProposalSubmit proposal_submit = 18; + component.governance.v1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1.ValidatorVote validator_vote = 20; + component.governance.v1.DelegatorVotePlan delegator_vote = 21; + component.governance.v1.ProposalDepositClaim proposal_deposit_claim = 22; + + component.ibc.v1.Ics20Withdrawal ics20_withdrawal = 200; + + component.dex.v1.PositionOpen position_open = 30; + component.dex.v1.PositionClose position_close = 31; + + // The position withdraw/reward claim actions require balance information so they have Plan types. + component.dex.v1.PositionWithdrawPlan position_withdraw = 32; + component.dex.v1.PositionRewardClaimPlan position_reward_claim = 34 [deprecated = true]; + + // We don't need any extra information (yet) to understand delegations, + // because we don't yet use flow encryption. + component.stake.v1.Delegate delegate = 40; + // We don't need any extra information (yet) to understand undelegations, + // because we don't yet use flow encryption. + component.stake.v1.Undelegate undelegate = 41; + component.stake.v1.UndelegateClaimPlan undelegate_claim = 42; + + // Community Pool + component.governance.v1.CommunityPoolSpend community_pool_spend = 50; + component.governance.v1.CommunityPoolOutput community_pool_output = 51; + component.governance.v1.CommunityPoolDeposit community_pool_deposit = 52; + + // Dutch auctions + component.auction.v1.ActionDutchAuctionSchedule action_dutch_auction_schedule = 53; + component.auction.v1.ActionDutchAuctionEnd action_dutch_auction_end = 54; + component.auction.v1.ActionDutchAuctionWithdrawPlan action_dutch_auction_withdraw = 55; + } +} + +// Describes a plan for forming a `Clue`. +message CluePlan { + // The address. + keys.v1.Address address = 1; + // The random seed to use for the clue plan. + bytes rseed = 2; + // The bits of precision. + uint64 precision_bits = 3; +} + +// Describes a plan for forming the transaction memo. +message MemoPlan { + // The plaintext. + MemoPlaintext plaintext = 1; + // The key to use to encrypt the memo. + bytes key = 2; +} + +// The encrypted memo data describing information about the purpose of a transaction. +message MemoCiphertext { + // The encrypted data. 528 bytes. + bytes inner = 1; +} + +// The plaintext describing information about the purpose of a transaction. +message MemoPlaintext { + // The sender's return address. + // + // This should always be a valid address; the sender is responsible for ensuring + // that if the receiver returns funds to this address, they will not be lost. + keys.v1.Address return_address = 1; + // Free-form text, up to 432 bytes long. + string text = 2; +} + +message MemoPlaintextView { + keys.v1.AddressView return_address = 1; + string text = 2; +} + +message MemoView { + message Visible { + MemoCiphertext ciphertext = 1; + MemoPlaintextView plaintext = 2; + } + + message Opaque { + MemoCiphertext ciphertext = 1; + } + oneof memo_view { + Visible visible = 1; + Opaque opaque = 2; + } +} diff --git a/proto/penumbra/penumbra/core/txhash/v1/txhash.proto b/proto/penumbra/penumbra/core/txhash/v1/txhash.proto new file mode 100644 index 0000000..d477aa8 --- /dev/null +++ b/proto/penumbra/penumbra/core/txhash/v1/txhash.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package penumbra.core.txhash.v1; + +// The hash of a Penumbra transaction's _effecting data_, describing the effects +// of the transaction on the chain state. +message EffectHash { + bytes inner = 1; +} + +// A transaction ID, the Sha256 hash of a transaction. +// +// This is the hash of the plain byte encoding, used by Tendermint. +message TransactionId { + bytes inner = 1; +} diff --git a/proto/penumbra/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto b/proto/penumbra/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto new file mode 100644 index 0000000..f318a63 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/decaf377_fmd/v1/decaf377_fmd.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; +package penumbra.crypto.decaf377_fmd.v1; + +// A clue for use with Fuzzy Message Detection. +message Clue { + bytes inner = 1; +} diff --git a/proto/penumbra/penumbra/crypto/decaf377_frost/v1/decaf377_frost.proto b/proto/penumbra/penumbra/crypto/decaf377_frost/v1/decaf377_frost.proto new file mode 100644 index 0000000..d400282 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/decaf377_frost/v1/decaf377_frost.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; + +package penumbra.crypto.decaf377_frost.v1; + +// A commitment to a polynomial, as a list of group elements. +message VerifiableSecretSharingCommitment { + // Each of these bytes should be the serialization of a group element. + repeated bytes elements = 1; +} + +// The public package sent in round 1 of the DKG protocol. +message DKGRound1Package { + // A commitment to the polynomial for secret sharing. + VerifiableSecretSharingCommitment commitment = 1; + // A proof of knowledge of the underlying secret being shared. + bytes proof_of_knowledge = 2; +} + +// A share of the final signing key. +message SigningShare { + // These bytes should be a valid scalar. + bytes scalar = 1; +} + +// The per-participant package sent in round 2 of the DKG protocol. +message DKGRound2Package { + // This is the share we're sending to that participant. + SigningShare signing_share = 1; +} + +// Represents a commitment to a nonce value. +message NonceCommitment { + // These bytes should be a valid group element. + bytes element = 1; +} + +// Represents the commitments to nonces needed for signing. +message SigningCommitments { + // One nonce to hide them. + NonceCommitment hiding = 1; + // Another to bind them. + NonceCommitment binding = 2; +} + +// A share of the final signature. These get aggregated to make the actual thing. +message SignatureShare { + // These bytes should be a valid scalar. + bytes scalar = 1; +} diff --git a/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto b/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto new file mode 100644 index 0000000..3715a82 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package penumbra.crypto.decaf377_rdsa.v1; + +message SpendAuthSignature { + bytes inner = 1; +} + +message BindingSignature { + bytes inner = 1; +} + +message SpendVerificationKey { + bytes inner = 1; +} diff --git a/proto/penumbra/penumbra/crypto/tct/v1/tct.proto b/proto/penumbra/penumbra/crypto/tct/v1/tct.proto new file mode 100644 index 0000000..afaa805 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/tct/v1/tct.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package penumbra.crypto.tct.v1; + +message StateCommitment { + bytes inner = 1; +} + +message MerkleRoot { + bytes inner = 1; +} + +// An authentication path from a state commitment to the root of the state commitment tree. +message StateCommitmentProof { + StateCommitment note_commitment = 1; + uint64 position = 2; + repeated MerklePathChunk auth_path = 3; // always length 24 +} + +// A set of 3 sibling hashes in the auth path for some note commitment. +message MerklePathChunk { + bytes sibling_1 = 1; + bytes sibling_2 = 2; + bytes sibling_3 = 3; +} diff --git a/proto/penumbra/penumbra/custody/threshold/v1/threshold.proto b/proto/penumbra/penumbra/custody/threshold/v1/threshold.proto new file mode 100644 index 0000000..70af7d6 --- /dev/null +++ b/proto/penumbra/penumbra/custody/threshold/v1/threshold.proto @@ -0,0 +1,122 @@ +syntax = "proto3"; + +package penumbra.custody.threshold.v1; + +import "penumbra/core/component/governance/v1/governance.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/transaction/v1/transaction.proto"; +import "penumbra/crypto/decaf377_frost/v1/decaf377_frost.proto"; + +// A key one can use to verify signatures. +// +// This key can also serve as a unique identifier for users. +message VerificationKey { + bytes inner = 1; +} + +// A signature proving that a message was created by the owner of a verification key. +message Signature { + bytes inner = 1; +} + +// The message the coordinator sends in round 1 of the signing protocol. +message CoordinatorRound1 { + oneof request { + // The plan that the coordinator would like the followers to sign. + core.transaction.v1.TransactionPlan plan = 1; + // The validator definition the coordinator would like the followers to sign. + core.component.stake.v1.Validator validator_definition = 2; + // The validator vote the coordinator would like the followers to sign. + core.component.governance.v1.ValidatorVoteBody validator_vote = 3; + } +} + +// The message the coordinator sends in round 2 of the signing protocol. +message CoordinatorRound2 { + // A commitment along with a FROST identifier. + message IdentifiedCommitments { + // The serialization of a FROST identifier. + bytes identifier = 1; + // The commitments this person has produced for this round of signing. + crypto.decaf377_frost.v1.SigningCommitments commitments = 2; + } + + // A FROST signing package without a message. + // + // We structure things this way because the message is derived from the transaction plan. + // FROST expects the signing package to include the identified commitments *and* + // the message, but we have no need to include the message. + message PartialSigningPackage { + repeated IdentifiedCommitments all_commitments = 1; + } + + // The underlying signing packages being sent to the followers, for each signature. + repeated PartialSigningPackage signing_packages = 1; +} + +// The first message the followers send back to the coordinator when signing. +message FollowerRound1 { + // The inner message that will be signed by the follower. + message Inner { + // One signing commitment pair for each signature requested by the plan, in order. + repeated crypto.decaf377_frost.v1.SigningCommitments commitments = 1; + } + + Inner inner = 1; + // The verification key identifying the sender. + VerificationKey pk = 2; + // A signature over the proto-encoded bytes of inner. + Signature sig = 3; +} + +// The second message the followers send back to the coordinator when signing. +message FollowerRound2 { + // The inner message that will be signed by the follower. + message Inner { + // One share for each signature requested by the plan, in order. + repeated crypto.decaf377_frost.v1.SignatureShare shares = 1; + } + + Inner inner = 1; + // The verification key identifying the sender. + VerificationKey pk = 2; + // A signature over the proto-encoded bytes of inner. + Signature sig = 3; +} + +// The first message we broadcast in the DKG protocol. +message DKGRound1 { + // The package we're sending to other people + crypto.decaf377_frost.v1.DKGRound1Package pkg = 1; + // A commitment to a share of the nullifier-deriving key + bytes nullifier_commitment = 2; + // An encryption key for the second round. + bytes epk = 3; + // A verification key establishing an identity for the sender of this message. + bytes vk = 4; +} + +// The second message we broadcast in the DKG protocol. +message DKGRound2 { + // A round2 package, encrypted, along with an identifier for the recipient. + message TargetedPackage { + // A verification key identifying the recipient. + bytes vk = 1; + // The ciphertext of an encrypted frost package for round 2. + bytes encrypted_package = 2; + } + + // An inner message that will be signed. + message Inner { + // Encrypted packages for each recipient. + repeated TargetedPackage encrypted_packages = 1; + // An opening of the share of the nullifier-deriving key commitment + bytes nullifier = 2; + } + + Inner inner = 1; + // The verification key identifying the sender. + bytes vk = 2; + // A signature over the proto-encoded inner message. + bytes sig = 3; +} diff --git a/proto/penumbra/penumbra/custody/v1/custody.proto b/proto/penumbra/penumbra/custody/v1/custody.proto new file mode 100644 index 0000000..6c50561 --- /dev/null +++ b/proto/penumbra/penumbra/custody/v1/custody.proto @@ -0,0 +1,131 @@ +syntax = "proto3"; + +package penumbra.custody.v1; + +import "penumbra/core/component/governance/v1/governance.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/transaction/v1/transaction.proto"; +import "penumbra/crypto/decaf377_rdsa/v1/decaf377_rdsa.proto"; + +// The custody protocol is used by a wallet client to request authorization for +// a transaction they've constructed. +// +// Modeling transaction authorization as an asynchronous RPC call encourages +// software to be written in a way that has a compatible data flow with a "soft +// HSM", threshold signing, a hardware wallet, etc. +// +// The custody protocol does not trust the client to authorize spends, so +// custody requests must contain sufficient information for the custodian to +// understand the transaction and determine whether or not it should be +// authorized. +service CustodyService { + // Requests authorization of the transaction with the given description. + rpc Authorize(AuthorizeRequest) returns (AuthorizeResponse); + + // Requests authorization of the given validator definition update. + rpc AuthorizeValidatorDefinition(AuthorizeValidatorDefinitionRequest) returns (AuthorizeValidatorDefinitionResponse); + + // Requests authorization of the given validator vote. + rpc AuthorizeValidatorVote(AuthorizeValidatorVoteRequest) returns (AuthorizeValidatorVoteResponse); + + // Requests the full viewing key from the custodian. + // + // Custody backends should decide whether to honor this request, and how to + // control access to it. + rpc ExportFullViewingKey(ExportFullViewingKeyRequest) returns (ExportFullViewingKeyResponse); + + // Displays an address to a user for confirmation. + // + // Custody backends with user interaction should present the address to the + // user and wait for explicit confirmation before returning. + // + // Non-interactive custody backends may return immediately. + rpc ConfirmAddress(ConfirmAddressRequest) returns (ConfirmAddressResponse); +} + +message AuthorizeRequest { + // The transaction plan to authorize. + core.transaction.v1.TransactionPlan plan = 1; + + // Optionally, pre-authorization data, if required by the custodian. + // + // Pre-authorization data is backend-specific, and backends are free to ignore it. + // + // Multiple `PreAuthorization` packets can be included in a single request, + // to support multi-party pre-authorizations. + repeated PreAuthorization pre_authorizations = 3; +} + +message AuthorizeResponse { + core.transaction.v1.AuthorizationData data = 1; +} + +message AuthorizeValidatorDefinitionRequest { + // The validator definition to authorize. + core.component.stake.v1.Validator validator_definition = 1; + + // Optionally, pre-authorization data, if required by the custodian. + // + // Pre-authorization data is backend-specific, and backends are free to ignore it. + // + // Multiple `PreAuthorization` packets can be included in a single request, + // to support multi-party pre-authorizations. + repeated PreAuthorization pre_authorizations = 3; +} + +message AuthorizeValidatorDefinitionResponse { + // The authorization signature for the validator definition. + crypto.decaf377_rdsa.v1.SpendAuthSignature validator_definition_auth = 1; +} + +message AuthorizeValidatorVoteRequest { + // The validator vote to authorize. + core.component.governance.v1.ValidatorVoteBody validator_vote = 1; + + // Optionally, pre-authorization data, if required by the custodian. + // + // Pre-authorization data is backend-specific, and backends are free to ignore it. + // + // Multiple `PreAuthorization` packets can be included in a single request, + // to support multi-party pre-authorizations. + repeated PreAuthorization pre_authorizations = 3; +} + +message AuthorizeValidatorVoteResponse { + // The authorization signature for the validator vote. + crypto.decaf377_rdsa.v1.SpendAuthSignature validator_vote_auth = 1; +} + +// A pre-authorization packet. This allows a custodian to delegate (partial) +// signing authority to other authorization mechanisms. Details of how a +// custodian manages those keys are out-of-scope for the custody protocol and +// are custodian-specific. +message PreAuthorization { + // An Ed25519-based preauthorization, containing an Ed25519 signature over the + // `TransactionPlan`. + message Ed25519 { + // The Ed25519 verification key used to verify the signature. + bytes vk = 1; + // The Ed25519 signature over the `TransactionPlan`. + bytes sig = 2; + } + oneof pre_authorization { + Ed25519 ed25519 = 1; + } +} + +message ExportFullViewingKeyRequest {} + +message ExportFullViewingKeyResponse { + // The full viewing key. + core.keys.v1.FullViewingKey full_viewing_key = 1; +} + +message ConfirmAddressRequest { + core.keys.v1.AddressIndex address_index = 1; +} + +message ConfirmAddressResponse { + core.keys.v1.Address address = 1; +} diff --git a/proto/penumbra/penumbra/tools/summoning/v1/summoning.proto b/proto/penumbra/penumbra/tools/summoning/v1/summoning.proto new file mode 100644 index 0000000..96c99dd --- /dev/null +++ b/proto/penumbra/penumbra/tools/summoning/v1/summoning.proto @@ -0,0 +1,102 @@ +syntax = "proto3"; + +package penumbra.tools.summoning.v1; + +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; + +// Runs a Phase 2 MPC ceremony with dynamic slot allocation. +service CeremonyCoordinatorService { + // The protocol used to participate in the ceremony. + // + // The message flow is + // ``` + // Client Server + // Identify ===========> + // <=========== Position (repeated) + // <=========== ContributeNow + // Contribution ===========> + // <=========== Confirm + // ``` + rpc Participate(stream ParticipateRequest) returns (stream ParticipateResponse); +} + +message ParticipateRequest { + // Sent at the beginning of the connection to identify the participant. + message Identify { + core.keys.v1.Address address = 1; + } + + // Sent by the participant after getting a `ContributeNow` message. + message Contribution { + CeremonyCrs updated = 1; + CeremonyLinkingProof update_proofs = 2; + CeremonyParentHashes parent_hashes = 3; + } + + oneof msg { + Identify identify = 1; + Contribution contribution = 2; + } +} + +message CeremonyCrs { + bytes spend = 100; + bytes output = 101; + bytes delegator_vote = 102; + bytes undelegate_claim = 103; + bytes swap = 104; + bytes swap_claim = 105; + bytes nullifer_derivation_crs = 106; +} + +message CeremonyLinkingProof { + bytes spend = 100; + bytes output = 101; + bytes delegator_vote = 102; + bytes undelegate_claim = 103; + bytes swap = 104; + bytes swap_claim = 105; + bytes nullifer_derivation_crs = 106; +} + +message CeremonyParentHashes { + bytes spend = 100; + bytes output = 101; + bytes delegator_vote = 102; + bytes undelegate_claim = 103; + bytes swap = 104; + bytes swap_claim = 105; + bytes nullifer_derivation_crs = 106; +} + +message ParticipateResponse { + // Streamed to the participant to inform them of their position in the queue. + message Position { + // The position of the participant in the queue. + uint32 position = 1; + // The total number of participants in the queue. + uint32 connected_participants = 2; + // The bid for the most recently executed contribution slot. + core.num.v1.Amount last_slot_bid = 3; + // The participant's current bid. + core.num.v1.Amount your_bid = 4; + } + + // Sent to the participant to inform them that they should contribute now. + message ContributeNow { + // The most recent CRS, which the participant should update. + CeremonyCrs parent = 1; + } + + // Sent to the participant to confim their contribution was accepted. + message Confirm { + uint64 slot = 1; + } + + oneof msg { + Position position = 1; + ContributeNow contribute_now = 2; + Confirm confirm = 3; + } +} diff --git a/proto/penumbra/penumbra/util/tendermint_proxy/v1/tendermint_proxy.proto b/proto/penumbra/penumbra/util/tendermint_proxy/v1/tendermint_proxy.proto new file mode 100644 index 0000000..f5950d2 --- /dev/null +++ b/proto/penumbra/penumbra/util/tendermint_proxy/v1/tendermint_proxy.proto @@ -0,0 +1,153 @@ +syntax = "proto3"; +package penumbra.util.tendermint_proxy.v1; + +import "google/protobuf/timestamp.proto"; +import "tendermint/crypto/proof.proto"; +import "tendermint/p2p/types.proto"; +import "tendermint/types/block.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/validator.proto"; + +// Defines the gRPC query service for proxying requests to an upstream Tendermint RPC. +service TendermintProxyService { + // Status queries the current status. + rpc GetStatus(GetStatusRequest) returns (GetStatusResponse) {} + + // Broadcast a transaction asynchronously. + rpc BroadcastTxAsync(BroadcastTxAsyncRequest) returns (BroadcastTxAsyncResponse) {} + + // Broadcast a transaction synchronously. + rpc BroadcastTxSync(BroadcastTxSyncRequest) returns (BroadcastTxSyncResponse) {} + + // Fetch a transaction by hash. + rpc GetTx(GetTxRequest) returns (GetTxResponse) {} + + // ABCIQuery defines a query handler that supports ABCI queries directly to the + // application, bypassing Tendermint completely. The ABCI query must contain + // a valid and supported path, including app, custom, p2p, and store. + rpc ABCIQuery(ABCIQueryRequest) returns (ABCIQueryResponse) {} + + // GetBlockByHeight queries block for given height. + rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) {} +} + +// GetTxRequest is the request type for the GetTx RPC method. +message GetTxRequest { + // Hash of transaction to retrieve + bytes hash = 1; + // Include proofs of the transaction's inclusion in the block + bool prove = 2; +} + +// GetTxResponse is the response type for the GetTx RPC method. +message GetTxResponse { + // Hash of transaction + bytes hash = 1; + uint64 height = 2; + uint64 index = 3; + TxResult tx_result = 4; + bytes tx = 5; +} + +message TxResult { + string log = 1; + uint64 gas_wanted = 2; + uint64 gas_used = 3; + repeated Tag tags = 4; +} + +message Tag { + bytes key = 1; + bytes value = 2; + bool index = 3; +} + +// BroadcastTxAsyncRequest is the request type for the BroadcastTxAsync RPC method. +message BroadcastTxAsyncRequest { + bytes params = 1; + uint64 req_id = 2; +} + +// BroadcastTxAsyncResponse is the response type for the BroadcastTxAsync RPC method. +message BroadcastTxAsyncResponse { + uint64 code = 1; + bytes data = 2; + string log = 3; + bytes hash = 4; +} + +// BroadcastTxSyncRequest is the request type for the BroadcastTxSync RPC method. +message BroadcastTxSyncRequest { + bytes params = 1; + uint64 req_id = 2; +} + +// BroadcastTxSyncResponse is the response type for the BroadcastTxSync RPC method. +message BroadcastTxSyncResponse { + uint64 code = 1; + bytes data = 2; + string log = 3; + bytes hash = 4; +} + +// GetStatusRequest is the request type for the Query/GetStatus RPC method. +message GetStatusRequest {} + +// GetStatusResponse is the response type for the Query/GetStatus RPC method. +message GetStatusResponse { + .tendermint.p2p.DefaultNodeInfo node_info = 1; + SyncInfo sync_info = 2; + .tendermint.types.Validator validator_info = 3; +} + +message SyncInfo { + bytes latest_block_hash = 1; + bytes latest_app_hash = 2; + uint64 latest_block_height = 3; + google.protobuf.Timestamp latest_block_time = 4; + // These are implemented in tendermint, but not + // in tendermint-rpc. + // bytes earliest_block_hash = 5; + // bytes earliest_app_hash = 6; + // uint64 earliest_block_height = 7; + // google.protobuf.Timestamp earliest_block_time = 8; + bool catching_up = 9; +} + +// ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. +message ABCIQueryRequest { + bytes data = 1; + string path = 2; + int64 height = 3; + bool prove = 4; +} + +// ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. +// +// Note: This type is a duplicate of the ResponseQuery proto type defined in +// Tendermint. +message ABCIQueryResponse { + uint32 code = 1; + // DEPRECATED: use "value" instead + reserved 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 index = 5; + bytes key = 6; + bytes value = 7; + .tendermint.crypto.ProofOps proof_ops = 8; + int64 height = 9; + string codespace = 10; +} + +// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightRequest { + int64 height = 1; +} + +// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightResponse { + .tendermint.types.BlockID block_id = 1; + + .tendermint.types.Block block = 2; +} diff --git a/proto/penumbra/penumbra/view/v1/view.proto b/proto/penumbra/penumbra/view/v1/view.proto new file mode 100644 index 0000000..3a11c35 --- /dev/null +++ b/proto/penumbra/penumbra/view/v1/view.proto @@ -0,0 +1,774 @@ +syntax = "proto3"; + +package penumbra.view.v1; + +import "google/protobuf/any.proto"; +import "penumbra/core/app/v1/app.proto"; +import "penumbra/core/asset/v1/asset.proto"; +import "penumbra/core/component/auction/v1/auction.proto"; +import "penumbra/core/component/dex/v1/dex.proto"; +import "penumbra/core/component/fee/v1/fee.proto"; +import "penumbra/core/component/governance/v1/governance.proto"; +import "penumbra/core/component/ibc/v1/ibc.proto"; +import "penumbra/core/component/sct/v1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1/shielded_pool.proto"; +import "penumbra/core/component/stake/v1/stake.proto"; +import "penumbra/core/keys/v1/keys.proto"; +import "penumbra/core/num/v1/num.proto"; +import "penumbra/core/transaction/v1/transaction.proto"; +import "penumbra/core/txhash/v1/txhash.proto"; +import "penumbra/crypto/tct/v1/tct.proto"; + +// The view RPC is used by a view client, who wants to do some +// transaction-related actions, to request data from a view service, which is +// responsible for synchronizing and scanning the public chain state with one or +// more full viewing keys. +service ViewService { + // Get current status of chain sync + rpc Status(StatusRequest) returns (StatusResponse); + + // Stream sync status updates until the view service has caught up with the chain. + // Returns a stream of `StatusStreamResponse`s. + rpc StatusStream(StatusStreamRequest) returns (stream StatusStreamResponse); + + // Queries for notes that have been accepted by the chain. + // Returns a stream of `NotesResponse`s. + rpc Notes(NotesRequest) returns (stream NotesResponse); + + // Returns a stream of `NotesForVotingResponse`s. + rpc NotesForVoting(NotesForVotingRequest) returns (stream NotesForVotingResponse); + + // Queries for metadata about known assets. + // Returns a stream of `AssetsResponse`s. + rpc Assets(AssetsRequest) returns (stream AssetsResponse); + + // Query for metadata about a specific asset, by asset ID. + // + // This is the same as the method on the shielded pool's `QueryService`, but exposing it + // here allows a view server to provide more specific or opinionated asset metadata -- like + // using an asset registry to provide tickers, symbols, etc. + rpc AssetMetadataById(AssetMetadataByIdRequest) returns (AssetMetadataByIdResponse); + + // Query for the current app parameters. + rpc AppParameters(AppParametersRequest) returns (AppParametersResponse); + + // Query for the current gas prices. + rpc GasPrices(GasPricesRequest) returns (GasPricesResponse); + + // Query for the current FMD parameters. + rpc FMDParameters(FMDParametersRequest) returns (FMDParametersResponse); + + // Query for an address given an address index + rpc AddressByIndex(AddressByIndexRequest) returns (AddressByIndexResponse); + + // Query for wallet id + rpc WalletId(WalletIdRequest) returns (WalletIdResponse); + + // Query for an address given an address index + rpc IndexByAddress(IndexByAddressRequest) returns (IndexByAddressResponse); + + // Query for an ephemeral address + rpc EphemeralAddress(EphemeralAddressRequest) returns (EphemeralAddressResponse); + + // Query for balance of a given address. + // Returns a stream of `BalancesResponses`. + rpc Balances(BalancesRequest) returns (stream BalancesResponse); + + // Query for a note by its note commitment, optionally waiting until the note is detected. + rpc NoteByCommitment(NoteByCommitmentRequest) returns (NoteByCommitmentResponse); + + // Query for a swap by its swap commitment, optionally waiting until the swap is detected. + rpc SwapByCommitment(SwapByCommitmentRequest) returns (SwapByCommitmentResponse); + + // Query for all unclaimed swaps. + rpc UnclaimedSwaps(UnclaimedSwapsRequest) returns (stream UnclaimedSwapsResponse); + + // Query for whether a nullifier has been spent, optionally waiting until it is spent. + rpc NullifierStatus(NullifierStatusRequest) returns (NullifierStatusResponse); + + // Query for a given transaction by its hash. + rpc TransactionInfoByHash(TransactionInfoByHashRequest) returns (TransactionInfoByHashResponse); + + // Query for the full transactions in the given range of blocks. + // Returns a stream of `TransactionInfoResponse`s. + rpc TransactionInfo(TransactionInfoRequest) returns (stream TransactionInfoResponse); + + // Query for owned position IDs for the given trading pair and in the given position state. + rpc OwnedPositionIds(OwnedPositionIdsRequest) returns (stream OwnedPositionIdsResponse); + + // Translates a high-level intent ("send X funds to Y address") into a complete transaction plan. + rpc TransactionPlanner(TransactionPlannerRequest) returns (TransactionPlannerResponse); + + // Returns authentication data for the given transaction plan. + // + // This method takes a complete transaction plan, so that the client can get a + // consistent set of authentication paths to a common root for the entire + // transaction. (Otherwise, if a client made multiple requests, the wallet + // service could have advanced the state commitment tree between queries). + rpc Witness(WitnessRequest) returns (WitnessResponse); + + // Like `Witness`, but immediately uses the witness data to build (prove) the transaction. + // + // This method is useful for clients that can't easily do proving themselves, either because + // they're not written in Rust and can't easily import the proving code, or because they don't + // have access to proving keys, or some other reason. + // + // This method streams status updates to the caller before finally returning the transaction. + rpc WitnessAndBuild(WitnessAndBuildRequest) returns (stream WitnessAndBuildResponse); + + // Authorize a transaction plan and build the transaction. + // + // This method is only supported on view servers that have access to a custody + // service. Otherwise, it will fail. + // + // Penumbra's transaction authorization mechanism is designed so transactions + // can be signed and built (proved) concurrently. This allows implementations + // to, e.g., start proving optimistically while presenting the user with an + // approval dialog. + // + // This method streams status updates to the caller before finally returning the transaction. + rpc AuthorizeAndBuild(AuthorizeAndBuildRequest) returns (stream AuthorizeAndBuildResponse); + + // Broadcast a transaction to the network, optionally waiting for full confirmation. + // + // This method streams status updates to the caller before finally returning confirmation. + rpc BroadcastTransaction(BroadcastTransactionRequest) returns (stream BroadcastTransactionResponse); + + // Get delegation tokens for a given address index. Each delegation token will + // be represented by a `ValueView` with the given address index's balance of + // that token. Each `ValueView`'s `extended_metadata` field will contain the + // `ValidatorInfo` of the delegated validator. + rpc DelegationsByAddressIndex(DelegationsByAddressIndexRequest) returns (stream DelegationsByAddressIndexResponse); + + // Get unbonding tokens for the given address index, optionally filtered by + // whether the tokens are currently claimable. + rpc UnbondingTokensByAddressIndex(UnbondingTokensByAddressIndexRequest) returns (stream UnbondingTokensByAddressIndexResponse); + + // Gets the auctions controlled by the user's wallet. + rpc Auctions(AuctionsRequest) returns (stream AuctionsResponse); +} + +// Filters in an `AuctionsRequest` will be combined using `AND` logic -- that +// is, the more filters you add, the fewer responses you're likely to get. +message AuctionsRequest { + // If present, filter balances to only include the account specified by the `AddressIndex`. + core.keys.v1.AddressIndex account_filter = 1; + // If present, include inactive auctions as well as active ones. + bool include_inactive = 2; + // If set, query a fullnode for the current state of the auctions. + bool query_latest_state = 3; + // If present, filter to only include auctions whose IDs are in this array. + repeated core.component.auction.v1.AuctionId auction_ids_filter = 4; +} + +message AuctionsResponse { + core.component.auction.v1.AuctionId id = 1; + // The state of the returned auction. + // + // Only present when `query_latest_state` was provided. + google.protobuf.Any auction = 2; + // The state of any DEX positions relevant to the returned auction. + // + // Only present when `query_latest_state` was provided. + // Could be empty, depending on the auction state. + repeated core.component.dex.v1.Position positions = 3; + // The note recording the auction NFT. + SpendableNoteRecord note_record = 4; + // The sequence number of the auction state _as known to the local view + // service_. Note that the local view service may lag behind the fullnode. For + // example, if the chain hits an auction's `end_height`, but the user hasn't + // yet exchanged their sequence-0 (opened) auction NFT for a sequence-1 + // (closed) auction NFT, the local view service will have a sequnce number of + // 0. + // + // Dutch auctions move from: + // 0 (opened) => 1 (closed) => n (withdrawn) + uint64 local_seq = 5; +} + +message AuthorizeAndBuildRequest { + // The transaction plan to authorize and build. + core.transaction.v1.TransactionPlan transaction_plan = 1; +} + +message AuthorizeAndBuildResponse { + // Signals that building is in progress. + message BuildProgress { + // An approximate progress of the build, from 0 to 1. + float progress = 1; + } + // Signals that the transaction is complete. + message Complete { + // The finished transaction. + penumbra.core.transaction.v1.Transaction transaction = 1; + } + oneof status { + BuildProgress build_progress = 1; + Complete complete = 2; + } +} + +message BroadcastTransactionRequest { + // The transaction to broadcast. + core.transaction.v1.Transaction transaction = 1; + // If true, wait for the view service to detect the transaction during sync. + bool await_detection = 2; +} + +message BroadcastTransactionResponse { + // Signals that the transaction was broadcast successfully (but has not been confirmed). + message BroadcastSuccess { + // The hash of the transaction that was broadcast. + core.txhash.v1.TransactionId id = 1; + } + // Signals that the transaction has been confirmed on-chain and detected by the view server. + // + // Will not be sent unless await_detection was true. + message Confirmed { + // The hash of the transaction that was broadcast. + core.txhash.v1.TransactionId id = 1; + // The height in which the transaction was detected as included in the chain, if any. + uint64 detection_height = 2; + } + oneof status { + BroadcastSuccess broadcast_success = 1; + Confirmed confirmed = 2; + } +} + +message TransactionPlannerRequest { + // The expiry height for the requested TransactionPlan + uint64 expiry_height = 1; + + // The memo for the requested TransactionPlan. + // The memo must be unspecified unless `outputs` is nonempty. + core.transaction.v1.MemoPlaintext memo = 3; + // If present, only spends funds from the given account. + core.keys.v1.AddressIndex source = 4; + + // Request contents + repeated Output outputs = 20; + repeated Spend spends = 21; + repeated Swap swaps = 30; + repeated SwapClaim swap_claims = 31; + repeated Delegate delegations = 40; + repeated Undelegate undelegations = 50; + repeated UndelegateClaim undelegation_claims = 51; + repeated penumbra.core.component.ibc.v1.IbcRelay ibc_relay_actions = 60; + repeated penumbra.core.component.ibc.v1.Ics20Withdrawal ics20_withdrawals = 61; + repeated PositionOpen position_opens = 70; + repeated PositionClose position_closes = 71; + repeated PositionWithdraw position_withdraws = 72; + repeated ActionDutchAuctionSchedule dutch_auction_schedule_actions = 73; + repeated ActionDutchAuctionEnd dutch_auction_end_actions = 74; + repeated ActionDutchAuctionWithdraw dutch_auction_withdraw_actions = 75; + repeated DelegatorVote delegator_votes = 76; + + // Specifies either that the planner should compute fees automatically or that it should use a fixed fee amount. + oneof fee_mode { + // Automatically compute a fee based on gas use. + core.component.fee.v1.FeeTier auto_fee = 100; + // A manually set fee, rather than automatically computing a fee based on gas use. + core.component.fee.v1.Fee manual_fee = 101; + } + + // The epoch index of the transaction being planned. + uint64 epoch_index = 200 [deprecated = true]; + + // The epoch of the transaction being planned. + penumbra.core.component.sct.v1.Epoch epoch = 201; + + // Request message subtypes + message Output { + // The amount and denomination in which the Output is issued. + core.asset.v1.Value value = 1; + // The address to which Output will be sent. + core.keys.v1.Address address = 2; + } + message Spend { + // The input amount and denomination in which the Spend is issued. + core.asset.v1.Value value = 1; + // The source address from which the Spend will be sent. + core.keys.v1.Address address = 2; + } + message Swap { + // The input amount and denomination to be traded in the Swap. + core.asset.v1.Value value = 1; + // The denomination to be received as a Output of the Swap. + core.asset.v1.AssetId target_asset = 2; + // The pre-paid fee to be paid for claiming the Swap outputs. + core.component.fee.v1.Fee fee = 3; + // The address to which swap claim output will be sent. + core.keys.v1.Address claim_address = 4; + } + message SwapClaim { + // SwapCommitment to identify the Swap to be claimed. + // Use the commitment from the Swap message: + // penumbra.core.component.dex.v1.Swap.body.payload.commitment. + crypto.tct.v1.StateCommitment swap_commitment = 1; + } + message Delegate { + core.num.v1.Amount amount = 1; + core.component.stake.v1.RateData rate_data = 3; + } + message Undelegate { + core.asset.v1.Value value = 1; + core.component.stake.v1.RateData rate_data = 2; + } + message UndelegateClaim { + // The identity key of the validator to finish undelegating from. + core.keys.v1.IdentityKey validator_identity = 1; + // The epoch in which unbonding began, used to verify the penalty. + uint64 start_epoch_index = 2 [deprecated = true]; + // The penalty applied to undelegation, in bps^2 (10e-8). + // In the happy path (no slashing), this is 0. + core.component.stake.v1.Penalty penalty = 3; + // The amount of unbonding tokens to claim. + // This is a bare number because its denom is determined by the preceding data. + core.num.v1.Amount unbonding_amount = 4; + // The height at which unbonding began. + uint64 unbonding_start_height = 5; + } + message PositionOpen { + // Contains the data defining the position, sufficient to compute its `PositionId`. + // + // Positions are immutable, so the `PositionData` (and hence the `PositionId`) + // are unchanged over the entire lifetime of the position. + core.component.dex.v1.Position position = 1; + } + message PositionClose { + // The position to close. + core.component.dex.v1.PositionId position_id = 1; + } + message PositionWithdraw { + // The position to withdraw. + core.component.dex.v1.PositionId position_id = 1; + // The position's final reserves. + core.component.dex.v1.Reserves reserves = 2; + // The trading pair of the position. + core.component.dex.v1.TradingPair trading_pair = 3; + } + + message ActionDutchAuctionSchedule { + // The description of the auction to schedule. + core.component.auction.v1.DutchAuctionDescription description = 1; + } + + message ActionDutchAuctionEnd { + // The unique id of the auction to close. + core.component.auction.v1.AuctionId auction_id = 1; + } + + message ActionDutchAuctionWithdraw { + // The auction to withdraw funds from. + core.component.auction.v1.AuctionId auction_id = 1; + // The sequence number of the withdrawal. + uint64 seq = 2; + } + + message DelegatorVote { + // The proposal being voted on. + uint64 proposal = 1; + // The vote. + core.component.governance.v1.Vote vote = 2; + // The block height at which the proposal started voting. + uint64 start_block_height = 3; + // The position of the state commitment tree at which the proposal is considered to have started voting. + uint64 start_position = 4; + // The validators rate data for the proposal. + repeated core.component.stake.v1.RateData rate_data = 5; + } +} + +message TransactionPlannerResponse { + core.transaction.v1.TransactionPlan plan = 1; +} + +message AddressByIndexRequest { + core.keys.v1.AddressIndex address_index = 1; +} + +message AddressByIndexResponse { + core.keys.v1.Address address = 1; +} + +message WalletIdRequest {} + +message WalletIdResponse { + core.keys.v1.WalletId wallet_id = 1; +} + +message IndexByAddressRequest { + core.keys.v1.Address address = 1; +} + +message IndexByAddressResponse { + // Will be absent if given an address not viewable by this viewing service + core.keys.v1.AddressIndex address_index = 1; +} + +message EphemeralAddressRequest { + core.keys.v1.AddressIndex address_index = 1; +} + +message EphemeralAddressResponse { + core.keys.v1.Address address = 1; +} + +message BalancesRequest { + // If present, filter balances to only include the account specified by the `AddressIndex`. + core.keys.v1.AddressIndex account_filter = 1; + // If present, filter balances to only include the specified asset ID. + core.asset.v1.AssetId asset_id_filter = 2; +} + +message BalancesResponse { + // Deprecated: use `account_address` instead. + core.keys.v1.AddressIndex account = 1 [deprecated = true]; + // Deprecated: use `balance_view` instead. + core.asset.v1.Value balance = 2 [deprecated = true]; + + // The default address for the account. + // + // Note that the returned balance is for all funds sent to the account, + // not just funds sent to its default address. + core.keys.v1.AddressView account_address = 3; + // The account's balance, with metadata. + core.asset.v1.ValueView balance_view = 4; +} + +// Requests sync status of the view service. +message StatusRequest {} + +// Returns the status of the view service and whether it is synchronized with the chain state. +message StatusResponse { + // The height the view service has synchronized to so far when doing a full linear sync + uint64 full_sync_height = 1; + // The height the view service has synchronized to so far when doing a partial sync + uint64 partial_sync_height = 2; + // Whether the view service is catching up with the chain state + bool catching_up = 3; +} + +// Requests streaming updates on the sync height until the view service is synchronized. +message StatusStreamRequest {} + +// A streaming sync status update +message StatusStreamResponse { + // The latest known block height + uint64 latest_known_block_height = 1; + // The height the view service has synchronized to so far when doing a full linear sync + uint64 full_sync_height = 2; + // The height the view service has synchronized to so far when doing a partial sync + uint64 partial_sync_height = 3; +} + +// A query for notes known by the view service. +// +// This message uses the fact that all proto fields are optional +// to allow various filtering on the returned notes. +message NotesRequest { + // If set, return spent notes as well as unspent notes. + bool include_spent = 2; + + // If set, only return notes with the specified asset id. + core.asset.v1.AssetId asset_id = 3; + + // If set, only return notes with the specified address incore.component.dex.v1. + core.keys.v1.AddressIndex address_index = 4; + + // If set, stop returning notes once the total exceeds this amount. + // + // Ignored if `asset_id` is unset or if `include_spent` is set. + core.num.v1.Amount amount_to_spend = 6; +} + +// A query for notes to be used for voting on a proposal. +message NotesForVotingRequest { + // The starting height of the proposal. + uint64 votable_at_height = 1; + + // If set, only return notes with the specified asset id. + core.keys.v1.AddressIndex address_index = 3; +} + +message WitnessRequest { + // The transaction plan to witness + core.transaction.v1.TransactionPlan transaction_plan = 3; +} + +message WitnessResponse { + core.transaction.v1.WitnessData witness_data = 1; +} + +message WitnessAndBuildRequest { + penumbra.core.transaction.v1.TransactionPlan transaction_plan = 1; + penumbra.core.transaction.v1.AuthorizationData authorization_data = 2; +} + +message WitnessAndBuildResponse { + // Signals that building is in progress. + message BuildProgress { + // An approximate progress of the build, from 0 to 1. + float progress = 1; + } + // Signals that the transaction is complete. + message Complete { + // The finished transaction. + penumbra.core.transaction.v1.Transaction transaction = 1; + } + oneof status { + BuildProgress build_progress = 1; + Complete complete = 2; + } +} + +// Requests all assets known to the view service. +message AssetsRequest { + // If set to false (default), returns all assets, regardless of whether the rest of the fields of + // the request indicate a filter. + bool filtered = 1; + // Include these specific denominations in the response. + repeated core.asset.v1.Denom include_specific_denominations = 2; + // Include all delegation tokens, to any validator, in the response. + bool include_delegation_tokens = 3; + // Include all unbonding tokens, from any validator, in the response. + bool include_unbonding_tokens = 4; + // Include all LP NFTs in the response. + bool include_lp_nfts = 5; + // Include all proposal NFTs in the response. + bool include_proposal_nfts = 6; + // Include all voting receipt tokens in the response. + bool include_voting_receipt_tokens = 7; +} + +// Requests all assets known to the view service. +message AssetsResponse { + core.asset.v1.Metadata denom_metadata = 2; +} + +// Requests the current app parameters from the view service. +message AppParametersRequest {} + +message AppParametersResponse { + core.app.v1.AppParameters parameters = 1; +} + +// Requests the current gas prices from the view service. +message GasPricesRequest {} + +message GasPricesResponse { + // The current gas prices, in the preferred (native) token. + core.component.fee.v1.GasPrices gas_prices = 1; + // Other gas prices for other accepted tokens. + repeated core.component.fee.v1.GasPrices alt_gas_prices = 2; +} + +// Requests the current FMD parameters from the view service. +message FMDParametersRequest {} + +message FMDParametersResponse { + core.component.shielded_pool.v1.FmdParameters parameters = 1; +} + +message NoteByCommitmentRequest { + crypto.tct.v1.StateCommitment note_commitment = 2; + // If set to true, waits to return until the requested note is detected. + bool await_detection = 3; +} + +message NoteByCommitmentResponse { + SpendableNoteRecord spendable_note = 1; +} + +message SwapByCommitmentRequest { + crypto.tct.v1.StateCommitment swap_commitment = 2; + // If set to true, waits to return until the requested swap is detected. + bool await_detection = 3; +} + +message SwapByCommitmentResponse { + SwapRecord swap = 1; +} + +message UnclaimedSwapsRequest {} + +message UnclaimedSwapsResponse { + SwapRecord swap = 1; +} + +message NullifierStatusRequest { + core.component.sct.v1.Nullifier nullifier = 2; + bool await_detection = 3; +} + +message NullifierStatusResponse { + bool spent = 1; +} + +message TransactionInfoByHashRequest { + // The transaction hash to query for. + core.txhash.v1.TransactionId id = 2; +} + +message TransactionInfoRequest { + // If present, return only transactions after this height. + uint64 start_height = 1; + // If present, return only transactions before this height. + uint64 end_height = 2; +} + +message TransactionInfo { + // The height the transaction was included in a block, if known. + uint64 height = 1; + // The hash of the transaction. + core.txhash.v1.TransactionId id = 2; + // The transaction data itself. + core.transaction.v1.Transaction transaction = 3; + // The transaction perspective, as seen by this view server. + core.transaction.v1.TransactionPerspective perspective = 4; + // A precomputed transaction view of `transaction` from `perspective`, included for convenience of clients that don't have support for viewing transactions on their own. + core.transaction.v1.TransactionView view = 5; +} + +message TransactionInfoResponse { + TransactionInfo tx_info = 1; +} + +message TransactionInfoByHashResponse { + TransactionInfo tx_info = 1; +} + +message NotesResponse { + SpendableNoteRecord note_record = 1; +} + +message NotesForVotingResponse { + SpendableNoteRecord note_record = 1; + core.keys.v1.IdentityKey identity_key = 2; +} + +// A note plaintext with associated metadata about its status. +message SpendableNoteRecord { + // The note commitment, identifying the note. + crypto.tct.v1.StateCommitment note_commitment = 1; + // The note plaintext itself. + core.component.shielded_pool.v1.Note note = 2; + // A precomputed decryption of the note's address incore.component.dex.v1. + core.keys.v1.AddressIndex address_index = 3; + // The note's nullifier. + core.component.sct.v1.Nullifier nullifier = 4; + // The height at which the note was created. + uint64 height_created = 5; + // Records whether the note was spent (and if so, at what height). + uint64 height_spent = 6; + // The note position. + uint64 position = 7; + // The source of the note + core.component.sct.v1.CommitmentSource source = 8; + // The sender's return address, if known. + core.keys.v1.AddressView return_address = 9; +} + +message SwapRecord { + crypto.tct.v1.StateCommitment swap_commitment = 1; + core.component.dex.v1.SwapPlaintext swap = 2; + uint64 position = 3; + core.component.sct.v1.Nullifier nullifier = 4; + core.component.dex.v1.BatchSwapOutputData output_data = 5; + uint64 height_claimed = 6; + core.component.sct.v1.CommitmentSource source = 7; +} + +message OwnedPositionIdsRequest { + // If present, return only positions with this position state. + core.component.dex.v1.PositionState position_state = 1; + // If present, return only positions for this trading pair. + core.component.dex.v1.TradingPair trading_pair = 2; +} + +message OwnedPositionIdsResponse { + core.component.dex.v1.PositionId position_id = 1; +} + +// Requests information on an asset by asset id +message AssetMetadataByIdRequest { + // The asset id to request information on. + core.asset.v1.AssetId asset_id = 2; +} + +message AssetMetadataByIdResponse { + // If present, information on the requested asset. + // + // If the requested asset was unknown, this field will not be present. + core.asset.v1.Metadata denom_metadata = 1; +} + +// Requests `ValueView`s of delegation tokens for the given address index. The +// returned `ValueView`s will include the `ValidatorInfo` for the delegated +// validator in their `extended_metadata` fields. +message DelegationsByAddressIndexRequest { + // The address index to fetch delegation balances for. + core.keys.v1.AddressIndex address_index = 1; + + enum Filter { + // By default, returns delegations for all active validators. For validators + // that the given address index has no delegation tokens for, a `ValueView` + // with a balance of `0` will be returned. + FILTER_UNSPECIFIED = 0; + + // Returns only delegations to active validators that the given address + // index holds delegation tokens for. + FILTER_ALL_ACTIVE_WITH_NONZERO_BALANCES = 1; + + // Return delegations for all validators, whether active or not. For + // validators that the given address index has no delegation tokens for, a + // `ValueView` with a balance of `0` will be returned. + FILTER_ALL = 2; + } + + Filter filter = 2; +} + +// Contains a `ValueView` of delegation tokens for the requested address index. +// The `ValueView` includes the `ValidatorInfo` for the delegated validator in +// cits `extended_metadata` field. +message DelegationsByAddressIndexResponse { + core.asset.v1.ValueView value_view = 1; +} + +// Requests unbonding tokens for a given address index, with optional filtering +// for whether the tokens are currently claimable. +message UnbondingTokensByAddressIndexRequest { + enum Filter { + // Return all unbonding tokens, regardless of whether they're claimable + // right now. + FILTER_UNSPECIFIED = 0; + + // Return all unbonding tokens that are currently claimable. This includes: + // - tokens that have passed the `unbonding_delay` (from `StakeParameters`) + // - tokens for unbonded validators + FILTER_CLAIMABLE = 1; + + // Return all unbonding tokens that are not yet claimable, because they are + // still in the `unbonding_delay` (from `StakeParameters`) period. + FILTER_NOT_YET_CLAIMABLE = 2; + } + + Filter filter = 1; + + // The address index to fetch unbonding tokens for. + core.keys.v1.AddressIndex address_index = 2; +} + +// Returns unbonding tokens for the given address index, optionally filtered by +// whether the tokens are currently claimable. +message UnbondingTokensByAddressIndexResponse { + // A `ValueView` representing the amount of the given unbonding token. + core.asset.v1.ValueView value_view = 1; + + // Whether the unbonding token is currently claimable. This will only be + // `true` if the `unbonding_delay` (from `StakeParameters`) has passed or the + // validator has unbonded. + bool claimable = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/amino/amino.proto b/proto/rust-vendored/amino/amino.proto new file mode 100644 index 0000000..fb099b8 --- /dev/null +++ b/proto/rust-vendored/amino/amino.proto @@ -0,0 +1,84 @@ +syntax = "proto3"; + +package amino; + +import "google/protobuf/descriptor.proto"; + +// TODO(fdymylja): once we fully migrate to protov2 the go_package needs to be updated. +// We need this right now because gogoproto codegen needs to import the extension. +option go_package = "github.com/cosmos/cosmos-sdk/types/tx/amino"; + +extend google.protobuf.MessageOptions { + // name is the string used when registering a concrete + // type into the Amino type registry, via the Amino codec's + // `RegisterConcrete()` method. This string MUST be at most 39 + // characters long, or else the message will be rejected by the + // Ledger hardware device. + string name = 11110001; + + // encoding describes the encoding format used by Amino for the given + // message. The field type is chosen to be a string for + // flexibility, but it should ideally be short and expected to be + // machine-readable, for example "base64" or "utf8_json". We + // highly recommend to use underscores for word separation instead of spaces. + // + // If left empty, then the Amino encoding is expected to be the same as the + // Protobuf one. + // + // This annotation should not be confused with the `encoding` + // one which operates on the field level. + string message_encoding = 11110002; +} + +extend google.protobuf.FieldOptions { + // encoding describes the encoding format used by Amino for + // the given field. The field type is chosen to be a string for + // flexibility, but it should ideally be short and expected to be + // machine-readable, for example "base64" or "utf8_json". We + // highly recommend to use underscores for word separation instead of spaces. + // + // If left empty, then the Amino encoding is expected to be the same as the + // Protobuf one. + // + // This annotation should not be confused with the + // `message_encoding` one which operates on the message level. + string encoding = 11110003; + + // field_name sets a different field name (i.e. key name) in + // the amino JSON object for the given field. + // + // Example: + // + // message Foo { + // string bar = 1 [(amino.field_name) = "baz"]; + // } + // + // Then the Amino encoding of Foo will be: + // `{"baz":"some value"}` + string field_name = 11110004; + + // dont_omitempty sets the field in the JSON object even if + // its value is empty, i.e. equal to the Golang zero value. To learn what + // the zero values are, see https://go.dev/ref/spec#The_zero_value. + // + // Fields default to `omitempty`, which is the default behavior when this + // annotation is unset. When set to true, then the field value in the + // JSON object will be set, i.e. not `undefined`. + // + // Example: + // + // message Foo { + // string bar = 1; + // string baz = 2 [(amino.dont_omitempty) = true]; + // } + // + // f := Foo{}; + // out := AminoJSONEncoder(&f); + // out == {"baz":""} + bool dont_omitempty = 11110005; + + // oneof_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string in + // the RegisterConcrete() method usage used to register the concrete type. + string oneof_name = 11110006; +} \ No newline at end of file diff --git a/proto/rust-vendored/capability/v1/capability.proto b/proto/rust-vendored/capability/v1/capability.proto new file mode 100644 index 0000000..31136cc --- /dev/null +++ b/proto/rust-vendored/capability/v1/capability.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; + +package capability.v1; + +import "gogoproto/gogo.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/ibc-go/modules/capability/types"; + +// Capability defines an implementation of an object capability. The index +// provided to a Capability must be globally unique. +message Capability { + option (gogoproto.goproto_stringer) = false; + + uint64 index = 1; +} + +// Owner defines a single capability owner. An owner is defined by the name of +// capability and the module name. +message Owner { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.goproto_getters) = false; + + string module = 1; + string name = 2; +} + +// CapabilityOwners defines a set of owners of a single Capability. The set of +// owners must be unique. +message CapabilityOwners { + repeated Owner owners = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/capability/v1/genesis.proto b/proto/rust-vendored/capability/v1/genesis.proto new file mode 100644 index 0000000..f345f6b --- /dev/null +++ b/proto/rust-vendored/capability/v1/genesis.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package capability.v1; + +import "gogoproto/gogo.proto"; +import "capability/v1/capability.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/ibc-go/modules/capability/types"; + +// GenesisOwners defines the capability owners with their corresponding index. +message GenesisOwners { + // index is the index of the capability owner. + uint64 index = 1; + + // index_owners are the owners at the given index. + CapabilityOwners index_owners = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// GenesisState defines the capability module's genesis state. +message GenesisState { + // index is the capability global index. + uint64 index = 1; + + // owners represents a map from index to owners of the capability index + // index key is string to allow amino marshalling. + repeated GenesisOwners owners = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/app/runtime/v1alpha1/module.proto b/proto/rust-vendored/cosmos/app/runtime/v1alpha1/module.proto new file mode 100644 index 0000000..c026121 --- /dev/null +++ b/proto/rust-vendored/cosmos/app/runtime/v1alpha1/module.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; + +package cosmos.app.runtime.v1alpha1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object for the runtime module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/runtime" + use_package: {name: "cosmos.app.v1alpha1"} + }; + + // app_name is the name of the app. + string app_name = 1; + + // begin_blockers specifies the module names of begin blockers + // to call in the order in which they should be called. If this is left empty + // no begin blocker will be registered. + repeated string begin_blockers = 2; + + // end_blockers specifies the module names of the end blockers + // to call in the order in which they should be called. If this is left empty + // no end blocker will be registered. + repeated string end_blockers = 3; + + // init_genesis specifies the module names of init genesis functions + // to call in the order in which they should be called. If this is left empty + // no init genesis function will be registered. + repeated string init_genesis = 4; + + // export_genesis specifies the order in which to export module genesis data. + // If this is left empty, the init_genesis order will be used for export genesis + // if it is specified. + repeated string export_genesis = 5; + + // override_store_keys is an optional list of overrides for the module store keys + // to be used in keeper construction. + repeated StoreKeyConfig override_store_keys = 6; + + // order_migrations defines the order in which module migrations are performed. + // If this is left empty, it uses the default migration order. + // https://pkg.go.dev/github.com/cosmos/cosmos-sdk@v0.47.0-alpha2/types/module#DefaultMigrationsOrder + repeated string order_migrations = 7; + + // precommiters specifies the module names of the precommiters + // to call in the order in which they should be called. If this is left empty + // no precommit function will be registered. + repeated string precommiters = 8; + + // prepare_check_staters specifies the module names of the prepare_check_staters + // to call in the order in which they should be called. If this is left empty + // no preparecheckstate function will be registered. + repeated string prepare_check_staters = 9; +} + +// StoreKeyConfig may be supplied to override the default module store key, which +// is the module name. +message StoreKeyConfig { + // name of the module to override the store key of + string module_name = 1; + + // the kv store key to use instead of the module name. + string kv_store_key = 2; +} diff --git a/proto/rust-vendored/cosmos/app/v1alpha1/config.proto b/proto/rust-vendored/cosmos/app/v1alpha1/config.proto new file mode 100644 index 0000000..ee3e706 --- /dev/null +++ b/proto/rust-vendored/cosmos/app/v1alpha1/config.proto @@ -0,0 +1,55 @@ +syntax = "proto3"; + +package cosmos.app.v1alpha1; + +import "google/protobuf/any.proto"; + +// Config represents the configuration for a Cosmos SDK ABCI app. +// It is intended that all state machine logic including the version of +// baseapp and tx handlers (and possibly even Tendermint) that an app needs +// can be described in a config object. For compatibility, the framework should +// allow a mixture of declarative and imperative app wiring, however, apps +// that strive for the maximum ease of maintainability should be able to describe +// their state machine with a config object alone. +message Config { + // modules are the module configurations for the app. + repeated ModuleConfig modules = 1; + + // golang_bindings specifies explicit interface to implementation type bindings which + // depinject uses to resolve interface inputs to provider functions. The scope of this + // field's configuration is global (not module specific). + repeated GolangBinding golang_bindings = 2; +} + +// ModuleConfig is a module configuration for an app. +message ModuleConfig { + // name is the unique name of the module within the app. It should be a name + // that persists between different versions of a module so that modules + // can be smoothly upgraded to new versions. + // + // For example, for the module cosmos.bank.module.v1.Module, we may chose + // to simply name the module "bank" in the app. When we upgrade to + // cosmos.bank.module.v2.Module, the app-specific name "bank" stays the same + // and the framework knows that the v2 module should receive all the same state + // that the v1 module had. Note: modules should provide info on which versions + // they can migrate from in the ModuleDescriptor.can_migration_from field. + string name = 1; + + // config is the config object for the module. Module config messages should + // define a ModuleDescriptor using the cosmos.app.v1alpha1.is_module extension. + google.protobuf.Any config = 2; + + // golang_bindings specifies explicit interface to implementation type bindings which + // depinject uses to resolve interface inputs to provider functions. The scope of this + // field's configuration is module specific. + repeated GolangBinding golang_bindings = 3; +} + +// GolangBinding is an explicit interface type to implementing type binding for dependency injection. +message GolangBinding { + // interface_type is the interface type which will be bound to a specific implementation type + string interface_type = 1; + + // implementation is the implementing type which will be supplied when an input of type interface is requested + string implementation = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/app/v1alpha1/module.proto b/proto/rust-vendored/cosmos/app/v1alpha1/module.proto new file mode 100644 index 0000000..e541378 --- /dev/null +++ b/proto/rust-vendored/cosmos/app/v1alpha1/module.proto @@ -0,0 +1,91 @@ +syntax = "proto3"; + +package cosmos.app.v1alpha1; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.MessageOptions { + // module indicates that this proto type is a config object for an app module + // and optionally provides other descriptive information about the module. + // It is recommended that a new module config object and go module is versioned + // for every state machine breaking version of a module. The recommended + // pattern for doing this is to put module config objects in a separate proto + // package from the API they expose. Ex: the cosmos.group.v1 API would be + // exposed by module configs cosmos.group.module.v1, cosmos.group.module.v2, etc. + ModuleDescriptor module = 57193479; +} + +// ModuleDescriptor describes an app module. +message ModuleDescriptor { + // go_import names the package that should be imported by an app to load the + // module in the runtime module registry. It is required to make debugging + // of configuration errors easier for users. + string go_import = 1; + + // use_package refers to a protobuf package that this module + // uses and exposes to the world. In an app, only one module should "use" + // or own a single protobuf package. It is assumed that the module uses + // all of the .proto files in a single package. + repeated PackageReference use_package = 2; + + // can_migrate_from defines which module versions this module can migrate + // state from. The framework will check that one module version is able to + // migrate from a previous module version before attempting to update its + // config. It is assumed that modules can transitively migrate from earlier + // versions. For instance if v3 declares it can migrate from v2, and v2 + // declares it can migrate from v1, the framework knows how to migrate + // from v1 to v3, assuming all 3 module versions are registered at runtime. + repeated MigrateFromInfo can_migrate_from = 3; +} + +// PackageReference is a reference to a protobuf package used by a module. +message PackageReference { + // name is the fully-qualified name of the package. + string name = 1; + + // revision is the optional revision of the package that is being used. + // Protobuf packages used in Cosmos should generally have a major version + // as the last part of the package name, ex. foo.bar.baz.v1. + // The revision of a package can be thought of as the minor version of a + // package which has additional backwards compatible definitions that weren't + // present in a previous version. + // + // A package should indicate its revision with a source code comment + // above the package declaration in one of its files containing the + // text "Revision N" where N is an integer revision. All packages start + // at revision 0 the first time they are released in a module. + // + // When a new version of a module is released and items are added to existing + // .proto files, these definitions should contain comments of the form + // "Since: Revision N" where N is an integer revision. + // + // When the module runtime starts up, it will check the pinned proto + // image and panic if there are runtime protobuf definitions that are not + // in the pinned descriptor which do not have + // a "Since Revision N" comment or have a "Since Revision N" comment where + // N is <= to the revision specified here. This indicates that the protobuf + // files have been updated, but the pinned file descriptor hasn't. + // + // If there are items in the pinned file descriptor with a revision + // greater than the value indicated here, this will also cause a panic + // as it may mean that the pinned descriptor for a legacy module has been + // improperly updated or that there is some other versioning discrepancy. + // Runtime protobuf definitions will also be checked for compatibility + // with pinned file descriptors to make sure there are no incompatible changes. + // + // This behavior ensures that: + // * pinned proto images are up-to-date + // * protobuf files are carefully annotated with revision comments which + // are important good client UX + // * protobuf files are changed in backwards and forwards compatible ways + uint32 revision = 2; +} + +// MigrateFromInfo is information on a module version that a newer module +// can migrate from. +message MigrateFromInfo { + + // module is the fully-qualified protobuf name of the module config object + // for the previous module version, ex: "cosmos.group.module.v1.Module". + string module = 1; +} diff --git a/proto/rust-vendored/cosmos/app/v1alpha1/query.proto b/proto/rust-vendored/cosmos/app/v1alpha1/query.proto new file mode 100644 index 0000000..efec9c8 --- /dev/null +++ b/proto/rust-vendored/cosmos/app/v1alpha1/query.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +package cosmos.app.v1alpha1; + +import "cosmos/app/v1alpha1/config.proto"; + +// Query is the app module query service. +service Query { + + // Config returns the current app config. + rpc Config(QueryConfigRequest) returns (QueryConfigResponse) {} +} + +// QueryConfigRequest is the Query/Config request type. +message QueryConfigRequest {} + +// QueryConfigRequest is the Query/Config response type. +message QueryConfigResponse { + + // config is the current app config. + Config config = 1; +} diff --git a/proto/rust-vendored/cosmos/auth/module/v1/module.proto b/proto/rust-vendored/cosmos/auth/module/v1/module.proto new file mode 100644 index 0000000..dbe46a1 --- /dev/null +++ b/proto/rust-vendored/cosmos/auth/module/v1/module.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package cosmos.auth.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object for the auth module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/auth" + }; + + // bech32_prefix is the bech32 account prefix for the app. + string bech32_prefix = 1; + + // module_account_permissions are module account permissions. + repeated ModuleAccountPermission module_account_permissions = 2; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 3; +} + +// ModuleAccountPermission represents permissions for a module account. +message ModuleAccountPermission { + // account is the name of the module. + string account = 1; + + // permissions are the permissions this module has. Currently recognized + // values are minter, burner and staking. + repeated string permissions = 2; +} diff --git a/proto/rust-vendored/cosmos/auth/v1beta1/auth.proto b/proto/rust-vendored/cosmos/auth/v1beta1/auth.proto new file mode 100644 index 0000000..bcac983 --- /dev/null +++ b/proto/rust-vendored/cosmos/auth/v1beta1/auth.proto @@ -0,0 +1,66 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "amino/amino.proto"; +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// BaseAccount defines a base account type. It contains all the necessary fields +// for basic account functionality. Any custom account type should extend this +// type for additional functionality (e.g. vesting). +message BaseAccount { + option (amino.name) = "cosmos-sdk/BaseAccount"; + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.AccountI"; + + string address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString"]; + + google.protobuf.Any pub_key = 2 [ + (gogoproto.jsontag) = "public_key,omitempty", + (amino.field_name) = "public_key"]; + + uint64 account_number = 3; + uint64 sequence = 4; +} + +// ModuleAccount defines an account for modules that holds coins on a pool. +message ModuleAccount { + option (amino.name) = "cosmos-sdk/ModuleAccount"; + option (amino.message_encoding) = "module_account"; + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.ModuleAccountI"; + + BaseAccount base_account = 1 [(gogoproto.embed) = true]; + string name = 2; + repeated string permissions = 3; +} + +// ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. +// +// Since: cosmos-sdk 0.47 +message ModuleCredential { + option (amino.name) = "cosmos-sdk/GroupAccountCredential"; + // module_name is the name of the module used for address derivation (passed into address.Module). + string module_name = 1; + // derivation_keys is for deriving a module account address (passed into address.Module) + // adding more keys creates sub-account addresses (passed into address.Derive) + repeated bytes derivation_keys = 2; +} + +// Params defines the parameters for the auth module. +message Params { + option (amino.name) = "cosmos-sdk/x/auth/Params"; + option (gogoproto.equal) = true; + + uint64 max_memo_characters = 1; + uint64 tx_sig_limit = 2; + uint64 tx_size_cost_per_byte = 3; + uint64 sig_verify_cost_ed25519 = 4 [(gogoproto.customname) = "SigVerifyCostED25519"]; + uint64 sig_verify_cost_secp256k1 = 5 [(gogoproto.customname) = "SigVerifyCostSecp256k1"]; +} diff --git a/proto/rust-vendored/cosmos/auth/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/auth/v1beta1/genesis.proto new file mode 100644 index 0000000..d1aa66e --- /dev/null +++ b/proto/rust-vendored/cosmos/auth/v1beta1/genesis.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/auth/v1beta1/auth.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// GenesisState defines the auth module's genesis state. +message GenesisState { + // params defines all the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // accounts are the accounts present at genesis. + repeated google.protobuf.Any accounts = 2; +} diff --git a/proto/rust-vendored/cosmos/auth/v1beta1/query.proto b/proto/rust-vendored/cosmos/auth/v1beta1/query.proto new file mode 100644 index 0000000..804f2ff --- /dev/null +++ b/proto/rust-vendored/cosmos/auth/v1beta1/query.proto @@ -0,0 +1,236 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "cosmos/auth/v1beta1/auth.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/query/v1/query.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// Query defines the gRPC querier service. +service Query { + // Accounts returns all the existing accounts. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + // + // Since: cosmos-sdk 0.43 + rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/accounts"; + } + + // Account returns account details based on address. + rpc Account(QueryAccountRequest) returns (QueryAccountResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/accounts/{address}"; + } + + // AccountAddressByID returns account address based on account number. + // + // Since: cosmos-sdk 0.46.2 + rpc AccountAddressByID(QueryAccountAddressByIDRequest) returns (QueryAccountAddressByIDResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/address_by_id/{id}"; + } + + // Params queries all parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/params"; + } + + // ModuleAccounts returns all the existing module accounts. + // + // Since: cosmos-sdk 0.46 + rpc ModuleAccounts(QueryModuleAccountsRequest) returns (QueryModuleAccountsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/module_accounts"; + } + + // ModuleAccountByName returns the module account info by module name + rpc ModuleAccountByName(QueryModuleAccountByNameRequest) returns (QueryModuleAccountByNameResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/module_accounts/{name}"; + } + + // Bech32Prefix queries bech32Prefix + // + // Since: cosmos-sdk 0.46 + rpc Bech32Prefix(Bech32PrefixRequest) returns (Bech32PrefixResponse) { + option (google.api.http).get = "/cosmos/auth/v1beta1/bech32"; + } + + // AddressBytesToString converts Account Address bytes to string + // + // Since: cosmos-sdk 0.46 + rpc AddressBytesToString(AddressBytesToStringRequest) returns (AddressBytesToStringResponse) { + option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_bytes}"; + } + + // AddressStringToBytes converts Address string to bytes + // + // Since: cosmos-sdk 0.46 + rpc AddressStringToBytes(AddressStringToBytesRequest) returns (AddressStringToBytesResponse) { + option (google.api.http).get = "/cosmos/auth/v1beta1/bech32/{address_string}"; + } + + // AccountInfo queries account info which is common to all account types. + // + // Since: cosmos-sdk 0.47 + rpc AccountInfo(QueryAccountInfoRequest) returns (QueryAccountInfoResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/auth/v1beta1/account_info/{address}"; + } +} + +// QueryAccountsRequest is the request type for the Query/Accounts RPC method. +// +// Since: cosmos-sdk 0.43 +message QueryAccountsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryAccountsResponse is the response type for the Query/Accounts RPC method. +// +// Since: cosmos-sdk 0.43 +message QueryAccountsResponse { + // accounts are the existing accounts + repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.v1beta1.AccountI"]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryAccountRequest is the request type for the Query/Account RPC method. +message QueryAccountRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address defines the address to query for. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryAccountResponse is the response type for the Query/Account RPC method. +message QueryAccountResponse { + // account defines the account of the corresponding address. + google.protobuf.Any account = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.v1beta1.AccountI"]; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false]; +} + +// QueryModuleAccountsRequest is the request type for the Query/ModuleAccounts RPC method. +// +// Since: cosmos-sdk 0.46 +message QueryModuleAccountsRequest {} + +// QueryModuleAccountsResponse is the response type for the Query/ModuleAccounts RPC method. +// +// Since: cosmos-sdk 0.46 +message QueryModuleAccountsResponse { + repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.v1beta1.ModuleAccountI"]; +} + +// QueryModuleAccountByNameRequest is the request type for the Query/ModuleAccountByName RPC method. +message QueryModuleAccountByNameRequest { + string name = 1; +} + +// QueryModuleAccountByNameResponse is the response type for the Query/ModuleAccountByName RPC method. +message QueryModuleAccountByNameResponse { + google.protobuf.Any account = 1 [(cosmos_proto.accepts_interface) = "cosmos.auth.v1beta1.ModuleAccountI"]; +} + +// Bech32PrefixRequest is the request type for Bech32Prefix rpc method. +// +// Since: cosmos-sdk 0.46 +message Bech32PrefixRequest {} + +// Bech32PrefixResponse is the response type for Bech32Prefix rpc method. +// +// Since: cosmos-sdk 0.46 +message Bech32PrefixResponse { + string bech32_prefix = 1; +} + +// AddressBytesToStringRequest is the request type for AddressString rpc method. +// +// Since: cosmos-sdk 0.46 +message AddressBytesToStringRequest { + bytes address_bytes = 1; +} + +// AddressBytesToStringResponse is the response type for AddressString rpc method. +// +// Since: cosmos-sdk 0.46 +message AddressBytesToStringResponse { + string address_string = 1; +} + +// AddressStringToBytesRequest is the request type for AccountBytes rpc method. +// +// Since: cosmos-sdk 0.46 +message AddressStringToBytesRequest { + string address_string = 1; +} + +// AddressStringToBytesResponse is the response type for AddressBytes rpc method. +// +// Since: cosmos-sdk 0.46 +message AddressStringToBytesResponse { + bytes address_bytes = 1; +} + +// QueryAccountAddressByIDRequest is the request type for AccountAddressByID rpc method +// +// Since: cosmos-sdk 0.46.2 +message QueryAccountAddressByIDRequest { + // Deprecated, use account_id instead + // + // id is the account number of the address to be queried. This field + // should have been an uint64 (like all account numbers), and will be + // updated to uint64 in a future version of the auth query. + int64 id = 1 [deprecated = true]; + + // account_id is the account number of the address to be queried. + // + // Since: cosmos-sdk 0.47 + uint64 account_id = 2; +} + +// QueryAccountAddressByIDResponse is the response type for AccountAddressByID rpc method +// +// Since: cosmos-sdk 0.46.2 +message QueryAccountAddressByIDResponse { + string account_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryAccountInfoRequest is the Query/AccountInfo request type. +// +// Since: cosmos-sdk 0.47 +message QueryAccountInfoRequest { + + // address is the account address string. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryAccountInfoResponse is the Query/AccountInfo response type. +// +// Since: cosmos-sdk 0.47 +message QueryAccountInfoResponse { + + // info is the account info which is represented by BaseAccount. + BaseAccount info = 1; +} diff --git a/proto/rust-vendored/cosmos/auth/v1beta1/tx.proto b/proto/rust-vendored/cosmos/auth/v1beta1/tx.proto new file mode 100644 index 0000000..1edee03 --- /dev/null +++ b/proto/rust-vendored/cosmos/auth/v1beta1/tx.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// Msg defines the x/auth Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // UpdateParams defines a (governance) operation for updating the x/auth module + // parameters. The authority defaults to the x/gov module account. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/auth/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/auth parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/cosmos/authz/module/v1/module.proto b/proto/rust-vendored/cosmos/authz/module/v1/module.proto new file mode 100644 index 0000000..8005866 --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.authz.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the authz module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/authz" + }; +} diff --git a/proto/rust-vendored/cosmos/authz/v1beta1/authz.proto b/proto/rust-vendored/cosmos/authz/v1beta1/authz.proto new file mode 100644 index 0000000..3fee736 --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/v1beta1/authz.proto @@ -0,0 +1,48 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.authz.v1beta1; + +import "amino/amino.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; +option (gogoproto.goproto_getters_all) = false; + +// GenericAuthorization gives the grantee unrestricted permissions to execute +// the provided method on behalf of the granter's account. +message GenericAuthorization { + option (amino.name) = "cosmos-sdk/GenericAuthorization"; + option (cosmos_proto.implements_interface) = "cosmos.authz.v1beta1.Authorization"; + + // Msg, identified by it's type URL, to grant unrestricted permissions to execute + string msg = 1; +} + +// Grant gives permissions to execute +// the provide method with expiration time. +message Grant { + google.protobuf.Any authorization = 1 [(cosmos_proto.accepts_interface) = "cosmos.authz.v1beta1.Authorization"]; + // time when the grant will expire and will be pruned. If null, then the grant + // doesn't have a time expiration (other conditions in `authorization` + // may apply to invalidate the grant) + google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = true]; +} + +// GrantAuthorization extends a grant with both the addresses of the grantee and granter. +// It is used in genesis.proto and query.proto +message GrantAuthorization { + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "cosmos.authz.v1beta1.Authorization"]; + google.protobuf.Timestamp expiration = 4 [(gogoproto.stdtime) = true]; +} + +// GrantQueueItem contains the list of TypeURL of a sdk.Msg. +message GrantQueueItem { + // msg_type_urls contains the list of TypeURL of a sdk.Msg. + repeated string msg_type_urls = 1; +} diff --git a/proto/rust-vendored/cosmos/authz/v1beta1/event.proto b/proto/rust-vendored/cosmos/authz/v1beta1/event.proto new file mode 100644 index 0000000..0476649 --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/v1beta1/event.proto @@ -0,0 +1,27 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.authz.v1beta1; + +import "cosmos_proto/cosmos.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; + +// EventGrant is emitted on Msg/Grant +message EventGrant { + // Msg type URL for which an autorization is granted + string msg_type_url = 2; + // Granter account address + string granter = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // Grantee account address + string grantee = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// EventRevoke is emitted on Msg/Revoke +message EventRevoke { + // Msg type URL for which an autorization is revoked + string msg_type_url = 2; + // Granter account address + string granter = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // Grantee account address + string grantee = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} diff --git a/proto/rust-vendored/cosmos/authz/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/authz/v1beta1/genesis.proto new file mode 100644 index 0000000..9fefff4 --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/v1beta1/genesis.proto @@ -0,0 +1,14 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.authz.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/authz/v1beta1/authz.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; + +// GenesisState defines the authz module's genesis state. +message GenesisState { + repeated GrantAuthorization authorization = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/authz/v1beta1/query.proto b/proto/rust-vendored/cosmos/authz/v1beta1/query.proto new file mode 100644 index 0000000..62154ac --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/v1beta1/query.proto @@ -0,0 +1,82 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.authz.v1beta1; + +import "google/api/annotations.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos/authz/v1beta1/authz.proto"; +import "cosmos_proto/cosmos.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; + +// Query defines the gRPC querier service. +service Query { + // Returns list of `Authorization`, granted to the grantee by the granter. + rpc Grants(QueryGrantsRequest) returns (QueryGrantsResponse) { + option (google.api.http).get = "/cosmos/authz/v1beta1/grants"; + } + + // GranterGrants returns list of `GrantAuthorization`, granted by granter. + // + // Since: cosmos-sdk 0.46 + rpc GranterGrants(QueryGranterGrantsRequest) returns (QueryGranterGrantsResponse) { + option (google.api.http).get = "/cosmos/authz/v1beta1/grants/granter/{granter}"; + } + + // GranteeGrants returns a list of `GrantAuthorization` by grantee. + // + // Since: cosmos-sdk 0.46 + rpc GranteeGrants(QueryGranteeGrantsRequest) returns (QueryGranteeGrantsResponse) { + option (google.api.http).get = "/cosmos/authz/v1beta1/grants/grantee/{grantee}"; + } +} + +// QueryGrantsRequest is the request type for the Query/Grants RPC method. +message QueryGrantsRequest { + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // Optional, msg_type_url, when set, will query only grants matching given msg type. + string msg_type_url = 3; + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryGrantsResponse is the response type for the Query/Authorizations RPC method. +message QueryGrantsResponse { + // authorizations is a list of grants granted for grantee by granter. + repeated Grant grants = 1; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGranterGrantsRequest is the request type for the Query/GranterGrants RPC method. +message QueryGranterGrantsRequest { + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGranterGrantsResponse is the response type for the Query/GranterGrants RPC method. +message QueryGranterGrantsResponse { + // grants is a list of grants granted by the granter. + repeated GrantAuthorization grants = 1; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGranteeGrantsRequest is the request type for the Query/IssuedGrants RPC method. +message QueryGranteeGrantsRequest { + string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGranteeGrantsResponse is the response type for the Query/GranteeGrants RPC method. +message QueryGranteeGrantsResponse { + // grants is a list of grants granted to the grantee. + repeated GrantAuthorization grants = 1; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/authz/v1beta1/tx.proto b/proto/rust-vendored/cosmos/authz/v1beta1/tx.proto new file mode 100644 index 0000000..69277c9 --- /dev/null +++ b/proto/rust-vendored/cosmos/authz/v1beta1/tx.proto @@ -0,0 +1,81 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.authz.v1beta1; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos/authz/v1beta1/authz.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; +option (gogoproto.goproto_getters_all) = false; + +// Msg defines the authz Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Grant grants the provided authorization to the grantee on the granter's + // account with the provided expiration time. If there is already a grant + // for the given (granter, grantee, Authorization) triple, then the grant + // will be overwritten. + rpc Grant(MsgGrant) returns (MsgGrantResponse); + + // Exec attempts to execute the provided messages using + // authorizations granted to the grantee. Each message should have only + // one signer corresponding to the granter of the authorization. + rpc Exec(MsgExec) returns (MsgExecResponse); + + // Revoke revokes any authorization corresponding to the provided method name on the + // granter's account that has been granted to the grantee. + rpc Revoke(MsgRevoke) returns (MsgRevokeResponse); +} + +// MsgGrant is a request type for Grant method. It declares authorization to the grantee +// on behalf of the granter with the provided expiration time. +message MsgGrant { + option (cosmos.msg.v1.signer) = "granter"; + option (amino.name) = "cosmos-sdk/MsgGrant"; + + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + cosmos.authz.v1beta1.Grant grant = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgExecResponse defines the Msg/MsgExecResponse response type. +message MsgExecResponse { + repeated bytes results = 1; +} + +// MsgExec attempts to execute the provided messages using +// authorizations granted to the grantee. Each message should have only +// one signer corresponding to the granter of the authorization. +message MsgExec { + option (cosmos.msg.v1.signer) = "grantee"; + option (amino.name) = "cosmos-sdk/MsgExec"; + + string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // Execute Msg. + // The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg)) + // triple and validate it. + repeated google.protobuf.Any msgs = 2 [(cosmos_proto.accepts_interface) = "cosmos.base.v1beta1.Msg"]; +} + +// MsgGrantResponse defines the Msg/MsgGrant response type. +message MsgGrantResponse {} + +// MsgRevoke revokes any authorization with the provided sdk.Msg type on the +// granter's account with that has been granted to the grantee. +message MsgRevoke { + option (cosmos.msg.v1.signer) = "granter"; + option (amino.name) = "cosmos-sdk/MsgRevoke"; + + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string msg_type_url = 3; +} + +// MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. +message MsgRevokeResponse {} diff --git a/proto/rust-vendored/cosmos/autocli/v1/options.proto b/proto/rust-vendored/cosmos/autocli/v1/options.proto new file mode 100644 index 0000000..f0707ed --- /dev/null +++ b/proto/rust-vendored/cosmos/autocli/v1/options.proto @@ -0,0 +1,124 @@ +syntax = "proto3"; + +package cosmos.autocli.v1; + +option go_package = "cosmossdk.io/api/cosmos/base/cli/v1;cliv1"; + +// ModuleOptions describes the CLI options for a Cosmos SDK module. +message ModuleOptions { + // tx describes the tx commands for the module. + ServiceCommandDescriptor tx = 1; + + // query describes the queries commands for the module. + ServiceCommandDescriptor query = 2; +} + +// ServiceCommandDescriptor describes a CLI command based on a protobuf service. +message ServiceCommandDescriptor { + + // service is the fully qualified name of the protobuf service to build + // the command from. It can be left empty if sub_commands are used instead + // which may be the case if a module provides multiple tx and/or query services. + string service = 1; + + // rpc_command_options are options for commands generated from rpc methods. + // If no options are specified for a given rpc method on the service, a + // command will be generated for that method with the default options. + repeated RpcCommandOptions rpc_command_options = 2; + + // sub_commands is a map of optional sub-commands for this command based on + // different protobuf services. The map key is used as the name of the + // sub-command. + map sub_commands = 3; +} + +// RpcCommandOptions specifies options for commands generated from protobuf +// rpc methods. +message RpcCommandOptions { + // rpc_method is short name of the protobuf rpc method that this command is + // generated from. + string rpc_method = 1; + + // use is the one-line usage method. It also allows specifying an alternate + // name for the command as the first word of the usage text. + // + // By default the name of an rpc command is the kebab-case short name of the + // rpc method. + string use = 2; + + // long is the long message shown in the 'help ' output. + string long_ = 3; + + // short is the short description shown in the 'help' output. + string short_ = 4; + + // example is examples of how to use the command. + string example = 5; + + // alias is an array of aliases that can be used instead of the first word in Use. + repeated string alias = 6; + + // suggest_for is an array of command names for which this command will be suggested - + // similar to aliases but only suggests. + repeated string suggest_for = 7; + + // deprecated defines, if this command is deprecated and should print this string when used. + string deprecated = 8; + + // version defines the version for this command. If this value is non-empty and the command does not + // define a "version" flag, a "version" boolean flag will be added to the command and, if specified, + // will print content of the "Version" variable. A shorthand "v" flag will also be added if the + // command does not define one. + string version = 9; + + // flag_options are options for flags generated from rpc request fields. + // By default all request fields are configured as flags. They can + // also be configured as positional args instead using positional_args. + map flag_options = 10; + + // positional_args specifies positional arguments for the command. + repeated PositionalArgDescriptor positional_args = 11; + + // skip specifies whether to skip this rpc method when generating commands. + bool skip = 12; +} + +// FlagOptions are options for flags generated from rpc request fields. +// By default, all request fields are configured as flags based on the +// kebab-case name of the field. Fields can be turned into positional arguments +// instead by using RpcCommandOptions.positional_args. +message FlagOptions { + + // name is an alternate name to use for the field flag. + string name = 1; + + // shorthand is a one-letter abbreviated flag. + string shorthand = 2; + + // usage is the help message. + string usage = 3; + + // default_value is the default value as text. + string default_value = 4; + + // deprecated is the usage text to show if this flag is deprecated. + string deprecated = 6; + + // shorthand_deprecated is the usage text to show if the shorthand of this flag is deprecated. + string shorthand_deprecated = 7; + + // hidden hides the flag from help/usage text + bool hidden = 8; +} + +// PositionalArgDescriptor describes a positional argument. +message PositionalArgDescriptor { + // proto_field specifies the proto field to use as the positional arg. Any + // fields used as positional args will not have a flag generated. + string proto_field = 1; + + // varargs makes a positional parameter a varargs parameter. This can only be + // applied to last positional parameter and the proto_field must a repeated + // field. + bool varargs = 2; +} diff --git a/proto/rust-vendored/cosmos/autocli/v1/query.proto b/proto/rust-vendored/cosmos/autocli/v1/query.proto new file mode 100644 index 0000000..a998978 --- /dev/null +++ b/proto/rust-vendored/cosmos/autocli/v1/query.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package cosmos.autocli.v1; + +import "cosmos/autocli/v1/options.proto"; +import "cosmos/query/v1/query.proto"; + +option go_package = "cosmossdk.io/api/cosmos/base/cli/v1;cliv1"; + +// RemoteInfoService provides clients with the information they need +// to build dynamically CLI clients for remote chains. +service Query { + // AppOptions returns the autocli options for all of the modules in an app. + rpc AppOptions(AppOptionsRequest) returns (AppOptionsResponse) { + // NOTE: autocli options SHOULD NOT be part of consensus and module_query_safe + // should be kept as false. + option (cosmos.query.v1.module_query_safe) = false; + } +} + +// AppOptionsRequest is the RemoteInfoService/AppOptions request type. +message AppOptionsRequest {} + +// AppOptionsResponse is the RemoteInfoService/AppOptions response type. +message AppOptionsResponse { + // module_options is a map of module name to autocli module options. + map module_options = 1; +} diff --git a/proto/rust-vendored/cosmos/bank/module/v1/module.proto b/proto/rust-vendored/cosmos/bank/module/v1/module.proto new file mode 100644 index 0000000..51e3158 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/module/v1/module.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package cosmos.bank.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the bank module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/bank" + }; + + // blocked_module_accounts configures exceptional module accounts which should be blocked from receiving funds. + // If left empty it defaults to the list of account names supplied in the auth module configuration as + // module_account_permissions + repeated string blocked_module_accounts_override = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/bank/v1beta1/authz.proto b/proto/rust-vendored/cosmos/bank/v1beta1/authz.proto new file mode 100644 index 0000000..d42c619 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/v1beta1/authz.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// SendAuthorization allows the grantee to spend up to spend_limit coins from +// the granter's account. +// +// Since: cosmos-sdk 0.43 +message SendAuthorization { + option (cosmos_proto.implements_interface) = "cosmos.authz.v1beta1.Authorization"; + option (amino.name) = "cosmos-sdk/SendAuthorization"; + + repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // allow_list specifies an optional list of addresses to whom the grantee can send tokens on behalf of the + // granter. If omitted, any recipient is allowed. + // + // Since: cosmos-sdk 0.47 + repeated string allow_list = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} diff --git a/proto/rust-vendored/cosmos/bank/v1beta1/bank.proto b/proto/rust-vendored/cosmos/bank/v1beta1/bank.proto new file mode 100644 index 0000000..cbf6a41 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/v1beta1/bank.proto @@ -0,0 +1,125 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Params defines the parameters for the bank module. +message Params { + option (amino.name) = "cosmos-sdk/x/bank/Params"; + // Deprecated: Use of SendEnabled in params is deprecated. + // For genesis, use the newly added send_enabled field in the genesis object. + // Storage, lookup, and manipulation of this information is now in the keeper. + // + // As of cosmos-sdk 0.47, this only exists for backwards compatibility of genesis files. + repeated SendEnabled send_enabled = 1 [deprecated = true]; + bool default_send_enabled = 2; +} + +// SendEnabled maps coin denom to a send_enabled status (whether a denom is +// sendable). +message SendEnabled { + option (gogoproto.equal) = true; + string denom = 1; + bool enabled = 2; +} + +// Input models transaction input. +message Input { + option (cosmos.msg.v1.signer) = "address"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + repeated cosmos.base.v1beta1.Coin coins = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// Output models transaction outputs. +message Output { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + repeated cosmos.base.v1beta1.Coin coins = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// Supply represents a struct that passively keeps track of the total supply +// amounts in the network. +// This message is deprecated now that supply is indexed by denom. +message Supply { + option deprecated = true; + + option (gogoproto.equal) = true; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.bank.v1beta1.SupplyI"; + + repeated cosmos.base.v1beta1.Coin total = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// DenomUnit represents a struct that describes a given +// denomination unit of the basic token. +message DenomUnit { + // denom represents the string name of the given denom unit (e.g uatom). + string denom = 1; + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + uint32 exponent = 2; + // aliases is a list of string aliases for the given denom + repeated string aliases = 3; +} + +// Metadata represents a struct that describes +// a basic token. +message Metadata { + string description = 1; + // denom_units represents the list of DenomUnit's for a given coin + repeated DenomUnit denom_units = 2; + // base represents the base denom (should be the DenomUnit with exponent = 0). + string base = 3; + // display indicates the suggested denom that should be + // displayed in clients. + string display = 4; + // name defines the name of the token (eg: Cosmos Atom) + // + // Since: cosmos-sdk 0.43 + string name = 5; + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + // + // Since: cosmos-sdk 0.43 + string symbol = 6; + // URI to a document (on or off-chain) that contains additional information. Optional. + // + // Since: cosmos-sdk 0.46 + string uri = 7 [(gogoproto.customname) = "URI"]; + // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + // the document didn't change. Optional. + // + // Since: cosmos-sdk 0.46 + string uri_hash = 8 [(gogoproto.customname) = "URIHash"]; +} diff --git a/proto/rust-vendored/cosmos/bank/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/bank/v1beta1/genesis.proto new file mode 100644 index 0000000..caf05a9 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/v1beta1/genesis.proto @@ -0,0 +1,54 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// GenesisState defines the bank module's genesis state. +message GenesisState { + // params defines all the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // balances is an array containing the balances of all the accounts. + repeated Balance balances = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided + // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. + repeated cosmos.base.v1beta1.Coin supply = 3 [ + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + + // denom_metadata defines the metadata of the different coins. + repeated Metadata denom_metadata = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // send_enabled defines the denoms where send is enabled or disabled. + // + // Since: cosmos-sdk 0.47 + repeated SendEnabled send_enabled = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// Balance defines an account address and balance pair used in the bank module's +// genesis state. +message Balance { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address of the balance holder. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // coins defines the different coins this balance holds. + repeated cosmos.base.v1beta1.Coin coins = 2 [ + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} diff --git a/proto/rust-vendored/cosmos/bank/v1beta1/query.proto b/proto/rust-vendored/cosmos/bank/v1beta1/query.proto new file mode 100644 index 0000000..2332450 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/v1beta1/query.proto @@ -0,0 +1,355 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/query/v1/query.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Query defines the gRPC querier service. +service Query { + // Balance queries the balance of a single coin for a single account. + rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/by_denom"; + } + + // AllBalances queries the balance of all coins for a single account. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}"; + } + + // SpendableBalances queries the spendable balance of all coins for a single + // account. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + // + // Since: cosmos-sdk 0.46 + rpc SpendableBalances(QuerySpendableBalancesRequest) returns (QuerySpendableBalancesResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/spendable_balances/{address}"; + } + + // SpendableBalanceByDenom queries the spendable balance of a single denom for + // a single account. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + // + // Since: cosmos-sdk 0.47 + rpc SpendableBalanceByDenom(QuerySpendableBalanceByDenomRequest) returns (QuerySpendableBalanceByDenomResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/spendable_balances/{address}/by_denom"; + } + + // TotalSupply queries the total supply of all coins. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/supply"; + } + + // SupplyOf queries the supply of a single coin. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/supply/by_denom"; + } + + // Params queries the parameters of x/bank module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/params"; + } + + // DenomsMetadata queries the client metadata of a given coin denomination. + rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}"; + } + + // DenomsMetadata queries the client metadata for all registered coin + // denominations. + rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata"; + } + + // DenomOwners queries for all account addresses that own a particular token + // denomination. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + // + // Since: cosmos-sdk 0.46 + rpc DenomOwners(QueryDenomOwnersRequest) returns (QueryDenomOwnersResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/denom_owners/{denom}"; + } + + // SendEnabled queries for SendEnabled entries. + // + // This query only returns denominations that have specific SendEnabled settings. + // Any denomination that does not have a specific setting will use the default + // params.default_send_enabled, and will not be returned by this query. + // + // Since: cosmos-sdk 0.47 + rpc SendEnabled(QuerySendEnabledRequest) returns (QuerySendEnabledResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/bank/v1beta1/send_enabled"; + } +} + +// QueryBalanceRequest is the request type for the Query/Balance RPC method. +message QueryBalanceRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query balances for. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // denom is the coin denom to query balances for. + string denom = 2; +} + +// QueryBalanceResponse is the response type for the Query/Balance RPC method. +message QueryBalanceResponse { + // balance is the balance of the coin. + cosmos.base.v1beta1.Coin balance = 1; +} + +// QueryBalanceRequest is the request type for the Query/AllBalances RPC method. +message QueryAllBalancesRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query balances for. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; + + // resolve_denom is the flag to resolve the denom into a human-readable form from the metadata. + // + // Since: cosmos-sdk 0.48 + bool resolve_denom = 3; +} + +// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC +// method. +message QueryAllBalancesResponse { + // balances is the balances of all the coins. + repeated cosmos.base.v1beta1.Coin balances = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QuerySpendableBalancesRequest defines the gRPC request structure for querying +// an account's spendable balances. +// +// Since: cosmos-sdk 0.46 +message QuerySpendableBalancesRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query spendable balances for. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QuerySpendableBalancesResponse defines the gRPC response structure for querying +// an account's spendable balances. +// +// Since: cosmos-sdk 0.46 +message QuerySpendableBalancesResponse { + // balances is the spendable balances of all the coins. + repeated cosmos.base.v1beta1.Coin balances = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QuerySpendableBalanceByDenomRequest defines the gRPC request structure for +// querying an account's spendable balance for a specific denom. +// +// Since: cosmos-sdk 0.47 +message QuerySpendableBalanceByDenomRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query balances for. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // denom is the coin denom to query balances for. + string denom = 2; +} + +// QuerySpendableBalanceByDenomResponse defines the gRPC response structure for +// querying an account's spendable balance for a specific denom. +// +// Since: cosmos-sdk 0.47 +message QuerySpendableBalanceByDenomResponse { + // balance is the balance of the coin. + cosmos.base.v1beta1.Coin balance = 1; +} + +// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC +// method. +message QueryTotalSupplyRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // pagination defines an optional pagination for the request. + // + // Since: cosmos-sdk 0.43 + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC +// method +message QueryTotalSupplyResponse { + // supply is the supply of the coins + repeated cosmos.base.v1beta1.Coin supply = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // pagination defines the pagination in the response. + // + // Since: cosmos-sdk 0.43 + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. +message QuerySupplyOfRequest { + // denom is the coin denom to query balances for. + string denom = 1; +} + +// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. +message QuerySupplyOfResponse { + // amount is the supply of the coin. + cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryParamsRequest defines the request type for querying x/bank parameters. +message QueryParamsRequest {} + +// QueryParamsResponse defines the response type for querying x/bank parameters. +message QueryParamsResponse { + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. +message QueryDenomsMetadataRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC +// method. +message QueryDenomsMetadataResponse { + // metadata provides the client information for all the registered tokens. + repeated Metadata metadatas = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. +message QueryDenomMetadataRequest { + // denom is the coin denom to query the metadata for. + string denom = 1; +} + +// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC +// method. +message QueryDenomMetadataResponse { + // metadata describes and provides all the client information for the requested token. + Metadata metadata = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDenomOwnersRequest defines the request type for the DenomOwners RPC query, +// which queries for a paginated set of all account holders of a particular +// denomination. +message QueryDenomOwnersRequest { + // denom defines the coin denomination to query all account holders for. + string denom = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// DenomOwner defines structure representing an account that owns or holds a +// particular denominated token. It contains the account address and account +// balance of the denominated token. +// +// Since: cosmos-sdk 0.46 +message DenomOwner { + // address defines the address that owns a particular denomination. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // balance is the balance of the denominated coin for an account. + cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDenomOwnersResponse defines the RPC response of a DenomOwners RPC query. +// +// Since: cosmos-sdk 0.46 +message QueryDenomOwnersResponse { + repeated DenomOwner denom_owners = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QuerySendEnabledRequest defines the RPC request for looking up SendEnabled entries. +// +// Since: cosmos-sdk 0.47 +message QuerySendEnabledRequest { + // denoms is the specific denoms you want look up. Leave empty to get all entries. + repeated string denoms = 1; + // pagination defines an optional pagination for the request. This field is + // only read if the denoms field is empty. + cosmos.base.query.v1beta1.PageRequest pagination = 99; +} + +// QuerySendEnabledResponse defines the RPC response of a SendEnable query. +// +// Since: cosmos-sdk 0.47 +message QuerySendEnabledResponse { + repeated SendEnabled send_enabled = 1; + // pagination defines the pagination in the response. This field is only + // populated if the denoms field in the request is empty. + cosmos.base.query.v1beta1.PageResponse pagination = 99; +} diff --git a/proto/rust-vendored/cosmos/bank/v1beta1/tx.proto b/proto/rust-vendored/cosmos/bank/v1beta1/tx.proto new file mode 100644 index 0000000..c780be3 --- /dev/null +++ b/proto/rust-vendored/cosmos/bank/v1beta1/tx.proto @@ -0,0 +1,123 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Msg defines the bank Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Send defines a method for sending coins from one account to another account. + rpc Send(MsgSend) returns (MsgSendResponse); + + // MultiSend defines a method for sending coins from some accounts to other accounts. + rpc MultiSend(MsgMultiSend) returns (MsgMultiSendResponse); + + // UpdateParams defines a governance operation for updating the x/bank module parameters. + // The authority is defined in the keeper. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // SetSendEnabled is a governance operation for setting the SendEnabled flag + // on any number of Denoms. Only the entries to add or update should be + // included. Entries that already exist in the store, but that aren't + // included in this message, will be left unchanged. + // + // Since: cosmos-sdk 0.47 + rpc SetSendEnabled(MsgSetSendEnabled) returns (MsgSetSendEnabledResponse); +} + +// MsgSend represents a message to send coins from one account to another. +message MsgSend { + option (cosmos.msg.v1.signer) = "from_address"; + option (amino.name) = "cosmos-sdk/MsgSend"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string from_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgSendResponse defines the Msg/Send response type. +message MsgSendResponse {} + +// MsgMultiSend represents an arbitrary multi-in, multi-out send message. +message MsgMultiSend { + option (cosmos.msg.v1.signer) = "inputs"; + option (amino.name) = "cosmos-sdk/MsgMultiSend"; + + option (gogoproto.equal) = false; + + // Inputs, despite being `repeated`, only allows one sender input. This is + // checked in MsgMultiSend's ValidateBasic. + repeated Input inputs = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated Output outputs = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgMultiSendResponse defines the Msg/MultiSend response type. +message MsgMultiSendResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + option (amino.name) = "cosmos-sdk/x/bank/MsgUpdateParams"; + + // params defines the x/bank parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} + +// MsgSetSendEnabled is the Msg/SetSendEnabled request type. +// +// Only entries to add/update/delete need to be included. +// Existing SendEnabled entries that are not included in this +// message are left unchanged. +// +// Since: cosmos-sdk 0.47 +message MsgSetSendEnabled { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/MsgSetSendEnabled"; + + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // send_enabled is the list of entries to add or update. + repeated SendEnabled send_enabled = 2; + + // use_default_for is a list of denoms that should use the params.default_send_enabled value. + // Denoms listed here will have their SendEnabled entries deleted. + // If a denom is included that doesn't have a SendEnabled entry, + // it will be ignored. + repeated string use_default_for = 3; +} + +// MsgSetSendEnabledResponse defines the Msg/SetSendEnabled response type. +// +// Since: cosmos-sdk 0.47 +message MsgSetSendEnabledResponse {} diff --git a/proto/rust-vendored/cosmos/base/abci/v1beta1/abci.proto b/proto/rust-vendored/cosmos/base/abci/v1beta1/abci.proto new file mode 100644 index 0000000..9e3b4e5 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/abci/v1beta1/abci.proto @@ -0,0 +1,177 @@ +syntax = "proto3"; +package cosmos.base.abci.v1beta1; + +import "gogoproto/gogo.proto"; +import "tendermint/abci/types.proto"; +import "tendermint/types/block.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types"; +option (gogoproto.goproto_stringer_all) = false; + +// TxResponse defines a structure containing relevant tx data and metadata. The +// tags are stringified and the log is JSON decoded. +message TxResponse { + option (gogoproto.goproto_getters) = false; + // The block height + int64 height = 1; + // The transaction hash. + string txhash = 2 [(gogoproto.customname) = "TxHash"]; + // Namespace for the Code + string codespace = 3; + // Response code. + uint32 code = 4; + // Result bytes, if any. + string data = 5; + // The output of the application's logger (raw string). May be + // non-deterministic. + string raw_log = 6; + // The output of the application's logger (typed). May be non-deterministic. + repeated ABCIMessageLog logs = 7 [(gogoproto.castrepeated) = "ABCIMessageLogs", (gogoproto.nullable) = false]; + // Additional information. May be non-deterministic. + string info = 8; + // Amount of gas requested for transaction. + int64 gas_wanted = 9; + // Amount of gas consumed by transaction. + int64 gas_used = 10; + // The request transaction bytes. + google.protobuf.Any tx = 11; + // Time of the previous block. For heights > 1, it's the weighted median of + // the timestamps of the valid votes in the block.LastCommit. For height == 1, + // it's genesis time. + string timestamp = 12; + // Events defines all the events emitted by processing a transaction. Note, + // these events include those emitted by processing all the messages and those + // emitted from the ante. Whereas Logs contains the events, with + // additional metadata, emitted only by processing the messages. + // + // Since: cosmos-sdk 0.42.11, 0.44.5, 0.45 + repeated tendermint.abci.Event events = 13 [(gogoproto.nullable) = false]; +} + +// ABCIMessageLog defines a structure containing an indexed tx ABCI message log. +message ABCIMessageLog { + option (gogoproto.stringer) = true; + + uint32 msg_index = 1 [(gogoproto.jsontag) = "msg_index"]; + string log = 2; + + // Events contains a slice of Event objects that were emitted during some + // execution. + repeated StringEvent events = 3 [(gogoproto.castrepeated) = "StringEvents", (gogoproto.nullable) = false]; +} + +// StringEvent defines en Event object wrapper where all the attributes +// contain key/value pairs that are strings instead of raw bytes. +message StringEvent { + option (gogoproto.stringer) = true; + + string type = 1; + repeated Attribute attributes = 2 [(gogoproto.nullable) = false]; +} + +// Attribute defines an attribute wrapper where the key and value are +// strings instead of raw bytes. +message Attribute { + string key = 1; + string value = 2; +} + +// GasInfo defines tx execution gas context. +message GasInfo { + // GasWanted is the maximum units of work we allow this tx to perform. + uint64 gas_wanted = 1; + + // GasUsed is the amount of gas actually consumed. + uint64 gas_used = 2; +} + +// Result is the union of ResponseFormat and ResponseCheckTx. +message Result { + option (gogoproto.goproto_getters) = false; + + // Data is any data returned from message or handler execution. It MUST be + // length prefixed in order to separate data from multiple message executions. + // Deprecated. This field is still populated, but prefer msg_response instead + // because it also contains the Msg response typeURL. + bytes data = 1 [deprecated = true]; + + // Log contains the log information from message or handler execution. + string log = 2; + + // Events contains a slice of Event objects that were emitted during message + // or handler execution. + repeated tendermint.abci.Event events = 3 [(gogoproto.nullable) = false]; + + // msg_responses contains the Msg handler responses type packed in Anys. + // + // Since: cosmos-sdk 0.46 + repeated google.protobuf.Any msg_responses = 4; +} + +// SimulationResponse defines the response generated when a transaction is +// successfully simulated. +message SimulationResponse { + GasInfo gas_info = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; + Result result = 2; +} + +// MsgData defines the data returned in a Result object during message +// execution. +message MsgData { + option deprecated = true; + option (gogoproto.stringer) = true; + + string msg_type = 1; + bytes data = 2; +} + +// TxMsgData defines a list of MsgData. A transaction will have a MsgData object +// for each message. +message TxMsgData { + option (gogoproto.stringer) = true; + + // data field is deprecated and not populated. + repeated MsgData data = 1 [deprecated = true]; + + // msg_responses contains the Msg handler responses packed into Anys. + // + // Since: cosmos-sdk 0.46 + repeated google.protobuf.Any msg_responses = 2; +} + +// SearchTxsResult defines a structure for querying txs pageable +message SearchTxsResult { + option (gogoproto.stringer) = true; + + // Count of all txs + uint64 total_count = 1; + // Count of txs in current page + uint64 count = 2; + // Index of current page, start from 1 + uint64 page_number = 3; + // Count of total pages + uint64 page_total = 4; + // Max count txs per page + uint64 limit = 5; + // List of txs in current page + repeated TxResponse txs = 6; +} + +// SearchBlocksResult defines a structure for querying blocks pageable +message SearchBlocksResult { + option (gogoproto.stringer) = true; + + // Count of all blocks + int64 total_count = 1; + // Count of blocks in current page + int64 count = 2; + // Index of current page, start from 1 + int64 page_number = 3; + // Count of total pages + int64 page_total = 4; + // Max count blocks per page + int64 limit = 5; + // List of blocks in current page + repeated tendermint.types.Block blocks = 6; +} diff --git a/proto/rust-vendored/cosmos/base/node/v1beta1/query.proto b/proto/rust-vendored/cosmos/base/node/v1beta1/query.proto new file mode 100644 index 0000000..78fd9f6 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/node/v1beta1/query.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package cosmos.base.node.v1beta1; + +import "google/api/annotations.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/node"; + +// Service defines the gRPC querier service for node related queries. +service Service { + // Config queries for the operator configuration. + rpc Config(ConfigRequest) returns (ConfigResponse) { + option (google.api.http).get = "/cosmos/base/node/v1beta1/config"; + } + // Status queries for the node status. + rpc Status(StatusRequest) returns (StatusResponse) { + option (google.api.http).get = "/cosmos/base/node/v1beta1/status"; + } +} + +// ConfigRequest defines the request structure for the Config gRPC query. +message ConfigRequest {} + +// ConfigResponse defines the response structure for the Config gRPC query. +message ConfigResponse { + string minimum_gas_price = 1; + // pruning settings + string pruning_keep_recent = 2; + string pruning_interval = 3; +} + +// StateRequest defines the request structure for the status of a node. +message StatusRequest {} + +// StateResponse defines the response structure for the status of a node. +message StatusResponse { + uint64 earliest_store_height = 1; // earliest block height available in the store + uint64 height = 2; // current block height + google.protobuf.Timestamp timestamp = 3 [(gogoproto.stdtime) = true]; // block height timestamp + bytes app_hash = 4; // app hash of the current block + bytes validator_hash = 5; // validator hash provided by the consensus header +} diff --git a/proto/rust-vendored/cosmos/base/query/v1beta1/pagination.proto b/proto/rust-vendored/cosmos/base/query/v1beta1/pagination.proto new file mode 100644 index 0000000..0a36814 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/query/v1beta1/pagination.proto @@ -0,0 +1,56 @@ +syntax = "proto3"; +package cosmos.base.query.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/types/query"; + +// PageRequest is to be embedded in gRPC request messages for efficient +// pagination. Ex: +// +// message SomeRequest { +// Foo some_parameter = 1; +// PageRequest pagination = 2; +// } +message PageRequest { + // key is a value returned in PageResponse.next_key to begin + // querying the next page most efficiently. Only one of offset or key + // should be set. + bytes key = 1; + + // offset is a numeric offset that can be used when key is unavailable. + // It is less efficient than using key. Only one of offset or key should + // be set. + uint64 offset = 2; + + // limit is the total number of results to be returned in the result page. + // If left empty it will default to a value to be set by each app. + uint64 limit = 3; + + // count_total is set to true to indicate that the result set should include + // a count of the total number of items available for pagination in UIs. + // count_total is only respected when offset is used. It is ignored when key + // is set. + bool count_total = 4; + + // reverse is set to true if results are to be returned in the descending order. + // + // Since: cosmos-sdk 0.43 + bool reverse = 5; +} + +// PageResponse is to be embedded in gRPC response messages where the +// corresponding request message has used PageRequest. +// +// message SomeResponse { +// repeated Bar results = 1; +// PageResponse page = 2; +// } +message PageResponse { + // next_key is the key to be passed to PageRequest.key to + // query the next page most efficiently. It will be empty if + // there are no more results. + bytes next_key = 1; + + // total is total number of results available if PageRequest.count_total + // was set, its value is undefined otherwise + uint64 total = 2; +} diff --git a/proto/rust-vendored/cosmos/base/reflection/v1beta1/reflection.proto b/proto/rust-vendored/cosmos/base/reflection/v1beta1/reflection.proto new file mode 100644 index 0000000..22670e7 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/reflection/v1beta1/reflection.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; +package cosmos.base.reflection.v1beta1; + +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/reflection"; + +// ReflectionService defines a service for interface reflection. +service ReflectionService { + // ListAllInterfaces lists all the interfaces registered in the interface + // registry. + rpc ListAllInterfaces(ListAllInterfacesRequest) returns (ListAllInterfacesResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces"; + }; + + // ListImplementations list all the concrete types that implement a given + // interface. + rpc ListImplementations(ListImplementationsRequest) returns (ListImplementationsResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces/" + "{interface_name}/implementations"; + }; +} + +// ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. +message ListAllInterfacesRequest {} + +// ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. +message ListAllInterfacesResponse { + // interface_names is an array of all the registered interfaces. + repeated string interface_names = 1; +} + +// ListImplementationsRequest is the request type of the ListImplementations +// RPC. +message ListImplementationsRequest { + // interface_name defines the interface to query the implementations for. + string interface_name = 1; +} + +// ListImplementationsResponse is the response type of the ListImplementations +// RPC. +message ListImplementationsResponse { + repeated string implementation_message_names = 1; +} diff --git a/proto/rust-vendored/cosmos/base/reflection/v2alpha1/reflection.proto b/proto/rust-vendored/cosmos/base/reflection/v2alpha1/reflection.proto new file mode 100644 index 0000000..d5b0485 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/reflection/v2alpha1/reflection.proto @@ -0,0 +1,218 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.base.reflection.v2alpha1; + +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/server/grpc/reflection/v2alpha1"; + +// AppDescriptor describes a cosmos-sdk based application +message AppDescriptor { + // AuthnDescriptor provides information on how to authenticate transactions on the application + // NOTE: experimental and subject to change in future releases. + AuthnDescriptor authn = 1; + // chain provides the chain descriptor + ChainDescriptor chain = 2; + // codec provides metadata information regarding codec related types + CodecDescriptor codec = 3; + // configuration provides metadata information regarding the sdk.Config type + ConfigurationDescriptor configuration = 4; + // query_services provides metadata information regarding the available queriable endpoints + QueryServicesDescriptor query_services = 5; + // tx provides metadata information regarding how to send transactions to the given application + TxDescriptor tx = 6; +} + +// TxDescriptor describes the accepted transaction type +message TxDescriptor { + // fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type) + // it is not meant to support polymorphism of transaction types, it is supposed to be used by + // reflection clients to understand if they can handle a specific transaction type in an application. + string fullname = 1; + // msgs lists the accepted application messages (sdk.Msg) + repeated MsgDescriptor msgs = 2; +} + +// AuthnDescriptor provides information on how to sign transactions without relying +// on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures +message AuthnDescriptor { + // sign_modes defines the supported signature algorithm + repeated SigningModeDescriptor sign_modes = 1; +} + +// SigningModeDescriptor provides information on a signing flow of the application +// NOTE(fdymylja): here we could go as far as providing an entire flow on how +// to sign a message given a SigningModeDescriptor, but it's better to think about +// this another time +message SigningModeDescriptor { + // name defines the unique name of the signing mode + string name = 1; + // number is the unique int32 identifier for the sign_mode enum + int32 number = 2; + // authn_info_provider_method_fullname defines the fullname of the method to call to get + // the metadata required to authenticate using the provided sign_modes + string authn_info_provider_method_fullname = 3; +} + +// ChainDescriptor describes chain information of the application +message ChainDescriptor { + // id is the chain id + string id = 1; +} + +// CodecDescriptor describes the registered interfaces and provides metadata information on the types +message CodecDescriptor { + // interfaces is a list of the registerted interfaces descriptors + repeated InterfaceDescriptor interfaces = 1; +} + +// InterfaceDescriptor describes the implementation of an interface +message InterfaceDescriptor { + // fullname is the name of the interface + string fullname = 1; + // interface_accepting_messages contains information regarding the proto messages which contain the interface as + // google.protobuf.Any field + repeated InterfaceAcceptingMessageDescriptor interface_accepting_messages = 2; + // interface_implementers is a list of the descriptors of the interface implementers + repeated InterfaceImplementerDescriptor interface_implementers = 3; +} + +// InterfaceImplementerDescriptor describes an interface implementer +message InterfaceImplementerDescriptor { + // fullname is the protobuf queryable name of the interface implementer + string fullname = 1; + // type_url defines the type URL used when marshalling the type as any + // this is required so we can provide type safe google.protobuf.Any marshalling and + // unmarshalling, making sure that we don't accept just 'any' type + // in our interface fields + string type_url = 2; +} + +// InterfaceAcceptingMessageDescriptor describes a protobuf message which contains +// an interface represented as a google.protobuf.Any +message InterfaceAcceptingMessageDescriptor { + // fullname is the protobuf fullname of the type containing the interface + string fullname = 1; + // field_descriptor_names is a list of the protobuf name (not fullname) of the field + // which contains the interface as google.protobuf.Any (the interface is the same, but + // it can be in multiple fields of the same proto message) + repeated string field_descriptor_names = 2; +} + +// ConfigurationDescriptor contains metadata information on the sdk.Config +message ConfigurationDescriptor { + // bech32_account_address_prefix is the account address prefix + string bech32_account_address_prefix = 1; +} + +// MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction +message MsgDescriptor { + // msg_type_url contains the TypeURL of a sdk.Msg. + string msg_type_url = 1; +} + +// ReflectionService defines a service for application reflection. +service ReflectionService { + // GetAuthnDescriptor returns information on how to authenticate transactions in the application + // NOTE: this RPC is still experimental and might be subject to breaking changes or removal in + // future releases of the cosmos-sdk. + rpc GetAuthnDescriptor(GetAuthnDescriptorRequest) returns (GetAuthnDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/authn"; + } + // GetChainDescriptor returns the description of the chain + rpc GetChainDescriptor(GetChainDescriptorRequest) returns (GetChainDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/chain"; + }; + // GetCodecDescriptor returns the descriptor of the codec of the application + rpc GetCodecDescriptor(GetCodecDescriptorRequest) returns (GetCodecDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/codec"; + } + // GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application + rpc GetConfigurationDescriptor(GetConfigurationDescriptorRequest) returns (GetConfigurationDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/configuration"; + } + // GetQueryServicesDescriptor returns the available gRPC queryable services of the application + rpc GetQueryServicesDescriptor(GetQueryServicesDescriptorRequest) returns (GetQueryServicesDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/query_services"; + } + // GetTxDescriptor returns information on the used transaction object and available msgs that can be used + rpc GetTxDescriptor(GetTxDescriptorRequest) returns (GetTxDescriptorResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/tx_descriptor"; + } +} + +// GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC +message GetAuthnDescriptorRequest {} +// GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC +message GetAuthnDescriptorResponse { + // authn describes how to authenticate to the application when sending transactions + AuthnDescriptor authn = 1; +} + +// GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC +message GetChainDescriptorRequest {} +// GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC +message GetChainDescriptorResponse { + // chain describes application chain information + ChainDescriptor chain = 1; +} + +// GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC +message GetCodecDescriptorRequest {} +// GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC +message GetCodecDescriptorResponse { + // codec describes the application codec such as registered interfaces and implementations + CodecDescriptor codec = 1; +} + +// GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC +message GetConfigurationDescriptorRequest {} +// GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC +message GetConfigurationDescriptorResponse { + // config describes the application's sdk.Config + ConfigurationDescriptor config = 1; +} + +// GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC +message GetQueryServicesDescriptorRequest {} +// GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC +message GetQueryServicesDescriptorResponse { + // queries provides information on the available queryable services + QueryServicesDescriptor queries = 1; +} + +// GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC +message GetTxDescriptorRequest {} +// GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC +message GetTxDescriptorResponse { + // tx provides information on msgs that can be forwarded to the application + // alongside the accepted transaction protobuf type + TxDescriptor tx = 1; +} + +// QueryServicesDescriptor contains the list of cosmos-sdk queriable services +message QueryServicesDescriptor { + // query_services is a list of cosmos-sdk QueryServiceDescriptor + repeated QueryServiceDescriptor query_services = 1; +} + +// QueryServiceDescriptor describes a cosmos-sdk queryable service +message QueryServiceDescriptor { + // fullname is the protobuf fullname of the service descriptor + string fullname = 1; + // is_module describes if this service is actually exposed by an application's module + bool is_module = 2; + // methods provides a list of query service methods + repeated QueryMethodDescriptor methods = 3; +} + +// QueryMethodDescriptor describes a queryable method of a query service +// no other info is provided beside method name and tendermint queryable path +// because it would be redundant with the grpc reflection service +message QueryMethodDescriptor { + // name is the protobuf name (not fullname) of the method + string name = 1; + // full_query_path is the path that can be used to query + // this method via tendermint abci.Query + string full_query_path = 2; +} diff --git a/proto/rust-vendored/cosmos/base/tendermint/v1beta1/query.proto b/proto/rust-vendored/cosmos/base/tendermint/v1beta1/query.proto new file mode 100644 index 0000000..6de6f2c --- /dev/null +++ b/proto/rust-vendored/cosmos/base/tendermint/v1beta1/query.proto @@ -0,0 +1,208 @@ +syntax = "proto3"; +package cosmos.base.tendermint.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "tendermint/p2p/types.proto"; +import "tendermint/types/types.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos/base/tendermint/v1beta1/types.proto"; +import "cosmos_proto/cosmos.proto"; +import "tendermint/types/block.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"; + +// Service defines the gRPC querier service for tendermint queries. +service Service { + // GetNodeInfo queries the current node info. + rpc GetNodeInfo(GetNodeInfoRequest) returns (GetNodeInfoResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/node_info"; + } + + // GetSyncing queries node syncing. + rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing"; + } + + // GetLatestBlock returns the latest block. + rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest"; + } + + // GetBlockByHeight queries block for given height. + rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/{height}"; + } + + // GetLatestValidatorSet queries latest validator-set. + rpc GetLatestValidatorSet(GetLatestValidatorSetRequest) returns (GetLatestValidatorSetResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest"; + } + + // GetValidatorSetByHeight queries validator-set at a given height. + rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}"; + } + + // ABCIQuery defines a query handler that supports ABCI queries directly to the + // application, bypassing Tendermint completely. The ABCI query must contain + // a valid and supported path, including app, custom, p2p, and store. + // + // Since: cosmos-sdk 0.46 + rpc ABCIQuery(ABCIQueryRequest) returns (ABCIQueryResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/abci_query"; + } +} + +// GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. +message GetValidatorSetByHeightRequest { + int64 height = 1; + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. +message GetValidatorSetByHeightResponse { + int64 block_height = 1; + repeated Validator validators = 2; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} + +// GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. +message GetLatestValidatorSetRequest { + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. +message GetLatestValidatorSetResponse { + int64 block_height = 1; + repeated Validator validators = 2; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} + +// Validator is the type for the validator-set. +message Validator { + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + google.protobuf.Any pub_key = 2; + int64 voting_power = 3; + int64 proposer_priority = 4; +} + +// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightRequest { + int64 height = 1; +} + +// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightResponse { + .tendermint.types.BlockID block_id = 1; + + // Deprecated: please use `sdk_block` instead + .tendermint.types.Block block = 2; + + // Since: cosmos-sdk 0.47 + Block sdk_block = 3; +} + +// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. +message GetLatestBlockRequest {} + +// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. +message GetLatestBlockResponse { + .tendermint.types.BlockID block_id = 1; + + // Deprecated: please use `sdk_block` instead + .tendermint.types.Block block = 2; + + // Since: cosmos-sdk 0.47 + Block sdk_block = 3; +} + +// GetSyncingRequest is the request type for the Query/GetSyncing RPC method. +message GetSyncingRequest {} + +// GetSyncingResponse is the response type for the Query/GetSyncing RPC method. +message GetSyncingResponse { + bool syncing = 1; +} + +// GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. +message GetNodeInfoRequest {} + +// GetNodeInfoResponse is the response type for the Query/GetNodeInfo RPC method. +message GetNodeInfoResponse { + .tendermint.p2p.DefaultNodeInfo default_node_info = 1; + VersionInfo application_version = 2; +} + +// VersionInfo is the type for the GetNodeInfoResponse message. +message VersionInfo { + string name = 1; + string app_name = 2; + string version = 3; + string git_commit = 4; + string build_tags = 5; + string go_version = 6; + repeated Module build_deps = 7; + // Since: cosmos-sdk 0.43 + string cosmos_sdk_version = 8; +} + +// Module is the type for VersionInfo +message Module { + // module path + string path = 1; + // module version + string version = 2; + // checksum + string sum = 3; +} + +// ABCIQueryRequest defines the request structure for the ABCIQuery gRPC query. +message ABCIQueryRequest { + bytes data = 1; + string path = 2; + int64 height = 3; + bool prove = 4; +} + +// ABCIQueryResponse defines the response structure for the ABCIQuery gRPC query. +// +// Note: This type is a duplicate of the ResponseQuery proto type defined in +// Tendermint. +message ABCIQueryResponse { + uint32 code = 1; + // DEPRECATED: use "value" instead + reserved 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 index = 5; + bytes key = 6; + bytes value = 7; + ProofOps proof_ops = 8; + int64 height = 9; + string codespace = 10; +} + +// ProofOp defines an operation used for calculating Merkle root. The data could +// be arbitrary format, providing necessary data for example neighbouring node +// hash. +// +// Note: This type is a duplicate of the ProofOp proto type defined in Tendermint. +message ProofOp { + string type = 1; + bytes key = 2; + bytes data = 3; +} + +// ProofOps is Merkle proof defined by the list of ProofOps. +// +// Note: This type is a duplicate of the ProofOps proto type defined in Tendermint. +message ProofOps { + repeated ProofOp ops = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/base/tendermint/v1beta1/types.proto b/proto/rust-vendored/cosmos/base/tendermint/v1beta1/types.proto new file mode 100644 index 0000000..624ff41 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/tendermint/v1beta1/types.proto @@ -0,0 +1,52 @@ +syntax = "proto3"; +package cosmos.base.tendermint.v1beta1; + +import "gogoproto/gogo.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/evidence.proto"; +import "tendermint/version/types.proto"; +import "google/protobuf/timestamp.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice"; + +// Block is tendermint type Block, with the Header proposer address +// field converted to bech32 string. +message Block { + Header header = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + .tendermint.types.Data data = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + .tendermint.types.EvidenceList evidence = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + .tendermint.types.Commit last_commit = 4; +} + +// Header defines the structure of a Tendermint block header. +message Header { + // basic block info + .tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + string chain_id = 2 [(gogoproto.customname) = "ChainID"]; + int64 height = 3; + google.protobuf.Timestamp time = 4 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + + // prev block info + .tendermint.types.BlockID last_block_id = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // hashes of block data + bytes last_commit_hash = 6; // commit from validators from the last block + bytes data_hash = 7; // transactions + + // hashes from the app output from the prev block + bytes validators_hash = 8; // validators for the current block + bytes next_validators_hash = 9; // validators for the next block + bytes consensus_hash = 10; // consensus params for current block + bytes app_hash = 11; // state after txs from the previous block + bytes last_results_hash = 12; // root hash of all results from the txs from the previous block + + // consensus info + bytes evidence_hash = 13; // evidence included in the block + + // proposer_address is the original block proposer address, formatted as a Bech32 string. + // In Tendermint, this type is `bytes`, but in the SDK, we convert it to a Bech32 string + // for better UX. + string proposer_address = 14; // original proposer of the block +} diff --git a/proto/rust-vendored/cosmos/base/v1beta1/coin.proto b/proto/rust-vendored/cosmos/base/v1beta1/coin.proto new file mode 100644 index 0000000..b4bd2e1 --- /dev/null +++ b/proto/rust-vendored/cosmos/base/v1beta1/coin.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +package cosmos.base.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types"; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = false; + +// Coin defines a token with a denomination and an amount. +// +// NOTE: The amount field is an Int which implements the custom method +// signatures required by gogoproto. +message Coin { + option (gogoproto.equal) = true; + + string denom = 1; + string amount = 2 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// DecCoin defines a token with a denomination and a decimal amount. +// +// NOTE: The amount field is an Dec which implements the custom method +// signatures required by gogoproto. +message DecCoin { + option (gogoproto.equal) = true; + + string denom = 1; + string amount = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/rust-vendored/cosmos/circuit/module/v1/module.proto b/proto/rust-vendored/cosmos/circuit/module/v1/module.proto new file mode 100644 index 0000000..7104bad --- /dev/null +++ b/proto/rust-vendored/cosmos/circuit/module/v1/module.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package cosmos.circuit.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the circuit module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/x/circuit" + }; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 1; +} diff --git a/proto/rust-vendored/cosmos/circuit/v1/query.proto b/proto/rust-vendored/cosmos/circuit/v1/query.proto new file mode 100644 index 0000000..69bdb11 --- /dev/null +++ b/proto/rust-vendored/cosmos/circuit/v1/query.proto @@ -0,0 +1,61 @@ +syntax = "proto3"; +package cosmos.circuit.v1; + +option go_package = "cosmossdk.io/x/circuit/types"; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos/circuit/v1/types.proto"; +import "google/api/annotations.proto"; +import "cosmos/query/v1/query.proto"; + +// Msg defines the crisis Msg service. +service Query { + // Account returns account permissions. + rpc Account(QueryAccountRequest) returns (AccountResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/circuit/v1/accounts/{address}"; + } + + // Account returns account permissions. + rpc Accounts(QueryAccountsRequest) returns (AccountsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/circuit/v1/accounts"; + } + + // DisabledList returns a list of disabled message urls + rpc DisabledList(QueryDisabledListRequest) returns (DisabledListResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/circuit/v1/disable_list"; + } +} + +// QueryAccountRequest is the request type for the Query/Account RPC method. +message QueryAccountRequest { + string address = 1; +} + +// AccountResponse is the response type for the Query/Account RPC method. +message AccountResponse { + Permissions permission = 1; +} + +// QueryAccountsRequest is the request type for the Query/Accounts RPC method. +message QueryAccountsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// AccountsResponse is the response type for the Query/Accounts RPC method. +message AccountsResponse { + repeated GenesisAccountPermissions accounts = 1; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDisableListRequest is the request type for the Query/DisabledList RPC method. +message QueryDisabledListRequest {} + +// DisabledListResponse is the response type for the Query/DisabledList RPC method. +message DisabledListResponse { + repeated string disabled_list = 1; +} diff --git a/proto/rust-vendored/cosmos/circuit/v1/tx.proto b/proto/rust-vendored/cosmos/circuit/v1/tx.proto new file mode 100644 index 0000000..44e55a9 --- /dev/null +++ b/proto/rust-vendored/cosmos/circuit/v1/tx.proto @@ -0,0 +1,83 @@ +syntax = "proto3"; +package cosmos.circuit.v1; + +option go_package = "cosmossdk.io/x/circuit/types"; + +import "cosmos/msg/v1/msg.proto"; +import "cosmos/circuit/v1/types.proto"; + +// Msg defines the crisis Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // AuthorizeCircuitBreaker allows a super-admin to grant (or revoke) another + // account's circuit breaker permissions. + rpc AuthorizeCircuitBreaker(MsgAuthorizeCircuitBreaker) returns (MsgAuthorizeCircuitBreakerResponse); + + // TripCircuitBreaker pauses processing of Msg's in the state machine. + rpc TripCircuitBreaker(MsgTripCircuitBreaker) returns (MsgTripCircuitBreakerResponse); + + // ResetCircuitBreaker resumes processing of Msg's in the state machine that + // have been been paused using TripCircuitBreaker. + rpc ResetCircuitBreaker(MsgResetCircuitBreaker) returns (MsgResetCircuitBreakerResponse); +} + +// MsgAuthorizeCircuitBreaker defines the Msg/AuthorizeCircuitBreaker request type. +message MsgAuthorizeCircuitBreaker { + option (cosmos.msg.v1.signer) = "granter"; + + // granter is the granter of the circuit breaker permissions and must have + // LEVEL_SUPER_ADMIN. + string granter = 1; + + // grantee is the account authorized with the provided permissions. + string grantee = 2; + + // permissions are the circuit breaker permissions that the grantee receives. + // These will overwrite any existing permissions. LEVEL_NONE_UNSPECIFIED can + // be specified to revoke all permissions. + Permissions permissions = 3; +} + +// MsgAuthorizeCircuitBreaker defines the Msg/AuthorizeCircuitBreaker response type. +message MsgAuthorizeCircuitBreakerResponse { + bool success = 1; +} + +// MsgTripCircuitBreaker defines the Msg/TripCircuitBreaker request type. +message MsgTripCircuitBreaker { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the account authorized to trip the circuit breaker. + string authority = 1; + + // msg_type_urls specifies a list of type URLs to immediately stop processing. + // IF IT IS LEFT EMPTY, ALL MSG PROCESSING WILL STOP IMMEDIATELY. + // This value is validated against the authority's permissions and if the + // authority does not have permissions to trip the specified msg type URLs + // (or all URLs), the operation will fail. + repeated string msg_type_urls = 2; +} + +// MsgTripCircuitBreaker defines the Msg/TripCircuitBreaker response type. +message MsgTripCircuitBreakerResponse { + bool success = 1; +} + +// MsgResetCircuitBreaker defines the Msg/ResetCircuitBreaker request type. +message MsgResetCircuitBreaker { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the account authorized to trip or reset the circuit breaker. + string authority = 1; + + // msg_type_urls specifies a list of Msg type URLs to resume processing. If + // it is left empty all Msg processing for type URLs that the account is + // authorized to trip will resume. + repeated string msg_type_urls = 3; +} + +// MsgResetCircuitBreakerResponse defines the Msg/ResetCircuitBreaker response type. +message MsgResetCircuitBreakerResponse { + bool success = 1; +} diff --git a/proto/rust-vendored/cosmos/circuit/v1/types.proto b/proto/rust-vendored/cosmos/circuit/v1/types.proto new file mode 100644 index 0000000..1bd8d9d --- /dev/null +++ b/proto/rust-vendored/cosmos/circuit/v1/types.proto @@ -0,0 +1,49 @@ +syntax = "proto3"; +package cosmos.circuit.v1; + +option go_package = "cosmossdk.io/x/circuit/types"; + +// Permissions are the permissions that an account has to trip +// or reset the circuit breaker. +message Permissions { + // level is the level of permissions granted to this account. + Level level = 1; + + // limit_type_urls is used with LEVEL_SOME_MSGS to limit the lists of Msg type + // URLs that the account can trip. It is an error to use limit_type_urls with + // a level other than LEVEL_SOME_MSGS. + repeated string limit_type_urls = 2; + + // Level is the permission level. + enum Level { + // LEVEL_NONE_UNSPECIFIED indicates that the account will have no circuit + // breaker permissions. + LEVEL_NONE_UNSPECIFIED = 0; + + // LEVEL_SOME_MSGS indicates that the account will have permission to + // trip or reset the circuit breaker for some Msg type URLs. If this level + // is chosen, a non-empty list of Msg type URLs must be provided in + // limit_type_urls. + LEVEL_SOME_MSGS = 1; + + // LEVEL_ALL_MSGS indicates that the account can trip or reset the circuit + // breaker for Msg's of all type URLs. + LEVEL_ALL_MSGS = 2; + + // LEVEL_SUPER_ADMIN indicates that the account can take all circuit breaker + // actions and can grant permissions to other accounts. + LEVEL_SUPER_ADMIN = 3; + } +} + +// GenesisAccountPermissions is the account permissions for the circuit breaker in genesis +message GenesisAccountPermissions { + string address = 1; + Permissions permissions = 2; +} + +// GenesisState is the state that must be provided at genesis. +message GenesisState { + repeated GenesisAccountPermissions account_permissions = 1; + repeated string disabled_type_urls = 2; +} diff --git a/proto/rust-vendored/cosmos/consensus/module/v1/module.proto b/proto/rust-vendored/cosmos/consensus/module/v1/module.proto new file mode 100644 index 0000000..8e188cc --- /dev/null +++ b/proto/rust-vendored/cosmos/consensus/module/v1/module.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package cosmos.consensus.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the consensus module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/consensus" + }; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 1; +} diff --git a/proto/rust-vendored/cosmos/consensus/v1/query.proto b/proto/rust-vendored/cosmos/consensus/v1/query.proto new file mode 100644 index 0000000..cdcb07b --- /dev/null +++ b/proto/rust-vendored/cosmos/consensus/v1/query.proto @@ -0,0 +1,27 @@ +// Since: cosmos-sdk 0.47 +syntax = "proto3"; +package cosmos.consensus.v1; + +import "google/api/annotations.proto"; +import "tendermint/types/params.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/consensus/types"; + +// Query defines the gRPC querier service. +service Query { + // Params queries the parameters of x/consensus_param module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/consensus/v1/params"; + } +} + +// QueryParamsRequest defines the request type for querying x/consensus parameters. +message QueryParamsRequest {} + +// QueryParamsResponse defines the response type for querying x/consensus parameters. +message QueryParamsResponse { + // params are the tendermint consensus params stored in the consensus module. + // Please note that `params.version` is not populated in this response, it is + // tracked separately in the x/upgrade module. + tendermint.types.ConsensusParams params = 1; +} diff --git a/proto/rust-vendored/cosmos/consensus/v1/tx.proto b/proto/rust-vendored/cosmos/consensus/v1/tx.proto new file mode 100644 index 0000000..2f79852 --- /dev/null +++ b/proto/rust-vendored/cosmos/consensus/v1/tx.proto @@ -0,0 +1,43 @@ +// Since: cosmos-sdk 0.47 +syntax = "proto3"; +package cosmos.consensus.v1; + +import "amino/amino.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "tendermint/types/params.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/consensus/types"; + +// Msg defines the bank Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // UpdateParams defines a governance operation for updating the x/consensus_param module parameters. + // The authority is defined in the keeper. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgUpdateParams is the Msg/UpdateParams request type. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/consensus/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/consensus parameters to update. + // VersionsParams is not included in this Msg because it is tracked + // separarately in x/upgrade. + // + // NOTE: All parameters must be supplied. + tendermint.types.BlockParams block = 2; + tendermint.types.EvidenceParams evidence = 3; + tendermint.types.ValidatorParams validator = 4; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/cosmos/crisis/module/v1/module.proto b/proto/rust-vendored/cosmos/crisis/module/v1/module.proto new file mode 100644 index 0000000..fe92496 --- /dev/null +++ b/proto/rust-vendored/cosmos/crisis/module/v1/module.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package cosmos.crisis.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the crisis module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/crisis" + }; + + // fee_collector_name is the name of the FeeCollector ModuleAccount. + string fee_collector_name = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/crisis/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/crisis/v1beta1/genesis.proto new file mode 100644 index 0000000..b0ddb9b --- /dev/null +++ b/proto/rust-vendored/cosmos/crisis/v1beta1/genesis.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package cosmos.crisis.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; + +// GenesisState defines the crisis module's genesis state. +message GenesisState { + // constant_fee is the fee used to verify the invariant in the crisis + // module. + cosmos.base.v1beta1.Coin constant_fee = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/crisis/v1beta1/tx.proto b/proto/rust-vendored/cosmos/crisis/v1beta1/tx.proto new file mode 100644 index 0000000..4fcf5bf --- /dev/null +++ b/proto/rust-vendored/cosmos/crisis/v1beta1/tx.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; +package cosmos.crisis.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Msg defines the bank Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // VerifyInvariant defines a method to verify a particular invariant. + rpc VerifyInvariant(MsgVerifyInvariant) returns (MsgVerifyInvariantResponse); + + // UpdateParams defines a governance operation for updating the x/crisis module + // parameters. The authority is defined in the keeper. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgVerifyInvariant represents a message to verify a particular invariance. +message MsgVerifyInvariant { + option (cosmos.msg.v1.signer) = "sender"; + option (amino.name) = "cosmos-sdk/MsgVerifyInvariant"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // sender is the account address of private key to send coins to fee collector account. + string sender = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // name of the invariant module. + string invariant_module_name = 2; + + // invariant_route is the msg's invariant route. + string invariant_route = 3; +} + +// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. +message MsgVerifyInvariantResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/crisis/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // constant_fee defines the x/crisis parameter. + cosmos.base.v1beta1.Coin constant_fee = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/cosmos/crypto/ed25519/keys.proto b/proto/rust-vendored/cosmos/crypto/ed25519/keys.proto new file mode 100644 index 0000000..3176807 --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/ed25519/keys.proto @@ -0,0 +1,39 @@ +syntax = "proto3"; +package cosmos.crypto.ed25519; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"; + +// PubKey is an ed25519 public key for handling Tendermint keys in SDK. +// It's needed for Any serialization and SDK compatibility. +// It must not be used in a non Tendermint key context because it doesn't implement +// ADR-28. Nevertheless, you will like to use ed25519 in app user level +// then you must create a new proto message and follow ADR-28 for Address construction. +message PubKey { + option (amino.name) = "tendermint/PubKeyEd25519"; + // The Amino encoding is simply the inner bytes field, and not the Amino + // encoding of the whole PubKey struct. + // + // Example (JSON): + // s := PubKey{Key: []byte{0x01}} + // out := AminoJSONEncoder(s) + // + // Then we have: + // out == `"MQ=="` + // out != `{"key":"MQ=="}` + option (amino.message_encoding) = "key_field"; + option (gogoproto.goproto_stringer) = false; + + bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PublicKey"]; +} + +// PrivKey defines a ed25519 private key. +// NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. +message PrivKey { + option (amino.name) = "tendermint/PrivKeyEd25519"; + option (amino.message_encoding) = "key_field"; + + bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PrivateKey"]; +} diff --git a/proto/rust-vendored/cosmos/crypto/hd/v1/hd.proto b/proto/rust-vendored/cosmos/crypto/hd/v1/hd.proto new file mode 100644 index 0000000..e25b70d --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/hd/v1/hd.proto @@ -0,0 +1,27 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.crypto.hd.v1; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/hd"; +option (gogoproto.goproto_getters_all) = false; + +// BIP44Params is used as path field in ledger item in Record. +message BIP44Params { + option (amino.name) = "crypto/keys/hd/BIP44Params"; + + option (gogoproto.goproto_stringer) = false; + // purpose is a constant set to 44' (or 0x8000002C) following the BIP43 recommendation + uint32 purpose = 1; + // coin_type is a constant that improves privacy + uint32 coin_type = 2; + // account splits the key space into independent user identities + uint32 account = 3; + // change is a constant used for public derivation. Constant 0 is used for external chain and constant 1 for internal + // chain. + bool change = 4; + // address_index is used as child index in BIP32 derivation + uint32 address_index = 5; +} diff --git a/proto/rust-vendored/cosmos/crypto/keyring/v1/record.proto b/proto/rust-vendored/cosmos/crypto/keyring/v1/record.proto new file mode 100644 index 0000000..e79ea7f --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/keyring/v1/record.proto @@ -0,0 +1,48 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.crypto.keyring.v1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos/crypto/hd/v1/hd.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keyring"; +option (gogoproto.goproto_getters_all) = false; +option (gogoproto.gogoproto_import) = false; + +// Record is used for representing a key in the keyring. +message Record { + // name represents a name of Record + string name = 1; + // pub_key represents a public key in any format + google.protobuf.Any pub_key = 2; + + // Record contains one of the following items + oneof item { + // local stores the private key locally. + Local local = 3; + // ledger stores the information about a Ledger key. + Ledger ledger = 4; + // Multi does not store any other information. + Multi multi = 5; + // Offline does not store any other information. + Offline offline = 6; + } + + // Item is a keyring item stored in a keyring backend. + // Local item + message Local { + google.protobuf.Any priv_key = 1; + } + + // Ledger item + message Ledger { + hd.v1.BIP44Params path = 1; + } + + // Multi item + message Multi {} + + // Offline item + message Offline {} +} diff --git a/proto/rust-vendored/cosmos/crypto/multisig/keys.proto b/proto/rust-vendored/cosmos/crypto/multisig/keys.proto new file mode 100644 index 0000000..fa0dec5 --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/multisig/keys.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; +package cosmos.crypto.multisig; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/multisig"; + +// LegacyAminoPubKey specifies a public key type +// which nests multiple public keys and a threshold, +// it uses legacy amino address rules. +message LegacyAminoPubKey { + option (amino.name) = "tendermint/PubKeyMultisigThreshold"; + // The Amino encoding of a LegacyAminoPubkey is the legacy amino + // encoding of the `PubKeyMultisigThreshold` struct defined below: + // https://github.com/tendermint/tendermint/blob/v0.33.9/crypto/multisig/threshold_pubkey.go + // + // There are 2 differences with what a "normal" Amino encoding + // would output: + // 1. The `threshold` field is always a string (whereas Amino would + // by default marshal uint32 as a number). + // 2. The `public_keys` field is renamed to `pubkeys`, which is also + // reflected in the `amino.field_name` annotation. + option (amino.message_encoding) = "threshold_string"; + option (gogoproto.goproto_getters) = false; + + uint32 threshold = 1; + repeated google.protobuf.Any public_keys = 2 [(gogoproto.customname) = "PubKeys", (amino.field_name) = "pubkeys"]; +} diff --git a/proto/rust-vendored/cosmos/crypto/multisig/v1beta1/multisig.proto b/proto/rust-vendored/cosmos/crypto/multisig/v1beta1/multisig.proto new file mode 100644 index 0000000..bf671f1 --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/multisig/v1beta1/multisig.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package cosmos.crypto.multisig.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/types"; + +// MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey. +// See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers +// signed and with which modes. +message MultiSignature { + option (gogoproto.goproto_unrecognized) = true; + repeated bytes signatures = 1; +} + +// CompactBitArray is an implementation of a space efficient bit array. +// This is used to ensure that the encoded data takes up a minimal amount of +// space after proto encoding. +// This is not thread safe, and is not intended for concurrent usage. +message CompactBitArray { + option (gogoproto.goproto_stringer) = false; + + uint32 extra_bits_stored = 1; + bytes elems = 2; +} diff --git a/proto/rust-vendored/cosmos/crypto/secp256k1/keys.proto b/proto/rust-vendored/cosmos/crypto/secp256k1/keys.proto new file mode 100644 index 0000000..e2358d6 --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/secp256k1/keys.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package cosmos.crypto.secp256k1; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"; + +// PubKey defines a secp256k1 public key +// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte +// if the y-coordinate is the lexicographically largest of the two associated with +// the x-coordinate. Otherwise the first byte is a 0x03. +// This prefix is followed with the x-coordinate. +message PubKey { + option (amino.name) = "tendermint/PubKeySecp256k1"; + // The Amino encoding is simply the inner bytes field, and not the Amino + // encoding of the whole PubKey struct. + // + // Example (JSON): + // s := PubKey{Key: []byte{0x01}} + // out := AminoJSONEncoder(s) + // + // Then we have: + // out == `"MQ=="` + // out != `{"key":"MQ=="}` + option (amino.message_encoding) = "key_field"; + option (gogoproto.goproto_stringer) = false; + + bytes key = 1; +} + +// PrivKey defines a secp256k1 private key. +message PrivKey { + option (amino.name) = "tendermint/PrivKeySecp256k1"; + option (amino.message_encoding) = "key_field"; + + bytes key = 1; +} diff --git a/proto/rust-vendored/cosmos/crypto/secp256r1/keys.proto b/proto/rust-vendored/cosmos/crypto/secp256r1/keys.proto new file mode 100644 index 0000000..2e96c6e --- /dev/null +++ b/proto/rust-vendored/cosmos/crypto/secp256r1/keys.proto @@ -0,0 +1,23 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.crypto.secp256r1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256r1"; +option (gogoproto.messagename_all) = true; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_getters_all) = false; + +// PubKey defines a secp256r1 ECDSA public key. +message PubKey { + // Point on secp256r1 curve in a compressed representation as specified in section + // 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998 + bytes key = 1 [(gogoproto.customtype) = "ecdsaPK"]; +} + +// PrivKey defines a secp256r1 ECDSA private key. +message PrivKey { + // secret number serialized using big-endian encoding + bytes secret = 1 [(gogoproto.customtype) = "ecdsaSK"]; +} diff --git a/proto/rust-vendored/cosmos/distribution/module/v1/module.proto b/proto/rust-vendored/cosmos/distribution/module/v1/module.proto new file mode 100644 index 0000000..accf920 --- /dev/null +++ b/proto/rust-vendored/cosmos/distribution/module/v1/module.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package cosmos.distribution.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the distribution module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/distribution" + }; + + string fee_collector_name = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/distribution/v1beta1/distribution.proto b/proto/rust-vendored/cosmos/distribution/v1beta1/distribution.proto new file mode 100644 index 0000000..34c6e77 --- /dev/null +++ b/proto/rust-vendored/cosmos/distribution/v1beta1/distribution.proto @@ -0,0 +1,194 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// Params defines the set of params for the distribution module. +message Params { + option (amino.name) = "cosmos-sdk/x/distribution/Params"; + + string community_tax = 1 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (amino.dont_omitempty) = true, + (gogoproto.nullable) = false + ]; + + // Deprecated: The base_proposer_reward field is deprecated and is no longer used + // in the x/distribution module's reward mechanism. + string base_proposer_reward = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + deprecated = true + ]; + + // Deprecated: The bonus_proposer_reward field is deprecated and is no longer used + // in the x/distribution module's reward mechanism. + string bonus_proposer_reward = 3 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + deprecated = true + ]; + + bool withdraw_addr_enabled = 4; +} + +// ValidatorHistoricalRewards represents historical rewards for a validator. +// Height is implicit within the store key. +// Cumulative reward ratio is the sum from the zeroeth period +// until this period of rewards / tokens, per the spec. +// The reference count indicates the number of objects +// which might need to reference this historical entry at any point. +// ReferenceCount = +// number of outstanding delegations which ended the associated period (and +// might need to read that record) +// + number of slashes which ended the associated period (and might need to +// read that record) +// + one per validator for the zeroeth period, set on initialization +message ValidatorHistoricalRewards { + repeated cosmos.base.v1beta1.DecCoin cumulative_reward_ratio = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + uint32 reference_count = 2; +} + +// ValidatorCurrentRewards represents current rewards and current +// period for a validator kept as a running counter and incremented +// each block as long as the validator's tokens remain constant. +message ValidatorCurrentRewards { + repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + uint64 period = 2; +} + +// ValidatorAccumulatedCommission represents accumulated commission +// for a validator kept as a running counter, can be withdrawn at any time. +message ValidatorAccumulatedCommission { + repeated cosmos.base.v1beta1.DecCoin commission = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards +// for a validator inexpensive to track, allows simple sanity checks. +message ValidatorOutstandingRewards { + repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// ValidatorSlashEvent represents a validator slash event. +// Height is implicit within the store key. +// This is needed to calculate appropriate amount of staking tokens +// for delegations which are withdrawn after a slash has occurred. +message ValidatorSlashEvent { + uint64 validator_period = 1; + string fraction = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +// ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. +message ValidatorSlashEvents { + repeated ValidatorSlashEvent validator_slash_events = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// FeePool is the global fee pool for distribution. +message FeePool { + repeated cosmos.base.v1beta1.DecCoin community_pool = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins" + ]; +} + +// CommunityPoolSpendProposal details a proposal for use of community funds, +// together with how many coins are proposed to be spent, and to which +// recipient account. +// +// Deprecated: Do not use. As of the Cosmos SDK release v0.47.x, there is no +// longer a need for an explicit CommunityPoolSpendProposal. To spend community +// pool funds, a simple MsgCommunityPoolSpend can be invoked from the x/gov +// module via a v1 governance proposal. +message CommunityPoolSpendProposal { + option deprecated = true; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + string recipient = 3; + repeated cosmos.base.v1beta1.Coin amount = 4 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// DelegatorStartingInfo represents the starting info for a delegator reward +// period. It tracks the previous validator period, the delegation's amount of +// staking token, and the creation height (to check later on if any slashes have +// occurred). NOTE: Even though validators are slashed to whole staking tokens, +// the delegators within the validator may be left with less than a full token, +// thus sdk.Dec is used. +message DelegatorStartingInfo { + uint64 previous_period = 1; + string stake = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + uint64 height = 3 + [(gogoproto.jsontag) = "creation_height", (amino.field_name) = "creation_height", (amino.dont_omitempty) = true]; +} + +// DelegationDelegatorReward represents the properties +// of a delegator's delegation reward. +message DelegationDelegatorReward { + option (gogoproto.goproto_getters) = false; + + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + repeated cosmos.base.v1beta1.DecCoin reward = 2 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal +// with a deposit +message CommunityPoolSpendProposalWithDeposit { + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + string recipient = 3; + string amount = 4; + string deposit = 5; +} diff --git a/proto/rust-vendored/cosmos/distribution/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/distribution/v1beta1/genesis.proto new file mode 100644 index 0000000..5608bfb --- /dev/null +++ b/proto/rust-vendored/cosmos/distribution/v1beta1/genesis.proto @@ -0,0 +1,155 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/distribution/v1beta1/distribution.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// DelegatorWithdrawInfo is the address for where distributions rewards are +// withdrawn to by default this struct is only used at genesis to feed in +// default withdraw addresses. +message DelegatorWithdrawInfo { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the address of the delegator. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // withdraw_address is the address to withdraw the delegation rewards to. + string withdraw_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// ValidatorOutstandingRewardsRecord is used for import/export via genesis json. +message ValidatorOutstandingRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // outstanding_rewards represents the outstanding rewards of a validator. + repeated cosmos.base.v1beta1.DecCoin outstanding_rewards = 2 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// ValidatorAccumulatedCommissionRecord is used for import / export via genesis +// json. +message ValidatorAccumulatedCommissionRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // accumulated is the accumulated commission of a validator. + ValidatorAccumulatedCommission accumulated = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ValidatorHistoricalRewardsRecord is used for import / export via genesis +// json. +message ValidatorHistoricalRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // period defines the period the historical rewards apply to. + uint64 period = 2; + + // rewards defines the historical rewards of a validator. + ValidatorHistoricalRewards rewards = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ValidatorCurrentRewardsRecord is used for import / export via genesis json. +message ValidatorCurrentRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // rewards defines the current rewards of a validator. + ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// DelegatorStartingInfoRecord used for import / export via genesis json. +message DelegatorStartingInfoRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the address of the delegator. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // validator_address is the address of the validator. + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // starting_info defines the starting info of a delegator. + DelegatorStartingInfo starting_info = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ValidatorSlashEventRecord is used for import / export via genesis json. +message ValidatorSlashEventRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + // height defines the block height at which the slash event occurred. + uint64 height = 2; + // period is the period of the slash event. + uint64 period = 3; + // validator_slash_event describes the slash event. + ValidatorSlashEvent validator_slash_event = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// GenesisState defines the distribution module's genesis state. +message GenesisState { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // params defines all the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the fee pool at genesis. + FeePool fee_pool = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the delegator withdraw infos at genesis. + repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the previous proposer at genesis. + string previous_proposer = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // fee_pool defines the outstanding rewards of all validators at genesis. + repeated ValidatorOutstandingRewardsRecord outstanding_rewards = 5 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the accumulated commissions of all validators at genesis. + repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the historical rewards of all validators at genesis. + repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the current rewards of all validators at genesis. + repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the delegator starting infos at genesis. + repeated DelegatorStartingInfoRecord delegator_starting_infos = 9 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // fee_pool defines the validator slash events at genesis. + repeated ValidatorSlashEventRecord validator_slash_events = 10 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/distribution/v1beta1/query.proto b/proto/rust-vendored/cosmos/distribution/v1beta1/query.proto new file mode 100644 index 0000000..ffb8912 --- /dev/null +++ b/proto/rust-vendored/cosmos/distribution/v1beta1/query.proto @@ -0,0 +1,255 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/distribution/v1beta1/distribution.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; + +// Query defines the gRPC querier service for distribution module. +service Query { + // Params queries params of the distribution module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/params"; + } + + // ValidatorDistributionInfo queries validator commission and self-delegation rewards for validator + rpc ValidatorDistributionInfo(QueryValidatorDistributionInfoRequest) + returns (QueryValidatorDistributionInfoResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/{validator_address}"; + } + + // ValidatorOutstandingRewards queries rewards of a validator address. + rpc ValidatorOutstandingRewards(QueryValidatorOutstandingRewardsRequest) + returns (QueryValidatorOutstandingRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" + "{validator_address}/outstanding_rewards"; + } + + // ValidatorCommission queries accumulated commission for a validator. + rpc ValidatorCommission(QueryValidatorCommissionRequest) returns (QueryValidatorCommissionResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" + "{validator_address}/commission"; + } + + // ValidatorSlashes queries slash events of a validator. + rpc ValidatorSlashes(QueryValidatorSlashesRequest) returns (QueryValidatorSlashesResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/{validator_address}/slashes"; + } + + // DelegationRewards queries the total rewards accrued by a delegation. + rpc DelegationRewards(QueryDelegationRewardsRequest) returns (QueryDelegationRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/" + "{validator_address}"; + } + + // DelegationTotalRewards queries the total rewards accrued by each + // validator. + rpc DelegationTotalRewards(QueryDelegationTotalRewardsRequest) returns (QueryDelegationTotalRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards"; + } + + // DelegatorValidators queries the validators of a delegator. + rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" + "{delegator_address}/validators"; + } + + // DelegatorWithdrawAddress queries withdraw address of a delegator. + rpc DelegatorWithdrawAddress(QueryDelegatorWithdrawAddressRequest) returns (QueryDelegatorWithdrawAddressResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" + "{delegator_address}/withdraw_address"; + } + + // CommunityPool queries the community pool coins. + rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/community_pool"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryValidatorDistributionInfoRequest is the request type for the Query/ValidatorDistributionInfo RPC method. +message QueryValidatorDistributionInfoRequest { + // validator_address defines the validator address to query for. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// QueryValidatorDistributionInfoResponse is the response type for the Query/ValidatorDistributionInfo RPC method. +message QueryValidatorDistributionInfoResponse { + // operator_address defines the validator operator address. + string operator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + // self_bond_rewards defines the self delegations rewards. + repeated cosmos.base.v1beta1.DecCoin self_bond_rewards = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins" + ]; + // commission defines the commission the validator received. + repeated cosmos.base.v1beta1.DecCoin commission = 3 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; +} + +// QueryValidatorOutstandingRewardsRequest is the request type for the +// Query/ValidatorOutstandingRewards RPC method. +message QueryValidatorOutstandingRewardsRequest { + // validator_address defines the validator address to query for. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// QueryValidatorOutstandingRewardsResponse is the response type for the +// Query/ValidatorOutstandingRewards RPC method. +message QueryValidatorOutstandingRewardsResponse { + ValidatorOutstandingRewards rewards = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryValidatorCommissionRequest is the request type for the +// Query/ValidatorCommission RPC method +message QueryValidatorCommissionRequest { + // validator_address defines the validator address to query for. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// QueryValidatorCommissionResponse is the response type for the +// Query/ValidatorCommission RPC method +message QueryValidatorCommissionResponse { + // commission defines the commission the validator received. + ValidatorAccumulatedCommission commission = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryValidatorSlashesRequest is the request type for the +// Query/ValidatorSlashes RPC method +message QueryValidatorSlashesRequest { + option (gogoproto.goproto_getters) = false; + + // validator_address defines the validator address to query for. + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + // starting_height defines the optional starting height to query the slashes. + uint64 starting_height = 2; + // starting_height defines the optional ending height to query the slashes. + uint64 ending_height = 3; + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryValidatorSlashesResponse is the response type for the +// Query/ValidatorSlashes RPC method. +message QueryValidatorSlashesResponse { + // slashes defines the slashes the validator received. + repeated ValidatorSlashEvent slashes = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegationRewardsRequest is the request type for the +// Query/DelegationRewards RPC method. +message QueryDelegationRewardsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // validator_address defines the validator address to query for. + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// QueryDelegationRewardsResponse is the response type for the +// Query/DelegationRewards RPC method. +message QueryDelegationRewardsResponse { + // rewards defines the rewards accrued by a delegation. + repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins" + ]; +} + +// QueryDelegationTotalRewardsRequest is the request type for the +// Query/DelegationTotalRewards RPC method. +message QueryDelegationTotalRewardsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // delegator_address defines the delegator address to query for. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegationTotalRewardsResponse is the response type for the +// Query/DelegationTotalRewards RPC method. +message QueryDelegationTotalRewardsResponse { + // rewards defines all the rewards accrued by a delegator. + repeated DelegationDelegatorReward rewards = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // total defines the sum of all the rewards. + repeated cosmos.base.v1beta1.DecCoin total = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins" + ]; +} + +// QueryDelegatorValidatorsRequest is the request type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegatorValidatorsResponse is the response type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsResponse { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validators defines the validators a delegator is delegating for. + repeated string validators = 1; +} + +// QueryDelegatorWithdrawAddressRequest is the request type for the +// Query/DelegatorWithdrawAddress RPC method. +message QueryDelegatorWithdrawAddressRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegatorWithdrawAddressResponse is the response type for the +// Query/DelegatorWithdrawAddress RPC method. +message QueryDelegatorWithdrawAddressResponse { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // withdraw_address defines the delegator address to query for. + string withdraw_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC +// method. +message QueryCommunityPoolRequest {} + +// QueryCommunityPoolResponse is the response type for the Query/CommunityPool +// RPC method. +message QueryCommunityPoolResponse { + // pool defines community pool's coins. + repeated cosmos.base.v1beta1.DecCoin pool = 1 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} diff --git a/proto/rust-vendored/cosmos/distribution/v1beta1/tx.proto b/proto/rust-vendored/cosmos/distribution/v1beta1/tx.proto new file mode 100644 index 0000000..014831c --- /dev/null +++ b/proto/rust-vendored/cosmos/distribution/v1beta1/tx.proto @@ -0,0 +1,215 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; +import "cosmos/distribution/v1beta1/distribution.proto"; + +// Msg defines the distribution Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SetWithdrawAddress defines a method to change the withdraw address + // for a delegator (or validator self-delegation). + rpc SetWithdrawAddress(MsgSetWithdrawAddress) returns (MsgSetWithdrawAddressResponse); + + // WithdrawDelegatorReward defines a method to withdraw rewards of delegator + // from a single validator. + rpc WithdrawDelegatorReward(MsgWithdrawDelegatorReward) returns (MsgWithdrawDelegatorRewardResponse); + + // WithdrawValidatorCommission defines a method to withdraw the + // full commission to the validator address. + rpc WithdrawValidatorCommission(MsgWithdrawValidatorCommission) returns (MsgWithdrawValidatorCommissionResponse); + + // FundCommunityPool defines a method to allow an account to directly + // fund the community pool. + rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse); + + // UpdateParams defines a governance operation for updating the x/distribution + // module parameters. The authority is defined in the keeper. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // CommunityPoolSpend defines a governance operation for sending tokens from + // the community pool in the x/distribution module to another account, which + // could be the governance module itself. The authority is defined in the + // keeper. + // + // Since: cosmos-sdk 0.47 + rpc CommunityPoolSpend(MsgCommunityPoolSpend) returns (MsgCommunityPoolSpendResponse); + + // DepositValidatorRewardsPool defines a method to provide additional rewards + // to delegators to a specific validator. + // + // Since: cosmos-sdk 0.48 + rpc DepositValidatorRewardsPool(MsgDepositValidatorRewardsPool) returns (MsgDepositValidatorRewardsPoolResponse); +} + +// MsgSetWithdrawAddress sets the withdraw address for +// a delegator (or validator self-delegation). +message MsgSetWithdrawAddress { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgModifyWithdrawAddress"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string withdraw_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response +// type. +message MsgSetWithdrawAddressResponse {} + +// MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator +// from a single validator. +message MsgWithdrawDelegatorReward { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgWithdrawDelegationReward"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward +// response type. +message MsgWithdrawDelegatorRewardResponse { + // Since: cosmos-sdk 0.46 + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgWithdrawValidatorCommission withdraws the full commission to the validator +// address. +message MsgWithdrawValidatorCommission { + option (cosmos.msg.v1.signer) = "validator_address"; + option (amino.name) = "cosmos-sdk/MsgWithdrawValCommission"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string validator_address = 1 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; +} + +// MsgWithdrawValidatorCommissionResponse defines the +// Msg/WithdrawValidatorCommission response type. +message MsgWithdrawValidatorCommissionResponse { + // Since: cosmos-sdk 0.46 + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgFundCommunityPool allows an account to directly +// fund the community pool. +message MsgFundCommunityPool { + option (cosmos.msg.v1.signer) = "depositor"; + option (amino.name) = "cosmos-sdk/MsgFundCommunityPool"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. +message MsgFundCommunityPoolResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/distribution/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/distribution parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} + +// MsgCommunityPoolSpend defines a message for sending tokens from the community +// pool to another account. This message is typically executed via a governance +// proposal with the governance module being the executing authority. +// +// Since: cosmos-sdk 0.47 +message MsgCommunityPoolSpend { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/distr/MsgCommunityPoolSpend"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string recipient = 2; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgCommunityPoolSpendResponse defines the response to executing a +// MsgCommunityPoolSpend message. +// +// Since: cosmos-sdk 0.47 +message MsgCommunityPoolSpendResponse {} + +// DepositValidatorRewardsPool defines the request structure to provide +// additional rewards to delegators from a specific validator. +// +// Since: cosmos-sdk 0.48 +message MsgDepositValidatorRewardsPool { + option (amino.name) = "cosmos-sdk/distr/MsgDepositValRewards"; + option (cosmos.msg.v1.signer) = "depositor"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string depositor = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.encoding) = "legacy_coins", + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgDepositValidatorRewardsPoolResponse defines the response to executing a +// MsgDepositValidatorRewardsPool message. +// +// Since: cosmos-sdk 0.48 +message MsgDepositValidatorRewardsPoolResponse {} diff --git a/proto/rust-vendored/cosmos/evidence/module/v1/module.proto b/proto/rust-vendored/cosmos/evidence/module/v1/module.proto new file mode 100644 index 0000000..5b2ede6 --- /dev/null +++ b/proto/rust-vendored/cosmos/evidence/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.evidence.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the evidence module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/x/evidence" + }; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/evidence/v1beta1/evidence.proto b/proto/rust-vendored/cosmos/evidence/v1beta1/evidence.proto new file mode 100644 index 0000000..21b2c5d --- /dev/null +++ b/proto/rust-vendored/cosmos/evidence/v1beta1/evidence.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "cosmossdk.io/x/evidence/types"; +option (gogoproto.equal_all) = true; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos_proto/cosmos.proto"; + +// Equivocation implements the Evidence interface and defines evidence of double +// signing misbehavior. +message Equivocation { + option (amino.name) = "cosmos-sdk/Equivocation"; + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + // height is the equivocation height. + int64 height = 1; + + // time is the equivocation time. + google.protobuf.Timestamp time = 2 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + + // power is the equivocation validator power. + int64 power = 3; + + // consensus_address is the equivocation validator consensus address. + string consensus_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/evidence/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/evidence/v1beta1/genesis.proto new file mode 100644 index 0000000..33b354e --- /dev/null +++ b/proto/rust-vendored/cosmos/evidence/v1beta1/genesis.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "cosmossdk.io/x/evidence/types"; + +import "google/protobuf/any.proto"; + +// GenesisState defines the evidence module's genesis state. +message GenesisState { + // evidence defines all the evidence at genesis. + repeated google.protobuf.Any evidence = 1; +} diff --git a/proto/rust-vendored/cosmos/evidence/v1beta1/query.proto b/proto/rust-vendored/cosmos/evidence/v1beta1/query.proto new file mode 100644 index 0000000..f4af8ab --- /dev/null +++ b/proto/rust-vendored/cosmos/evidence/v1beta1/query.proto @@ -0,0 +1,56 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; + +option go_package = "cosmossdk.io/x/evidence/types"; + +// Query defines the gRPC querier service. +service Query { + // Evidence queries evidence based on evidence hash. + rpc Evidence(QueryEvidenceRequest) returns (QueryEvidenceResponse) { + option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence/{hash}"; + } + + // AllEvidence queries all evidence. + rpc AllEvidence(QueryAllEvidenceRequest) returns (QueryAllEvidenceResponse) { + option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence"; + } +} + +// QueryEvidenceRequest is the request type for the Query/Evidence RPC method. +message QueryEvidenceRequest { + // evidence_hash defines the hash of the requested evidence. + // Deprecated: Use hash, a HEX encoded string, instead. + bytes evidence_hash = 1 [deprecated = true]; + + // hash defines the evidence hash of the requested evidence. + // + // Since: cosmos-sdk 0.47 + string hash = 2; +} + +// QueryEvidenceResponse is the response type for the Query/Evidence RPC method. +message QueryEvidenceResponse { + // evidence returns the requested evidence. + google.protobuf.Any evidence = 1; +} + +// QueryEvidenceRequest is the request type for the Query/AllEvidence RPC +// method. +message QueryAllEvidenceRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC +// method. +message QueryAllEvidenceResponse { + // evidence returns all evidences. + repeated google.protobuf.Any evidence = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/evidence/v1beta1/tx.proto b/proto/rust-vendored/cosmos/evidence/v1beta1/tx.proto new file mode 100644 index 0000000..5eeaa6e --- /dev/null +++ b/proto/rust-vendored/cosmos/evidence/v1beta1/tx.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "cosmossdk.io/x/evidence/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +// Msg defines the evidence Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or + // counterfactual signing. + rpc SubmitEvidence(MsgSubmitEvidence) returns (MsgSubmitEvidenceResponse); +} + +// MsgSubmitEvidence represents a message that supports submitting arbitrary +// Evidence of misbehavior such as equivocation or counterfactual signing. +message MsgSubmitEvidence { + option (cosmos.msg.v1.signer) = "submitter"; + option (amino.name) = "cosmos-sdk/MsgSubmitEvidence"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // submitter is the signer account address of evidence. + string submitter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // evidence defines the evidence of misbehavior. + google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "cosmos.evidence.v1beta1.Evidence"]; +} + +// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. +message MsgSubmitEvidenceResponse { + // hash defines the hash of the evidence. + bytes hash = 4; +} diff --git a/proto/rust-vendored/cosmos/feegrant/module/v1/module.proto b/proto/rust-vendored/cosmos/feegrant/module/v1/module.proto new file mode 100644 index 0000000..c5d6c24 --- /dev/null +++ b/proto/rust-vendored/cosmos/feegrant/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.feegrant.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the feegrant module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/x/feegrant" + }; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/feegrant/v1beta1/feegrant.proto b/proto/rust-vendored/cosmos/feegrant/v1beta1/feegrant.proto new file mode 100644 index 0000000..a1c67ea --- /dev/null +++ b/proto/rust-vendored/cosmos/feegrant/v1beta1/feegrant.proto @@ -0,0 +1,96 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.feegrant.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "cosmossdk.io/x/feegrant"; + +// BasicAllowance implements Allowance with a one-time grant of coins +// that optionally expires. The grantee can use up to SpendLimit to cover fees. +message BasicAllowance { + option (cosmos_proto.implements_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"; + option (amino.name) = "cosmos-sdk/BasicAllowance"; + + // spend_limit specifies the maximum amount of coins that can be spent + // by this allowance and will be updated as coins are spent. If it is + // empty, there is no spend limit and any amount of coins can be spent. + repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // expiration specifies an optional time when this allowance expires + google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true]; +} + +// PeriodicAllowance extends Allowance to allow for both a maximum cap, +// as well as a limit per time period. +message PeriodicAllowance { + option (cosmos_proto.implements_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"; + option (amino.name) = "cosmos-sdk/PeriodicAllowance"; + + // basic specifies a struct of `BasicAllowance` + BasicAllowance basic = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // period specifies the time duration in which period_spend_limit coins can + // be spent before that allowance is reset + google.protobuf.Duration period = 2 + [(gogoproto.stdduration) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // period_spend_limit specifies the maximum number of coins that can be spent + // in the period + repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // period_can_spend is the number of coins left to be spent before the period_reset time + repeated cosmos.base.v1beta1.Coin period_can_spend = 4 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // period_reset is the time at which this period resets and a new one begins, + // it is calculated from the start time of the first transaction after the + // last period ended + google.protobuf.Timestamp period_reset = 5 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// AllowedMsgAllowance creates allowance only for specified message types. +message AllowedMsgAllowance { + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"; + option (amino.name) = "cosmos-sdk/AllowedMsgAllowance"; + + // allowance can be any of basic and periodic fee allowance. + google.protobuf.Any allowance = 1 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"]; + + // allowed_messages are the messages for which the grantee has the access. + repeated string allowed_messages = 2; +} + +// Grant is stored in the KVStore to record a grant with full context +message Grant { + // granter is the address of the user granting an allowance of their funds. + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // grantee is the address of the user being granted an allowance of another user's funds. + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // allowance can be any of basic, periodic, allowed fee allowance. + google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"]; +} diff --git a/proto/rust-vendored/cosmos/feegrant/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/feegrant/v1beta1/genesis.proto new file mode 100644 index 0000000..ac7e57e --- /dev/null +++ b/proto/rust-vendored/cosmos/feegrant/v1beta1/genesis.proto @@ -0,0 +1,14 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.feegrant.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/feegrant/v1beta1/feegrant.proto"; +import "amino/amino.proto"; + +option go_package = "cosmossdk.io/x/feegrant"; + +// GenesisState contains a set of fee allowances, persisted from the store +message GenesisState { + repeated Grant allowances = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/feegrant/v1beta1/query.proto b/proto/rust-vendored/cosmos/feegrant/v1beta1/query.proto new file mode 100644 index 0000000..cc0b969 --- /dev/null +++ b/proto/rust-vendored/cosmos/feegrant/v1beta1/query.proto @@ -0,0 +1,84 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.feegrant.v1beta1; + +import "cosmos/feegrant/v1beta1/feegrant.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "google/api/annotations.proto"; +import "cosmos_proto/cosmos.proto"; + +option go_package = "cosmossdk.io/x/feegrant"; + +// Query defines the gRPC querier service. +service Query { + + // Allowance returns fee granted to the grantee by the granter. + rpc Allowance(QueryAllowanceRequest) returns (QueryAllowanceResponse) { + option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}"; + } + + // Allowances returns all the grants for address. + rpc Allowances(QueryAllowancesRequest) returns (QueryAllowancesResponse) { + option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowances/{grantee}"; + } + + // AllowancesByGranter returns all the grants given by an address + // + // Since: cosmos-sdk 0.46 + rpc AllowancesByGranter(QueryAllowancesByGranterRequest) returns (QueryAllowancesByGranterResponse) { + option (google.api.http).get = "/cosmos/feegrant/v1beta1/issued/{granter}"; + } +} + +// QueryAllowanceRequest is the request type for the Query/Allowance RPC method. +message QueryAllowanceRequest { + // granter is the address of the user granting an allowance of their funds. + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // grantee is the address of the user being granted an allowance of another user's funds. + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryAllowanceResponse is the response type for the Query/Allowance RPC method. +message QueryAllowanceResponse { + // allowance is a allowance granted for grantee by granter. + cosmos.feegrant.v1beta1.Grant allowance = 1; +} + +// QueryAllowancesRequest is the request type for the Query/Allowances RPC method. +message QueryAllowancesRequest { + string grantee = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryAllowancesResponse is the response type for the Query/Allowances RPC method. +message QueryAllowancesResponse { + // allowances are allowance's granted for grantee by granter. + repeated cosmos.feegrant.v1beta1.Grant allowances = 1; + + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryAllowancesByGranterRequest is the request type for the Query/AllowancesByGranter RPC method. +// +// Since: cosmos-sdk 0.46 +message QueryAllowancesByGranterRequest { + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryAllowancesByGranterResponse is the response type for the Query/AllowancesByGranter RPC method. +// +// Since: cosmos-sdk 0.46 +message QueryAllowancesByGranterResponse { + // allowances that have been issued by the granter. + repeated cosmos.feegrant.v1beta1.Grant allowances = 1; + + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/feegrant/v1beta1/tx.proto b/proto/rust-vendored/cosmos/feegrant/v1beta1/tx.proto new file mode 100644 index 0000000..37e505c --- /dev/null +++ b/proto/rust-vendored/cosmos/feegrant/v1beta1/tx.proto @@ -0,0 +1,57 @@ +// Since: cosmos-sdk 0.43 +syntax = "proto3"; +package cosmos.feegrant.v1beta1; + +import "google/protobuf/any.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "cosmossdk.io/x/feegrant"; + +// Msg defines the feegrant msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // GrantAllowance grants fee allowance to the grantee on the granter's + // account with the provided expiration time. + rpc GrantAllowance(MsgGrantAllowance) returns (MsgGrantAllowanceResponse); + + // RevokeAllowance revokes any fee allowance of granter's account that + // has been granted to the grantee. + rpc RevokeAllowance(MsgRevokeAllowance) returns (MsgRevokeAllowanceResponse); +} + +// MsgGrantAllowance adds permission for Grantee to spend up to Allowance +// of fees from the account of Granter. +message MsgGrantAllowance { + option (cosmos.msg.v1.signer) = "granter"; + option (amino.name) = "cosmos-sdk/MsgGrantAllowance"; + + // granter is the address of the user granting an allowance of their funds. + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // grantee is the address of the user being granted an allowance of another user's funds. + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // allowance can be any of basic, periodic, allowed fee allowance. + google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "cosmos.feegrant.v1beta1.FeeAllowanceI"]; +} + +// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. +message MsgGrantAllowanceResponse {} + +// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. +message MsgRevokeAllowance { + option (cosmos.msg.v1.signer) = "granter"; + option (amino.name) = "cosmos-sdk/MsgRevokeAllowance"; + + // granter is the address of the user granting an allowance of their funds. + string granter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // grantee is the address of the user being granted an allowance of another user's funds. + string grantee = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. +message MsgRevokeAllowanceResponse {} diff --git a/proto/rust-vendored/cosmos/genutil/module/v1/module.proto b/proto/rust-vendored/cosmos/genutil/module/v1/module.proto new file mode 100644 index 0000000..86e6f57 --- /dev/null +++ b/proto/rust-vendored/cosmos/genutil/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.genutil.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object for the genutil module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/genutil" + }; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/genutil/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/genutil/v1beta1/genesis.proto new file mode 100644 index 0000000..dfd3494 --- /dev/null +++ b/proto/rust-vendored/cosmos/genutil/v1beta1/genesis.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package cosmos.genutil.v1beta1; + +import "gogoproto/gogo.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/genutil/types"; + +// GenesisState defines the raw genesis transaction in JSON. +message GenesisState { + // gen_txs defines the genesis transactions. + repeated bytes gen_txs = 1 [ + (gogoproto.casttype) = "encoding/json.RawMessage", + (gogoproto.jsontag) = "gentxs", + (amino.field_name) = "gentxs", + (amino.dont_omitempty) = true + ]; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/gov/module/v1/module.proto b/proto/rust-vendored/cosmos/gov/module/v1/module.proto new file mode 100644 index 0000000..9cade9a --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/module/v1/module.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package cosmos.gov.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the gov module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/gov" + }; + + // max_metadata_len defines the maximum proposal metadata length. + // Defaults to 255 if not explicitly set. + uint64 max_metadata_len = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/gov/v1/genesis.proto b/proto/rust-vendored/cosmos/gov/v1/genesis.proto new file mode 100644 index 0000000..40acece --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1/genesis.proto @@ -0,0 +1,40 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.gov.v1; + +import "cosmos/gov/v1/gov.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; + +// GenesisState defines the gov module's genesis state. +message GenesisState { + // starting_proposal_id is the ID of the starting proposal. + uint64 starting_proposal_id = 1; + // deposits defines all the deposits present at genesis. + repeated Deposit deposits = 2; + // votes defines all the votes present at genesis. + repeated Vote votes = 3; + // proposals defines all the proposals present at genesis. + repeated Proposal proposals = 4; + // Deprecated: Prefer to use `params` instead. + // deposit_params defines all the paramaters of related to deposit. + DepositParams deposit_params = 5 [deprecated = true]; + // Deprecated: Prefer to use `params` instead. + // voting_params defines all the paramaters of related to voting. + VotingParams voting_params = 6 [deprecated = true]; + // Deprecated: Prefer to use `params` instead. + // tally_params defines all the paramaters of related to tally. + TallyParams tally_params = 7 [deprecated = true]; + // params defines all the paramaters of x/gov module. + // + // Since: cosmos-sdk 0.47 + Params params = 8; + // The constitution allows builders to lay a foundation and define purpose. + // This is an immutable string set in genesis. + // There are no amendments, to go outside of scope, just fork. + // constitution is an immutable string in genesis for a chain builder to lay out their vision, ideas and ideals. + // + // Since: cosmos-sdk 0.48 + string constitution = 9; +} diff --git a/proto/rust-vendored/cosmos/gov/v1/gov.proto b/proto/rust-vendored/cosmos/gov/v1/gov.proto new file mode 100644 index 0000000..6f9c546 --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1/gov.proto @@ -0,0 +1,257 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.gov.v1; + +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; + +// VoteOption enumerates the valid vote options for a given governance proposal. +enum VoteOption { + // VOTE_OPTION_UNSPECIFIED defines a no-op vote option. + VOTE_OPTION_UNSPECIFIED = 0; + // VOTE_OPTION_YES defines a yes vote option. + VOTE_OPTION_YES = 1; + // VOTE_OPTION_ABSTAIN defines an abstain vote option. + VOTE_OPTION_ABSTAIN = 2; + // VOTE_OPTION_NO defines a no vote option. + VOTE_OPTION_NO = 3; + // VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + VOTE_OPTION_NO_WITH_VETO = 4; +} + +// WeightedVoteOption defines a unit of vote for vote split. +message WeightedVoteOption { + // option defines the valid vote options, it must not contain duplicate vote options. + VoteOption option = 1; + + // weight is the vote weight associated with the vote option. + string weight = 2 [(cosmos_proto.scalar) = "cosmos.Dec"]; +} + +// Deposit defines an amount deposited by an account address to an active +// proposal. +message Deposit { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // amount to be deposited by depositor. + repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// Proposal defines the core field members of a governance proposal. +message Proposal { + // id defines the unique id of the proposal. + uint64 id = 1; + + // messages are the arbitrary messages to be executed if the proposal passes. + repeated google.protobuf.Any messages = 2; + + // status defines the proposal status. + ProposalStatus status = 3; + + // final_tally_result is the final tally result of the proposal. When + // querying a proposal via gRPC, this field is not populated until the + // proposal's voting period has ended. + TallyResult final_tally_result = 4; + + // submit_time is the time of proposal submission. + google.protobuf.Timestamp submit_time = 5 [(gogoproto.stdtime) = true]; + + // deposit_end_time is the end time for deposition. + google.protobuf.Timestamp deposit_end_time = 6 [(gogoproto.stdtime) = true]; + + // total_deposit is the total deposit on the proposal. + repeated cosmos.base.v1beta1.Coin total_deposit = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // voting_start_time is the starting time to vote on a proposal. + google.protobuf.Timestamp voting_start_time = 8 [(gogoproto.stdtime) = true]; + + // voting_end_time is the end time of voting on a proposal. + google.protobuf.Timestamp voting_end_time = 9 [(gogoproto.stdtime) = true]; + + // metadata is any arbitrary metadata attached to the proposal. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/gov#proposal-3 + string metadata = 10; + + // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 + string title = 11; + + // summary is a short summary of the proposal + // + // Since: cosmos-sdk 0.47 + string summary = 12; + + // proposer is the address of the proposal sumbitter + // + // Since: cosmos-sdk 0.47 + string proposer = 13 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // expedited defines if the proposal is expedited + // + // Since: cosmos-sdk 0.48 + bool expedited = 14; +} + +// ProposalStatus enumerates the valid statuses of a proposal. +enum ProposalStatus { + // PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + PROPOSAL_STATUS_UNSPECIFIED = 0; + // PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + // period. + PROPOSAL_STATUS_DEPOSIT_PERIOD = 1; + // PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + // period. + PROPOSAL_STATUS_VOTING_PERIOD = 2; + // PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + // passed. + PROPOSAL_STATUS_PASSED = 3; + // PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + // been rejected. + PROPOSAL_STATUS_REJECTED = 4; + // PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + // failed. + PROPOSAL_STATUS_FAILED = 5; +} + +// TallyResult defines a standard tally for a governance proposal. +message TallyResult { + // yes_count is the number of yes votes on a proposal. + string yes_count = 1 [(cosmos_proto.scalar) = "cosmos.Int"]; + // abstain_count is the number of abstain votes on a proposal. + string abstain_count = 2 [(cosmos_proto.scalar) = "cosmos.Int"]; + // no_count is the number of no votes on a proposal. + string no_count = 3 [(cosmos_proto.scalar) = "cosmos.Int"]; + // no_with_veto_count is the number of no with veto votes on a proposal. + string no_with_veto_count = 4 [(cosmos_proto.scalar) = "cosmos.Int"]; +} + +// Vote defines a vote on a governance proposal. +// A Vote consists of a proposal ID, the voter, and the vote option. +message Vote { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // voter is the voter address of the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + reserved 3; + + // options is the weighted vote options. + repeated WeightedVoteOption options = 4; + + // metadata is any arbitrary metadata to attached to the vote. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/gov#vote-5 + string metadata = 5; +} + +// DepositParams defines the params for deposits on governance proposals. +message DepositParams { + option deprecated = true; + + // Minimum deposit for a proposal to enter voting period. + repeated cosmos.base.v1beta1.Coin min_deposit = 1 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "min_deposit,omitempty"]; + + // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + // months. + google.protobuf.Duration max_deposit_period = 2 + [(gogoproto.stdduration) = true, (gogoproto.jsontag) = "max_deposit_period,omitempty"]; +} + +// VotingParams defines the params for voting on governance proposals. +message VotingParams { + option deprecated = true; + + // Duration of the voting period. + google.protobuf.Duration voting_period = 1 [(gogoproto.stdduration) = true]; +} + +// TallyParams defines the params for tallying votes on governance proposals. +message TallyParams { + option deprecated = true; + + // Minimum percentage of total stake needed to vote for a result to be + // considered valid. + string quorum = 1 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + string threshold = 2 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // Minimum value of Veto votes to Total votes ratio for proposal to be + // vetoed. Default value: 1/3. + string veto_threshold = 3 [(cosmos_proto.scalar) = "cosmos.Dec"]; +} + +// Params defines the parameters for the x/gov module. +// +// Since: cosmos-sdk 0.47 +message Params { + // Minimum deposit for a proposal to enter voting period. + repeated cosmos.base.v1beta1.Coin min_deposit = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + // months. + google.protobuf.Duration max_deposit_period = 2 [(gogoproto.stdduration) = true]; + + // Duration of the voting period. + google.protobuf.Duration voting_period = 3 [(gogoproto.stdduration) = true]; + + // Minimum percentage of total stake needed to vote for a result to be + // considered valid. + string quorum = 4 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + string threshold = 5 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // Minimum value of Veto votes to Total votes ratio for proposal to be + // vetoed. Default value: 1/3. + string veto_threshold = 6 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // The ratio representing the proportion of the deposit value that must be paid at proposal submission. + string min_initial_deposit_ratio = 7 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // The cancel ratio which will not be returned back to the depositors when a proposal is cancelled. + // + // Since: cosmos-sdk 0.48 + string proposal_cancel_ratio = 8 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // The address which will receive (proposal_cancel_ratio * deposit) proposal deposits. + // If empty, the (proposal_cancel_ratio * deposit) proposal deposits will be burned. + // + // Since: cosmos-sdk 0.48 + string proposal_cancel_dest = 9 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // Duration of the voting period of an expedited proposal. + // + // Since: cosmos-sdk 0.48 + google.protobuf.Duration expedited_voting_period = 10 [(gogoproto.stdduration) = true]; + + // Minimum proportion of Yes votes for proposal to pass. Default value: 0.67. + // + // Since: cosmos-sdk 0.48 + string expedited_threshold = 11 [(cosmos_proto.scalar) = "cosmos.Dec"]; + + // Minimum expedited deposit for a proposal to enter voting period. + repeated cosmos.base.v1beta1.Coin expedited_min_deposit = 12 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // burn deposits if a proposal does not meet quorum + bool burn_vote_quorum = 13; + + // burn deposits if the proposal does not enter voting period + bool burn_proposal_deposit_prevote = 14; + + // burn deposits if quorum with vote type no_veto is met + bool burn_vote_veto = 15; +} diff --git a/proto/rust-vendored/cosmos/gov/v1/query.proto b/proto/rust-vendored/cosmos/gov/v1/query.proto new file mode 100644 index 0000000..ce308c7 --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1/query.proto @@ -0,0 +1,206 @@ + +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.gov.v1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "google/api/annotations.proto"; +import "cosmos/gov/v1/gov.proto"; +import "cosmos_proto/cosmos.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; + +// Query defines the gRPC querier service for gov module +service Query { + // Constitution queries the chain's constitution. + rpc Constitution(QueryConstitutionRequest) returns (QueryConstitutionResponse) { + option (google.api.http).get = "/cosmos/gov/v1/constitution"; + } + + // Proposal queries proposal details based on ProposalID. + rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}"; + } + + // Proposals queries all proposals based on given status. + rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals"; + } + + // Vote queries voted information based on proposalID, voterAddr. + rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/votes/{voter}"; + } + + // Votes queries votes of a given proposal. + rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/votes"; + } + + // Params queries all parameters of the gov module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/gov/v1/params/{params_type}"; + } + + // Deposit queries single deposit information based proposalID, depositAddr. + rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/deposits/{depositor}"; + } + + // Deposits queries all deposits of a single proposal. + rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/deposits"; + } + + // TallyResult queries the tally of a proposal vote. + rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { + option (google.api.http).get = "/cosmos/gov/v1/proposals/{proposal_id}/tally"; + } +} + +// QueryConstitutionRequest is the request type for the Query/Constitution RPC method +message QueryConstitutionRequest {} + +// QueryConstitutionResponse is the response type for the Query/Constitution RPC method +message QueryConstitutionResponse { + string constitution = 1; +} + +// QueryProposalRequest is the request type for the Query/Proposal RPC method. +message QueryProposalRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryProposalResponse is the response type for the Query/Proposal RPC method. +message QueryProposalResponse { + // proposal is the requested governance proposal. + Proposal proposal = 1; +} + +// QueryProposalsRequest is the request type for the Query/Proposals RPC method. +message QueryProposalsRequest { + // proposal_status defines the status of the proposals. + ProposalStatus proposal_status = 1; + + // voter defines the voter address for the proposals. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // depositor defines the deposit addresses from the proposals. + string depositor = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryProposalsResponse is the response type for the Query/Proposals RPC +// method. +message QueryProposalsResponse { + // proposals defines all the requested governance proposals. + repeated Proposal proposals = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryVoteRequest is the request type for the Query/Vote RPC method. +message QueryVoteRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // voter defines the voter address for the proposals. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryVoteResponse is the response type for the Query/Vote RPC method. +message QueryVoteResponse { + // vote defines the queried vote. + Vote vote = 1; +} + +// QueryVotesRequest is the request type for the Query/Votes RPC method. +message QueryVotesRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryVotesResponse is the response type for the Query/Votes RPC method. +message QueryVotesResponse { + // votes defines the queried votes. + repeated Vote votes = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest { + // params_type defines which parameters to query for, can be one of "voting", + // "tallying" or "deposit". + string params_type = 1; +} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // Deprecated: Prefer to use `params` instead. + // voting_params defines the parameters related to voting. + VotingParams voting_params = 1 [deprecated = true]; + // Deprecated: Prefer to use `params` instead. + // deposit_params defines the parameters related to deposit. + DepositParams deposit_params = 2 [deprecated = true]; + // Deprecated: Prefer to use `params` instead. + // tally_params defines the parameters related to tally. + TallyParams tally_params = 3 [deprecated = true]; + // params defines all the paramaters of x/gov module. + // + // Since: cosmos-sdk 0.47 + Params params = 4; +} + +// QueryDepositRequest is the request type for the Query/Deposit RPC method. +message QueryDepositRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDepositResponse is the response type for the Query/Deposit RPC method. +message QueryDepositResponse { + // deposit defines the requested deposit. + Deposit deposit = 1; +} + +// QueryDepositsRequest is the request type for the Query/Deposits RPC method. +message QueryDepositsRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDepositsResponse is the response type for the Query/Deposits RPC method. +message QueryDepositsResponse { + // deposits defines the requested deposits. + repeated Deposit deposits = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTallyResultRequest is the request type for the Query/Tally RPC method. +message QueryTallyResultRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryTallyResultResponse is the response type for the Query/Tally RPC method. +message QueryTallyResultResponse { + // tally defines the requested tally. + TallyResult tally = 1; +} diff --git a/proto/rust-vendored/cosmos/gov/v1/tx.proto b/proto/rust-vendored/cosmos/gov/v1/tx.proto new file mode 100644 index 0000000..76526dd --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1/tx.proto @@ -0,0 +1,205 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.gov.v1; + +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/gov/v1/gov.proto"; +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/any.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1"; + +// Msg defines the gov Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SubmitProposal defines a method to create new proposal given the messages. + rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse); + + // ExecLegacyContent defines a Msg to be in included in a MsgSubmitProposal + // to execute a legacy content-based proposal. + rpc ExecLegacyContent(MsgExecLegacyContent) returns (MsgExecLegacyContentResponse); + + // Vote defines a method to add a vote on a specific proposal. + rpc Vote(MsgVote) returns (MsgVoteResponse); + + // VoteWeighted defines a method to add a weighted vote on a specific proposal. + rpc VoteWeighted(MsgVoteWeighted) returns (MsgVoteWeightedResponse); + + // Deposit defines a method to add deposit on a specific proposal. + rpc Deposit(MsgDeposit) returns (MsgDepositResponse); + + // UpdateParams defines a governance operation for updating the x/gov module + // parameters. The authority is defined in the keeper. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // CancelProposal defines a method to cancel governance proposal + // + // Since: cosmos-sdk 0.48 + rpc CancelProposal(MsgCancelProposal) returns (MsgCancelProposalResponse); +} + +// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary +// proposal Content. +message MsgSubmitProposal { + option (cosmos.msg.v1.signer) = "proposer"; + option (amino.name) = "cosmos-sdk/v1/MsgSubmitProposal"; + + // messages are the arbitrary messages to be executed if proposal passes. + repeated google.protobuf.Any messages = 1; + + // initial_deposit is the deposit value that must be paid at proposal submission. + repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // proposer is the account address of the proposer. + string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // metadata is any arbitrary metadata attached to the proposal. + string metadata = 4; + + // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 + string title = 5; + + // summary is the summary of the proposal + // + // Since: cosmos-sdk 0.47 + string summary = 6; + + // expedided defines if the proposal is expedited or not + // + // Since: cosmos-sdk 0.48 + bool expedited = 7; +} + +// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. +message MsgSubmitProposalResponse { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// MsgExecLegacyContent is used to wrap the legacy content field into a message. +// This ensures backwards compatibility with v1beta1.MsgSubmitProposal. +message MsgExecLegacyContent { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/v1/MsgExecLegacyContent"; + + // content is the proposal's content. + google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"]; + // authority must be the gov module address. + string authority = 2; +} + +// MsgExecLegacyContentResponse defines the Msg/ExecLegacyContent response type. +message MsgExecLegacyContentResponse {} + +// MsgVote defines a message to cast a vote. +message MsgVote { + option (cosmos.msg.v1.signer) = "voter"; + option (amino.name) = "cosmos-sdk/v1/MsgVote"; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; + + // voter is the voter address for the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // option defines the vote option. + VoteOption option = 3; + + // metadata is any arbitrary metadata attached to the Vote. + string metadata = 4; +} + +// MsgVoteResponse defines the Msg/Vote response type. +message MsgVoteResponse {} + +// MsgVoteWeighted defines a message to cast a vote. +message MsgVoteWeighted { + option (cosmos.msg.v1.signer) = "voter"; + option (amino.name) = "cosmos-sdk/v1/MsgVoteWeighted"; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; + + // voter is the voter address for the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // options defines the weighted vote options. + repeated WeightedVoteOption options = 3; + + // metadata is any arbitrary metadata attached to the VoteWeighted. + string metadata = 4; +} + +// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. +message MsgVoteWeightedResponse {} + +// MsgDeposit defines a message to submit a deposit to an existing proposal. +message MsgDeposit { + option (cosmos.msg.v1.signer) = "depositor"; + option (amino.name) = "cosmos-sdk/v1/MsgDeposit"; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // amount to be deposited by depositor. + repeated cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgDepositResponse defines the Msg/Deposit response type. +message MsgDepositResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/gov/v1/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/gov parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} + +// MsgCancelProposal is the Msg/CancelProposal request type. +// +// Since: cosmos-sdk 0.48 +message MsgCancelProposal { + option (cosmos.msg.v1.signer) = "proposer"; + + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; + string proposer = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgCancelProposalResponse defines the response structure for executing a +// MsgCancelProposal message. +// +// Since: cosmos-sdk 0.48 +message MsgCancelProposalResponse { + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id"]; + // canceled_time is the time when proposal is canceled. + google.protobuf.Timestamp canceled_time = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + // canceled_height defines the block height at which the proposal is canceled. + uint64 canceled_height = 3; +} diff --git a/proto/rust-vendored/cosmos/gov/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/gov/v1beta1/genesis.proto new file mode 100644 index 0000000..a680590 --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1beta1/genesis.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; + +package cosmos.gov.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/gov/v1beta1/gov.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; + +// GenesisState defines the gov module's genesis state. +message GenesisState { + // starting_proposal_id is the ID of the starting proposal. + uint64 starting_proposal_id = 1; + // deposits defines all the deposits present at genesis. + repeated Deposit deposits = 2 + [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // votes defines all the votes present at genesis. + repeated Vote votes = 3 + [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // proposals defines all the proposals present at genesis. + repeated Proposal proposals = 4 + [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // params defines all the parameters of related to deposit. + DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // params defines all the parameters of related to voting. + VotingParams voting_params = 6 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // params defines all the parameters of related to tally. + TallyParams tally_params = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/gov/v1beta1/gov.proto b/proto/rust-vendored/cosmos/gov/v1beta1/gov.proto new file mode 100644 index 0000000..37b4e8b --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1beta1/gov.proto @@ -0,0 +1,251 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; + +option (gogoproto.goproto_getters_all) = false; + +// VoteOption enumerates the valid vote options for a given governance proposal. +enum VoteOption { + option (gogoproto.goproto_enum_prefix) = false; + + // VOTE_OPTION_UNSPECIFIED defines a no-op vote option. + VOTE_OPTION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "OptionEmpty"]; + // VOTE_OPTION_YES defines a yes vote option. + VOTE_OPTION_YES = 1 [(gogoproto.enumvalue_customname) = "OptionYes"]; + // VOTE_OPTION_ABSTAIN defines an abstain vote option. + VOTE_OPTION_ABSTAIN = 2 [(gogoproto.enumvalue_customname) = "OptionAbstain"]; + // VOTE_OPTION_NO defines a no vote option. + VOTE_OPTION_NO = 3 [(gogoproto.enumvalue_customname) = "OptionNo"]; + // VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + VOTE_OPTION_NO_WITH_VETO = 4 [(gogoproto.enumvalue_customname) = "OptionNoWithVeto"]; +} + +// WeightedVoteOption defines a unit of vote for vote split. +// +// Since: cosmos-sdk 0.43 +message WeightedVoteOption { + // option defines the valid vote options, it must not contain duplicate vote options. + VoteOption option = 1; + + // weight is the vote weight associated with the vote option. + string weight = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (amino.dont_omitempty) = true, + (gogoproto.nullable) = false + ]; +} + +// TextProposal defines a standard text proposal whose changes need to be +// manually updated in case of approval. +message TextProposal { + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + option (amino.name) = "cosmos-sdk/TextProposal"; + + option (gogoproto.equal) = true; + + // title of the proposal. + string title = 1; + + // description associated with the proposal. + string description = 2; +} + +// Deposit defines an amount deposited by an account address to an active +// proposal. +message Deposit { + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // amount to be deposited by depositor. + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// Proposal defines the core field members of a governance proposal. +message Proposal { + option (gogoproto.equal) = true; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // content is the proposal's content. + google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"]; + + // status defines the proposal status. + ProposalStatus status = 3; + + // final_tally_result is the final tally result of the proposal. When + // querying a proposal via gRPC, this field is not populated until the + // proposal's voting period has ended. + TallyResult final_tally_result = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // submit_time is the time of proposal submission. + google.protobuf.Timestamp submit_time = 5 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // deposit_end_time is the end time for deposition. + google.protobuf.Timestamp deposit_end_time = 6 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // total_deposit is the total deposit on the proposal. + repeated cosmos.base.v1beta1.Coin total_deposit = 7 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // voting_start_time is the starting time to vote on a proposal. + google.protobuf.Timestamp voting_start_time = 8 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // voting_end_time is the end time of voting on a proposal. + google.protobuf.Timestamp voting_end_time = 9 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ProposalStatus enumerates the valid statuses of a proposal. +enum ProposalStatus { + option (gogoproto.goproto_enum_prefix) = false; + + // PROPOSAL_STATUS_UNSPECIFIED defines the default proposal status. + PROPOSAL_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusNil"]; + // PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + // period. + PROPOSAL_STATUS_DEPOSIT_PERIOD = 1 [(gogoproto.enumvalue_customname) = "StatusDepositPeriod"]; + // PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + // period. + PROPOSAL_STATUS_VOTING_PERIOD = 2 [(gogoproto.enumvalue_customname) = "StatusVotingPeriod"]; + // PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + // passed. + PROPOSAL_STATUS_PASSED = 3 [(gogoproto.enumvalue_customname) = "StatusPassed"]; + // PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + // been rejected. + PROPOSAL_STATUS_REJECTED = 4 [(gogoproto.enumvalue_customname) = "StatusRejected"]; + // PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + // failed. + PROPOSAL_STATUS_FAILED = 5 [(gogoproto.enumvalue_customname) = "StatusFailed"]; +} + +// TallyResult defines a standard tally for a governance proposal. +message TallyResult { + option (gogoproto.equal) = true; + + // yes is the number of yes votes on a proposal. + string yes = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + + // abstain is the number of abstain votes on a proposal. + string abstain = 2 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + + // no is the number of no votes on a proposal. + string no = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + + // no_with_veto is the number of no with veto votes on a proposal. + string no_with_veto = 4 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; +} + +// Vote defines a vote on a governance proposal. +// A Vote consists of a proposal ID, the voter, and the vote option. +message Vote { + option (gogoproto.equal) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (amino.field_name) = "id", (amino.dont_omitempty) = true]; + + // voter is the voter address of the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // Deprecated: Prefer to use `options` instead. This field is set in queries + // if and only if `len(options) == 1` and that option has weight 1. In all + // other cases, this field will default to VOTE_OPTION_UNSPECIFIED. + VoteOption option = 3 [deprecated = true]; + + // options is the weighted vote options. + // + // Since: cosmos-sdk 0.43 + repeated WeightedVoteOption options = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// DepositParams defines the params for deposits on governance proposals. +message DepositParams { + // Minimum deposit for a proposal to enter voting period. + repeated cosmos.base.v1beta1.Coin min_deposit = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.jsontag) = "min_deposit,omitempty" + ]; + + // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + // months. + google.protobuf.Duration max_deposit_period = 2 [ + (gogoproto.nullable) = false, + (gogoproto.stdduration) = true, + (gogoproto.jsontag) = "max_deposit_period,omitempty" + ]; +} + +// VotingParams defines the params for voting on governance proposals. +message VotingParams { + // Duration of the voting period. + google.protobuf.Duration voting_period = 1 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.jsontag) = "voting_period,omitempty"]; +} + +// TallyParams defines the params for tallying votes on governance proposals. +message TallyParams { + // Minimum percentage of total stake needed to vote for a result to be + // considered valid. + bytes quorum = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "quorum,omitempty" + ]; + + // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + bytes threshold = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "threshold,omitempty" + ]; + + // Minimum value of Veto votes to Total votes ratio for proposal to be + // vetoed. Default value: 1/3. + bytes veto_threshold = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "veto_threshold,omitempty" + ]; +} diff --git a/proto/rust-vendored/cosmos/gov/v1beta1/query.proto b/proto/rust-vendored/cosmos/gov/v1beta1/query.proto new file mode 100644 index 0000000..f225a0f --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1beta1/query.proto @@ -0,0 +1,194 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/gov/v1beta1/gov.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; + +// Query defines the gRPC querier service for gov module +service Query { + // Proposal queries proposal details based on ProposalID. + rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}"; + } + + // Proposals queries all proposals based on given status. + rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals"; + } + + // Vote queries voted information based on proposalID, voterAddr. + rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}"; + } + + // Votes queries votes of a given proposal. + rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes"; + } + + // Params queries all parameters of the gov module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/params/{params_type}"; + } + + // Deposit queries single deposit information based proposalID, depositAddr. + rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}"; + } + + // Deposits queries all deposits of a single proposal. + rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits"; + } + + // TallyResult queries the tally of a proposal vote. + rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/tally"; + } +} + +// QueryProposalRequest is the request type for the Query/Proposal RPC method. +message QueryProposalRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryProposalResponse is the response type for the Query/Proposal RPC method. +message QueryProposalResponse { + Proposal proposal = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryProposalsRequest is the request type for the Query/Proposals RPC method. +message QueryProposalsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_status defines the status of the proposals. + ProposalStatus proposal_status = 1; + + // voter defines the voter address for the proposals. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // depositor defines the deposit addresses from the proposals. + string depositor = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryProposalsResponse is the response type for the Query/Proposals RPC +// method. +message QueryProposalsResponse { + // proposals defines all the requested governance proposals. + repeated Proposal proposals = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryVoteRequest is the request type for the Query/Vote RPC method. +message QueryVoteRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // voter defines the voter address for the proposals. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryVoteResponse is the response type for the Query/Vote RPC method. +message QueryVoteResponse { + // vote defines the queried vote. + Vote vote = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryVotesRequest is the request type for the Query/Votes RPC method. +message QueryVotesRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryVotesResponse is the response type for the Query/Votes RPC method. +message QueryVotesResponse { + // votes defines the queried votes. + repeated Vote votes = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest { + // params_type defines which parameters to query for, can be one of "voting", + // "tallying" or "deposit". + string params_type = 1; +} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // voting_params defines the parameters related to voting. + VotingParams voting_params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // deposit_params defines the parameters related to deposit. + DepositParams deposit_params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // tally_params defines the parameters related to tally. + TallyParams tally_params = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDepositRequest is the request type for the Query/Deposit RPC method. +message QueryDepositRequest { + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDepositResponse is the response type for the Query/Deposit RPC method. +message QueryDepositResponse { + // deposit defines the requested deposit. + Deposit deposit = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDepositsRequest is the request type for the Query/Deposits RPC method. +message QueryDepositsRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDepositsResponse is the response type for the Query/Deposits RPC method. +message QueryDepositsResponse { + // deposits defines the requested deposits. + repeated Deposit deposits = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTallyResultRequest is the request type for the Query/Tally RPC method. +message QueryTallyResultRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryTallyResultResponse is the response type for the Query/Tally RPC method. +message QueryTallyResultResponse { + // tally defines the requested tally. + TallyResult tally = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/gov/v1beta1/tx.proto b/proto/rust-vendored/cosmos/gov/v1beta1/tx.proto new file mode 100644 index 0000000..24795ab --- /dev/null +++ b/proto/rust-vendored/cosmos/gov/v1beta1/tx.proto @@ -0,0 +1,134 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/gov/v1beta1/gov.proto"; +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"; + +// Msg defines the bank Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SubmitProposal defines a method to create new proposal given a content. + rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse); + + // Vote defines a method to add a vote on a specific proposal. + rpc Vote(MsgVote) returns (MsgVoteResponse); + + // VoteWeighted defines a method to add a weighted vote on a specific proposal. + // + // Since: cosmos-sdk 0.43 + rpc VoteWeighted(MsgVoteWeighted) returns (MsgVoteWeightedResponse); + + // Deposit defines a method to add deposit on a specific proposal. + rpc Deposit(MsgDeposit) returns (MsgDepositResponse); +} + +// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary +// proposal Content. +message MsgSubmitProposal { + option (cosmos.msg.v1.signer) = "proposer"; + option (amino.name) = "cosmos-sdk/MsgSubmitProposal"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // content is the proposal's content. + google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "cosmos.gov.v1beta1.Content"]; + + // initial_deposit is the deposit value that must be paid at proposal submission. + repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // proposer is the account address of the proposer. + string proposer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. +message MsgSubmitProposalResponse { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; +} + +// MsgVote defines a message to cast a vote. +message MsgVote { + option (cosmos.msg.v1.signer) = "voter"; + option (amino.name) = "cosmos-sdk/MsgVote"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // voter is the voter address for the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // option defines the vote option. + VoteOption option = 3; +} + +// MsgVoteResponse defines the Msg/Vote response type. +message MsgVoteResponse {} + +// MsgVoteWeighted defines a message to cast a vote. +// +// Since: cosmos-sdk 0.43 +message MsgVoteWeighted { + option (cosmos.msg.v1.signer) = "voter"; + option (amino.name) = "cosmos-sdk/MsgVoteWeighted"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; + + // voter is the voter address for the proposal. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // options defines the weighted vote options. + repeated WeightedVoteOption options = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. +// +// Since: cosmos-sdk 0.43 +message MsgVoteWeightedResponse {} + +// MsgDeposit defines a message to submit a deposit to an existing proposal. +message MsgDeposit { + option (cosmos.msg.v1.signer) = "depositor"; + option (amino.name) = "cosmos-sdk/MsgDeposit"; + + option (gogoproto.equal) = false; + option (gogoproto.stringer) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (amino.dont_omitempty) = true]; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // amount to be deposited by depositor. + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgDepositResponse defines the Msg/Deposit response type. +message MsgDepositResponse {} diff --git a/proto/rust-vendored/cosmos/group/module/v1/module.proto b/proto/rust-vendored/cosmos/group/module/v1/module.proto new file mode 100644 index 0000000..d1e7ffb --- /dev/null +++ b/proto/rust-vendored/cosmos/group/module/v1/module.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +package cosmos.group.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; +import "amino/amino.proto"; + +// Module is the config object of the group module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/group" + }; + + // max_execution_period defines the max duration after a proposal's voting period ends that members can send a MsgExec + // to execute the proposal. + google.protobuf.Duration max_execution_period = 1 + [(gogoproto.stdduration) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // max_metadata_len defines the max length of the metadata bytes field for various entities within the group module. + // Defaults to 255 if not explicitly set. + uint64 max_metadata_len = 2; +} diff --git a/proto/rust-vendored/cosmos/group/v1/events.proto b/proto/rust-vendored/cosmos/group/v1/events.proto new file mode 100644 index 0000000..c2cfe87 --- /dev/null +++ b/proto/rust-vendored/cosmos/group/v1/events.proto @@ -0,0 +1,81 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.group.v1; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/group/v1/types.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/group"; + +// EventCreateGroup is an event emitted when a group is created. +message EventCreateGroup { + + // group_id is the unique ID of the group. + uint64 group_id = 1; +} + +// EventUpdateGroup is an event emitted when a group is updated. +message EventUpdateGroup { + + // group_id is the unique ID of the group. + uint64 group_id = 1; +} + +// EventCreateGroupPolicy is an event emitted when a group policy is created. +message EventCreateGroupPolicy { + + // address is the account address of the group policy. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// EventUpdateGroupPolicy is an event emitted when a group policy is updated. +message EventUpdateGroupPolicy { + + // address is the account address of the group policy. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// EventSubmitProposal is an event emitted when a proposal is created. +message EventSubmitProposal { + + // proposal_id is the unique ID of the proposal. + uint64 proposal_id = 1; +} + +// EventWithdrawProposal is an event emitted when a proposal is withdrawn. +message EventWithdrawProposal { + + // proposal_id is the unique ID of the proposal. + uint64 proposal_id = 1; +} + +// EventVote is an event emitted when a voter votes on a proposal. +message EventVote { + + // proposal_id is the unique ID of the proposal. + uint64 proposal_id = 1; +} + +// EventExec is an event emitted when a proposal is executed. +message EventExec { + + // proposal_id is the unique ID of the proposal. + uint64 proposal_id = 1; + + // result is the proposal execution result. + ProposalExecutorResult result = 2; + + // logs contains error logs in case the execution result is FAILURE. + string logs = 3; +} + +// EventLeaveGroup is an event emitted when group member leaves the group. +message EventLeaveGroup { + + // group_id is the unique ID of the group. + uint64 group_id = 1; + + // address is the account address of the group member. + string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} diff --git a/proto/rust-vendored/cosmos/group/v1/genesis.proto b/proto/rust-vendored/cosmos/group/v1/genesis.proto new file mode 100644 index 0000000..e4c895e --- /dev/null +++ b/proto/rust-vendored/cosmos/group/v1/genesis.proto @@ -0,0 +1,39 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.group.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/group"; + +import "cosmos/group/v1/types.proto"; + +// GenesisState defines the group module's genesis state. +message GenesisState { + + // group_seq is the group table orm.Sequence, + // it is used to get the next group ID. + uint64 group_seq = 1; + + // groups is the list of groups info. + repeated GroupInfo groups = 2; + + // group_members is the list of groups members. + repeated GroupMember group_members = 3; + + // group_policy_seq is the group policy table orm.Sequence, + // it is used to generate the next group policy account address. + uint64 group_policy_seq = 4; + + // group_policies is the list of group policies info. + repeated GroupPolicyInfo group_policies = 5; + + // proposal_seq is the proposal table orm.Sequence, + // it is used to get the next proposal ID. + uint64 proposal_seq = 6; + + // proposals is the list of proposals. + repeated Proposal proposals = 7; + + // votes is the list of votes. + repeated Vote votes = 8; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/group/v1/query.proto b/proto/rust-vendored/cosmos/group/v1/query.proto new file mode 100644 index 0000000..f141d26 --- /dev/null +++ b/proto/rust-vendored/cosmos/group/v1/query.proto @@ -0,0 +1,320 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.group.v1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/group/v1/types.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/group"; + +// Query is the cosmos.group.v1 Query service. +service Query { + + // GroupInfo queries group info based on group id. + rpc GroupInfo(QueryGroupInfoRequest) returns (QueryGroupInfoResponse) { + option (google.api.http).get = "/cosmos/group/v1/group_info/{group_id}"; + }; + + // GroupPolicyInfo queries group policy info based on account address of group policy. + rpc GroupPolicyInfo(QueryGroupPolicyInfoRequest) returns (QueryGroupPolicyInfoResponse) { + option (google.api.http).get = "/cosmos/group/v1/group_policy_info/{address}"; + }; + + // GroupMembers queries members of a group by group id. + rpc GroupMembers(QueryGroupMembersRequest) returns (QueryGroupMembersResponse) { + option (google.api.http).get = "/cosmos/group/v1/group_members/{group_id}"; + }; + + // GroupsByAdmin queries groups by admin address. + rpc GroupsByAdmin(QueryGroupsByAdminRequest) returns (QueryGroupsByAdminResponse) { + option (google.api.http).get = "/cosmos/group/v1/groups_by_admin/{admin}"; + }; + + // GroupPoliciesByGroup queries group policies by group id. + rpc GroupPoliciesByGroup(QueryGroupPoliciesByGroupRequest) returns (QueryGroupPoliciesByGroupResponse) { + option (google.api.http).get = "/cosmos/group/v1/group_policies_by_group/{group_id}"; + }; + + // GroupPoliciesByAdmin queries group policies by admin address. + rpc GroupPoliciesByAdmin(QueryGroupPoliciesByAdminRequest) returns (QueryGroupPoliciesByAdminResponse) { + option (google.api.http).get = "/cosmos/group/v1/group_policies_by_admin/{admin}"; + }; + + // Proposal queries a proposal based on proposal id. + rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { + option (google.api.http).get = "/cosmos/group/v1/proposal/{proposal_id}"; + }; + + // ProposalsByGroupPolicy queries proposals based on account address of group policy. + rpc ProposalsByGroupPolicy(QueryProposalsByGroupPolicyRequest) returns (QueryProposalsByGroupPolicyResponse) { + option (google.api.http).get = "/cosmos/group/v1/proposals_by_group_policy/{address}"; + }; + + // VoteByProposalVoter queries a vote by proposal id and voter. + rpc VoteByProposalVoter(QueryVoteByProposalVoterRequest) returns (QueryVoteByProposalVoterResponse) { + option (google.api.http).get = "/cosmos/group/v1/vote_by_proposal_voter/{proposal_id}/{voter}"; + }; + + // VotesByProposal queries a vote by proposal id. + rpc VotesByProposal(QueryVotesByProposalRequest) returns (QueryVotesByProposalResponse) { + option (google.api.http).get = "/cosmos/group/v1/votes_by_proposal/{proposal_id}"; + }; + + // VotesByVoter queries a vote by voter. + rpc VotesByVoter(QueryVotesByVoterRequest) returns (QueryVotesByVoterResponse) { + option (google.api.http).get = "/cosmos/group/v1/votes_by_voter/{voter}"; + }; + + // GroupsByMember queries groups by member address. + rpc GroupsByMember(QueryGroupsByMemberRequest) returns (QueryGroupsByMemberResponse) { + option (google.api.http).get = "/cosmos/group/v1/groups_by_member/{address}"; + }; + + // TallyResult returns the tally result of a proposal. If the proposal is + // still in voting period, then this query computes the current tally state, + // which might not be final. On the other hand, if the proposal is final, + // then it simply returns the `final_tally_result` state stored in the + // proposal itself. + rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { + option (google.api.http).get = "/cosmos/group/v1/proposals/{proposal_id}/tally"; + }; + + // Groups queries all groups in state. + // + // Since: cosmos-sdk 0.47.1 + rpc Groups(QueryGroupsRequest) returns (QueryGroupsResponse) { + option (google.api.http).get = "/cosmos/group/v1/groups"; + }; +} + +// QueryGroupInfoRequest is the Query/GroupInfo request type. +message QueryGroupInfoRequest { + // group_id is the unique ID of the group. + uint64 group_id = 1; +} + +// QueryGroupInfoResponse is the Query/GroupInfo response type. +message QueryGroupInfoResponse { + // info is the GroupInfo of the group. + GroupInfo info = 1; +} + +// QueryGroupPolicyInfoRequest is the Query/GroupPolicyInfo request type. +message QueryGroupPolicyInfoRequest { + // address is the account address of the group policy. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryGroupPolicyInfoResponse is the Query/GroupPolicyInfo response type. +message QueryGroupPolicyInfoResponse { + // info is the GroupPolicyInfo of the group policy. + GroupPolicyInfo info = 1; +} + +// QueryGroupMembersRequest is the Query/GroupMembers request type. +message QueryGroupMembersRequest { + // group_id is the unique ID of the group. + uint64 group_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupMembersResponse is the Query/GroupMembersResponse response type. +message QueryGroupMembersResponse { + // members are the members of the group with given group_id. + repeated GroupMember members = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGroupsByAdminRequest is the Query/GroupsByAdmin request type. +message QueryGroupsByAdminRequest { + // admin is the account address of a group's admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupsByAdminResponse is the Query/GroupsByAdminResponse response type. +message QueryGroupsByAdminResponse { + // groups are the groups info with the provided admin. + repeated GroupInfo groups = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGroupPoliciesByGroupRequest is the Query/GroupPoliciesByGroup request type. +message QueryGroupPoliciesByGroupRequest { + // group_id is the unique ID of the group policy's group. + uint64 group_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupPoliciesByGroupResponse is the Query/GroupPoliciesByGroup response type. +message QueryGroupPoliciesByGroupResponse { + // group_policies are the group policies info associated with the provided group. + repeated GroupPolicyInfo group_policies = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGroupPoliciesByAdminRequest is the Query/GroupPoliciesByAdmin request type. +message QueryGroupPoliciesByAdminRequest { + // admin is the admin address of the group policy. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupPoliciesByAdminResponse is the Query/GroupPoliciesByAdmin response type. +message QueryGroupPoliciesByAdminResponse { + // group_policies are the group policies info with provided admin. + repeated GroupPolicyInfo group_policies = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryProposalRequest is the Query/Proposal request type. +message QueryProposalRequest { + // proposal_id is the unique ID of a proposal. + uint64 proposal_id = 1; +} + +// QueryProposalResponse is the Query/Proposal response type. +message QueryProposalResponse { + // proposal is the proposal info. + Proposal proposal = 1; +} + +// QueryProposalsByGroupPolicyRequest is the Query/ProposalByGroupPolicy request type. +message QueryProposalsByGroupPolicyRequest { + // address is the account address of the group policy related to proposals. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryProposalsByGroupPolicyResponse is the Query/ProposalByGroupPolicy response type. +message QueryProposalsByGroupPolicyResponse { + // proposals are the proposals with given group policy. + repeated Proposal proposals = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryVoteByProposalVoterRequest is the Query/VoteByProposalVoter request type. +message QueryVoteByProposalVoterRequest { + // proposal_id is the unique ID of a proposal. + uint64 proposal_id = 1; + + // voter is a proposal voter account address. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryVoteByProposalVoterResponse is the Query/VoteByProposalVoter response type. +message QueryVoteByProposalVoterResponse { + // vote is the vote with given proposal_id and voter. + Vote vote = 1; +} + +// QueryVotesByProposalRequest is the Query/VotesByProposal request type. +message QueryVotesByProposalRequest { + // proposal_id is the unique ID of a proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryVotesByProposalResponse is the Query/VotesByProposal response type. +message QueryVotesByProposalResponse { + // votes are the list of votes for given proposal_id. + repeated Vote votes = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryVotesByVoterRequest is the Query/VotesByVoter request type. +message QueryVotesByVoterRequest { + // voter is a proposal voter account address. + string voter = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryVotesByVoterResponse is the Query/VotesByVoter response type. +message QueryVotesByVoterResponse { + // votes are the list of votes by given voter. + repeated Vote votes = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryGroupsByMemberRequest is the Query/GroupsByMember request type. +message QueryGroupsByMemberRequest { + // address is the group member address. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupsByMemberResponse is the Query/GroupsByMember response type. +message QueryGroupsByMemberResponse { + // groups are the groups info with the provided group member. + repeated GroupInfo groups = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTallyResultRequest is the Query/TallyResult request type. +message QueryTallyResultRequest { + // proposal_id is the unique id of a proposal. + uint64 proposal_id = 1; +} + +// QueryTallyResultResponse is the Query/TallyResult response type. +message QueryTallyResultResponse { + // tally defines the requested tally. + TallyResult tally = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryGroupsRequest is the Query/Groups request type. +// +// Since: cosmos-sdk 0.47.1 +message QueryGroupsRequest { + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryGroupsResponse is the Query/Groups response type. +// +// Since: cosmos-sdk 0.47.1 +message QueryGroupsResponse { + // `groups` is all the groups present in state. + repeated GroupInfo groups = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/group/v1/tx.proto b/proto/rust-vendored/cosmos/group/v1/tx.proto new file mode 100644 index 0000000..5a5f028 --- /dev/null +++ b/proto/rust-vendored/cosmos/group/v1/tx.proto @@ -0,0 +1,394 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.group.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/group"; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/any.proto"; +import "cosmos/group/v1/types.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +// Msg is the cosmos.group.v1 Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // CreateGroup creates a new group with an admin account address, a list of members and some optional metadata. + rpc CreateGroup(MsgCreateGroup) returns (MsgCreateGroupResponse); + + // UpdateGroupMembers updates the group members with given group id and admin address. + rpc UpdateGroupMembers(MsgUpdateGroupMembers) returns (MsgUpdateGroupMembersResponse); + + // UpdateGroupAdmin updates the group admin with given group id and previous admin address. + rpc UpdateGroupAdmin(MsgUpdateGroupAdmin) returns (MsgUpdateGroupAdminResponse); + + // UpdateGroupMetadata updates the group metadata with given group id and admin address. + rpc UpdateGroupMetadata(MsgUpdateGroupMetadata) returns (MsgUpdateGroupMetadataResponse); + + // CreateGroupPolicy creates a new group policy using given DecisionPolicy. + rpc CreateGroupPolicy(MsgCreateGroupPolicy) returns (MsgCreateGroupPolicyResponse); + + // CreateGroupWithPolicy creates a new group with policy. + rpc CreateGroupWithPolicy(MsgCreateGroupWithPolicy) returns (MsgCreateGroupWithPolicyResponse); + + // UpdateGroupPolicyAdmin updates a group policy admin. + rpc UpdateGroupPolicyAdmin(MsgUpdateGroupPolicyAdmin) returns (MsgUpdateGroupPolicyAdminResponse); + + // UpdateGroupPolicyDecisionPolicy allows a group policy's decision policy to be updated. + rpc UpdateGroupPolicyDecisionPolicy(MsgUpdateGroupPolicyDecisionPolicy) + returns (MsgUpdateGroupPolicyDecisionPolicyResponse); + + // UpdateGroupPolicyMetadata updates a group policy metadata. + rpc UpdateGroupPolicyMetadata(MsgUpdateGroupPolicyMetadata) returns (MsgUpdateGroupPolicyMetadataResponse); + + // SubmitProposal submits a new proposal. + rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse); + + // WithdrawProposal withdraws a proposal. + rpc WithdrawProposal(MsgWithdrawProposal) returns (MsgWithdrawProposalResponse); + + // Vote allows a voter to vote on a proposal. + rpc Vote(MsgVote) returns (MsgVoteResponse); + + // Exec executes a proposal. + rpc Exec(MsgExec) returns (MsgExecResponse); + + // LeaveGroup allows a group member to leave the group. + rpc LeaveGroup(MsgLeaveGroup) returns (MsgLeaveGroupResponse); +} + +// +// Groups +// + +// MsgCreateGroup is the Msg/CreateGroup request type. +message MsgCreateGroup { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgCreateGroup"; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // members defines the group members. + repeated MemberRequest members = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // metadata is any arbitrary metadata to attached to the group. + string metadata = 3; +} + +// MsgCreateGroupResponse is the Msg/CreateGroup response type. +message MsgCreateGroupResponse { + // group_id is the unique ID of the newly created group. + uint64 group_id = 1; +} + +// MsgUpdateGroupMembers is the Msg/UpdateGroupMembers request type. +message MsgUpdateGroupMembers { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupMembers"; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; + + // member_updates is the list of members to update, + // set weight to 0 to remove a member. + repeated MemberRequest member_updates = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateGroupMembersResponse is the Msg/UpdateGroupMembers response type. +message MsgUpdateGroupMembersResponse {} + +// MsgUpdateGroupAdmin is the Msg/UpdateGroupAdmin request type. +message MsgUpdateGroupAdmin { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupAdmin"; + + // admin is the current account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; + + // new_admin is the group new admin account address. + string new_admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgUpdateGroupAdminResponse is the Msg/UpdateGroupAdmin response type. +message MsgUpdateGroupAdminResponse {} + +// MsgUpdateGroupMetadata is the Msg/UpdateGroupMetadata request type. +message MsgUpdateGroupMetadata { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupMetadata"; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; + + // metadata is the updated group's metadata. + string metadata = 3; +} + +// MsgUpdateGroupMetadataResponse is the Msg/UpdateGroupMetadata response type. +message MsgUpdateGroupMetadataResponse {} + +// +// Group Policies +// + +// MsgCreateGroupPolicy is the Msg/CreateGroupPolicy request type. +message MsgCreateGroupPolicy { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgCreateGroupPolicy"; + + option (gogoproto.goproto_getters) = false; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; + + // metadata is any arbitrary metadata attached to the group policy. + string metadata = 3; + + // decision_policy specifies the group policy's decision policy. + google.protobuf.Any decision_policy = 4 [(cosmos_proto.accepts_interface) = "cosmos.group.v1.DecisionPolicy"]; +} + +// MsgCreateGroupPolicyResponse is the Msg/CreateGroupPolicy response type. +message MsgCreateGroupPolicyResponse { + // address is the account address of the newly created group policy. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgUpdateGroupPolicyAdmin is the Msg/UpdateGroupPolicyAdmin request type. +message MsgUpdateGroupPolicyAdmin { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupPolicyAdmin"; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_policy_address is the account address of the group policy. + string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // new_admin is the new group policy admin. + string new_admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgUpdateGroupPolicyAdminResponse is the Msg/UpdateGroupPolicyAdmin response type. +message MsgUpdateGroupPolicyAdminResponse {} + +// MsgCreateGroupWithPolicy is the Msg/CreateGroupWithPolicy request type. +message MsgCreateGroupWithPolicy { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgCreateGroupWithPolicy"; + option (gogoproto.goproto_getters) = false; + + // admin is the account address of the group and group policy admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // members defines the group members. + repeated MemberRequest members = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // group_metadata is any arbitrary metadata attached to the group. + string group_metadata = 3; + + // group_policy_metadata is any arbitrary metadata attached to the group policy. + string group_policy_metadata = 4; + + // group_policy_as_admin is a boolean field, if set to true, the group policy account address will be used as group + // and group policy admin. + bool group_policy_as_admin = 5; + + // decision_policy specifies the group policy's decision policy. + google.protobuf.Any decision_policy = 6 [(cosmos_proto.accepts_interface) = "cosmos.group.v1.DecisionPolicy"]; +} + +// MsgCreateGroupWithPolicyResponse is the Msg/CreateGroupWithPolicy response type. +message MsgCreateGroupWithPolicyResponse { + // group_id is the unique ID of the newly created group with policy. + uint64 group_id = 1; + + // group_policy_address is the account address of the newly created group policy. + string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgUpdateGroupPolicyDecisionPolicy is the Msg/UpdateGroupPolicyDecisionPolicy request type. +message MsgUpdateGroupPolicyDecisionPolicy { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupDecisionPolicy"; + + option (gogoproto.goproto_getters) = false; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_policy_address is the account address of group policy. + string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // decision_policy is the updated group policy's decision policy. + google.protobuf.Any decision_policy = 3 [(cosmos_proto.accepts_interface) = "cosmos.group.v1.DecisionPolicy"]; +} + +// MsgUpdateGroupPolicyDecisionPolicyResponse is the Msg/UpdateGroupPolicyDecisionPolicy response type. +message MsgUpdateGroupPolicyDecisionPolicyResponse {} + +// MsgUpdateGroupPolicyMetadata is the Msg/UpdateGroupPolicyMetadata request type. +message MsgUpdateGroupPolicyMetadata { + option (cosmos.msg.v1.signer) = "admin"; + option (amino.name) = "cosmos-sdk/MsgUpdateGroupPolicyMetadata"; + + // admin is the account address of the group admin. + string admin = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_policy_address is the account address of group policy. + string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // metadata is the group policy metadata to be updated. + string metadata = 3; +} + +// MsgUpdateGroupPolicyMetadataResponse is the Msg/UpdateGroupPolicyMetadata response type. +message MsgUpdateGroupPolicyMetadataResponse {} + +// +// Proposals and Voting +// + +// Exec defines modes of execution of a proposal on creation or on new vote. +enum Exec { + // An empty value means that there should be a separate + // MsgExec request for the proposal to execute. + EXEC_UNSPECIFIED = 0; + + // Try to execute the proposal immediately. + // If the proposal is not allowed per the DecisionPolicy, + // the proposal will still be open and could + // be executed at a later point. + EXEC_TRY = 1; +} + +// MsgSubmitProposal is the Msg/SubmitProposal request type. +message MsgSubmitProposal { + option (cosmos.msg.v1.signer) = "proposers"; + option (amino.name) = "cosmos-sdk/group/MsgSubmitProposal"; + + option (gogoproto.goproto_getters) = false; + + // group_policy_address is the account address of group policy. + string group_policy_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // proposers are the account addresses of the proposers. + // Proposers signatures will be counted as yes votes. + repeated string proposers = 2; + + // metadata is any arbitrary metadata attached to the proposal. + string metadata = 3; + + // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. + repeated google.protobuf.Any messages = 4; + + // exec defines the mode of execution of the proposal, + // whether it should be executed immediately on creation or not. + // If so, proposers signatures are considered as Yes votes. + Exec exec = 5; + + // title is the title of the proposal. + // + // Since: cosmos-sdk 0.47 + string title = 6; + + // summary is the summary of the proposal. + // + // Since: cosmos-sdk 0.47 + string summary = 7; +} + +// MsgSubmitProposalResponse is the Msg/SubmitProposal response type. +message MsgSubmitProposalResponse { + // proposal is the unique ID of the proposal. + uint64 proposal_id = 1; +} + +// MsgWithdrawProposal is the Msg/WithdrawProposal request type. +message MsgWithdrawProposal { + option (cosmos.msg.v1.signer) = "address"; + option (amino.name) = "cosmos-sdk/group/MsgWithdrawProposal"; + + // proposal is the unique ID of the proposal. + uint64 proposal_id = 1; + + // address is the admin of the group policy or one of the proposer of the proposal. + string address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgWithdrawProposalResponse is the Msg/WithdrawProposal response type. +message MsgWithdrawProposalResponse {} + +// MsgVote is the Msg/Vote request type. +message MsgVote { + option (cosmos.msg.v1.signer) = "voter"; + option (amino.name) = "cosmos-sdk/group/MsgVote"; + + // proposal is the unique ID of the proposal. + uint64 proposal_id = 1; + + // voter is the voter account address. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // option is the voter's choice on the proposal. + VoteOption option = 3; + + // metadata is any arbitrary metadata attached to the vote. + string metadata = 4; + + // exec defines whether the proposal should be executed + // immediately after voting or not. + Exec exec = 5; +} + +// MsgVoteResponse is the Msg/Vote response type. +message MsgVoteResponse {} + +// MsgExec is the Msg/Exec request type. +message MsgExec { + option (cosmos.msg.v1.signer) = "executor"; + option (amino.name) = "cosmos-sdk/group/MsgExec"; + + // proposal is the unique ID of the proposal. + uint64 proposal_id = 1; + + // executor is the account address used to execute the proposal. + string executor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgExecResponse is the Msg/Exec request type. +message MsgExecResponse { + // result is the final result of the proposal execution. + ProposalExecutorResult result = 2; +} + +// MsgLeaveGroup is the Msg/LeaveGroup request type. +message MsgLeaveGroup { + option (cosmos.msg.v1.signer) = "address"; + option (amino.name) = "cosmos-sdk/group/MsgLeaveGroup"; + + // address is the account address of the group member. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; +} + +// MsgLeaveGroupResponse is the Msg/LeaveGroup response type. +message MsgLeaveGroupResponse {} diff --git a/proto/rust-vendored/cosmos/group/v1/types.proto b/proto/rust-vendored/cosmos/group/v1/types.proto new file mode 100644 index 0000000..2126b23 --- /dev/null +++ b/proto/rust-vendored/cosmos/group/v1/types.proto @@ -0,0 +1,337 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; + +package cosmos.group.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/group"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/any.proto"; +import "amino/amino.proto"; + +// Member represents a group member with an account address, +// non-zero weight, metadata and added_at timestamp. +message Member { + // address is the member's account address. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // weight is the member's voting weight that should be greater than 0. + string weight = 2; + + // metadata is any arbitrary metadata attached to the member. + string metadata = 3; + + // added_at is a timestamp specifying when a member was added. + google.protobuf.Timestamp added_at = 4 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} + +// MemberRequest represents a group member to be used in Msg server requests. +// Contrary to `Member`, it doesn't have any `added_at` field +// since this field cannot be set as part of requests. +message MemberRequest { + // address is the member's account address. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // weight is the member's voting weight that should be greater than 0. + string weight = 2; + + // metadata is any arbitrary metadata attached to the member. + string metadata = 3; +} + +// ThresholdDecisionPolicy is a decision policy where a proposal passes when it +// satisfies the two following conditions: +// 1. The sum of all `YES` voter's weights is greater or equal than the defined +// `threshold`. +// 2. The voting and execution periods of the proposal respect the parameters +// given by `windows`. +message ThresholdDecisionPolicy { + option (cosmos_proto.implements_interface) = "cosmos.group.v1.DecisionPolicy"; + option (amino.name) = "cosmos-sdk/ThresholdDecisionPolicy"; + + // threshold is the minimum weighted sum of `YES` votes that must be met or + // exceeded for a proposal to succeed. + string threshold = 1; + + // windows defines the different windows for voting and execution. + DecisionPolicyWindows windows = 2; +} + +// PercentageDecisionPolicy is a decision policy where a proposal passes when +// it satisfies the two following conditions: +// 1. The percentage of all `YES` voters' weights out of the total group weight +// is greater or equal than the given `percentage`. +// 2. The voting and execution periods of the proposal respect the parameters +// given by `windows`. +message PercentageDecisionPolicy { + option (cosmos_proto.implements_interface) = "cosmos.group.v1.DecisionPolicy"; + option (amino.name) = "cosmos-sdk/PercentageDecisionPolicy"; + + // percentage is the minimum percentage of the weighted sum of `YES` votes must + // meet for a proposal to succeed. + string percentage = 1; + + // windows defines the different windows for voting and execution. + DecisionPolicyWindows windows = 2; +} + +// DecisionPolicyWindows defines the different windows for voting and execution. +message DecisionPolicyWindows { + // voting_period is the duration from submission of a proposal to the end of voting period + // Within this times votes can be submitted with MsgVote. + google.protobuf.Duration voting_period = 1 + [(gogoproto.stdduration) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // min_execution_period is the minimum duration after the proposal submission + // where members can start sending MsgExec. This means that the window for + // sending a MsgExec transaction is: + // `[ submission + min_execution_period ; submission + voting_period + max_execution_period]` + // where max_execution_period is a app-specific config, defined in the keeper. + // If not set, min_execution_period will default to 0. + // + // Please make sure to set a `min_execution_period` that is smaller than + // `voting_period + max_execution_period`, or else the above execution window + // is empty, meaning that all proposals created with this decision policy + // won't be able to be executed. + google.protobuf.Duration min_execution_period = 2 + [(gogoproto.stdduration) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// VoteOption enumerates the valid vote options for a given proposal. +enum VoteOption { + option (gogoproto.goproto_enum_prefix) = false; + + // VOTE_OPTION_UNSPECIFIED defines an unspecified vote option which will + // return an error. + VOTE_OPTION_UNSPECIFIED = 0; + // VOTE_OPTION_YES defines a yes vote option. + VOTE_OPTION_YES = 1; + // VOTE_OPTION_ABSTAIN defines an abstain vote option. + VOTE_OPTION_ABSTAIN = 2; + // VOTE_OPTION_NO defines a no vote option. + VOTE_OPTION_NO = 3; + // VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + VOTE_OPTION_NO_WITH_VETO = 4; +} + +// +// State +// + +// GroupInfo represents the high-level on-chain information for a group. +message GroupInfo { + // id is the unique ID of the group. + uint64 id = 1; + + // admin is the account address of the group's admin. + string admin = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // metadata is any arbitrary metadata to attached to the group. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#group-1 + string metadata = 3; + + // version is used to track changes to a group's membership structure that + // would break existing proposals. Whenever any members weight is changed, + // or any member is added or removed this version is incremented and will + // cause proposals based on older versions of this group to fail + uint64 version = 4; + + // total_weight is the sum of the group members' weights. + string total_weight = 5; + + // created_at is a timestamp specifying when a group was created. + google.protobuf.Timestamp created_at = 6 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} + +// GroupMember represents the relationship between a group and a member. +message GroupMember { + // group_id is the unique ID of the group. + uint64 group_id = 1; + + // member is the member data. + Member member = 2; +} + +// GroupPolicyInfo represents the high-level on-chain information for a group policy. +message GroupPolicyInfo { + option (gogoproto.equal) = true; + option (gogoproto.goproto_getters) = false; + + // address is the account address of group policy. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // group_id is the unique ID of the group. + uint64 group_id = 2; + + // admin is the account address of the group admin. + string admin = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // metadata is any arbitrary metadata attached to the group policy. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#decision-policy-1 + string metadata = 4; + + // version is used to track changes to a group's GroupPolicyInfo structure that + // would create a different result on a running proposal. + uint64 version = 5; + + // decision_policy specifies the group policy's decision policy. + google.protobuf.Any decision_policy = 6 [(cosmos_proto.accepts_interface) = "cosmos.group.v1.DecisionPolicy"]; + + // created_at is a timestamp specifying when a group policy was created. + google.protobuf.Timestamp created_at = 7 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} + +// Proposal defines a group proposal. Any member of a group can submit a proposal +// for a group policy to decide upon. +// A proposal consists of a set of `sdk.Msg`s that will be executed if the proposal +// passes as well as some optional metadata associated with the proposal. +message Proposal { + option (gogoproto.goproto_getters) = false; + + // id is the unique id of the proposal. + uint64 id = 1; + + // group_policy_address is the account address of group policy. + string group_policy_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // metadata is any arbitrary metadata attached to the proposal. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#proposal-4 + string metadata = 3; + + // proposers are the account addresses of the proposers. + repeated string proposers = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // submit_time is a timestamp specifying when a proposal was submitted. + google.protobuf.Timestamp submit_time = 5 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + + // group_version tracks the version of the group at proposal submission. + // This field is here for informational purposes only. + uint64 group_version = 6; + + // group_policy_version tracks the version of the group policy at proposal submission. + // When a decision policy is changed, existing proposals from previous policy + // versions will become invalid with the `ABORTED` status. + // This field is here for informational purposes only. + uint64 group_policy_version = 7; + + // status represents the high level position in the life cycle of the proposal. Initial value is Submitted. + ProposalStatus status = 8; + + // final_tally_result contains the sums of all weighted votes for this + // proposal for each vote option. It is empty at submission, and only + // populated after tallying, at voting period end or at proposal execution, + // whichever happens first. + TallyResult final_tally_result = 9 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // voting_period_end is the timestamp before which voting must be done. + // Unless a successful MsgExec is called before (to execute a proposal whose + // tally is successful before the voting period ends), tallying will be done + // at this point, and the `final_tally_result`and `status` fields will be + // accordingly updated. + google.protobuf.Timestamp voting_period_end = 10 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + + // executor_result is the final result of the proposal execution. Initial value is NotRun. + ProposalExecutorResult executor_result = 11; + + // messages is a list of `sdk.Msg`s that will be executed if the proposal passes. + repeated google.protobuf.Any messages = 12; + + // title is the title of the proposal + // + // Since: cosmos-sdk 0.47 + string title = 13; + + // summary is a short summary of the proposal + // + // Since: cosmos-sdk 0.47 + string summary = 14; +} + +// ProposalStatus defines proposal statuses. +enum ProposalStatus { + option (gogoproto.goproto_enum_prefix) = false; + + // An empty value is invalid and not allowed. + PROPOSAL_STATUS_UNSPECIFIED = 0; + + // Initial status of a proposal when submitted. + PROPOSAL_STATUS_SUBMITTED = 1; + + // Final status of a proposal when the final tally is done and the outcome + // passes the group policy's decision policy. + PROPOSAL_STATUS_ACCEPTED = 2; + + // Final status of a proposal when the final tally is done and the outcome + // is rejected by the group policy's decision policy. + PROPOSAL_STATUS_REJECTED = 3; + + // Final status of a proposal when the group policy is modified before the + // final tally. + PROPOSAL_STATUS_ABORTED = 4; + + // A proposal can be withdrawn before the voting start time by the owner. + // When this happens the final status is Withdrawn. + PROPOSAL_STATUS_WITHDRAWN = 5; +} + +// ProposalExecutorResult defines types of proposal executor results. +enum ProposalExecutorResult { + option (gogoproto.goproto_enum_prefix) = false; + + // An empty value is not allowed. + PROPOSAL_EXECUTOR_RESULT_UNSPECIFIED = 0; + + // We have not yet run the executor. + PROPOSAL_EXECUTOR_RESULT_NOT_RUN = 1; + + // The executor was successful and proposed action updated state. + PROPOSAL_EXECUTOR_RESULT_SUCCESS = 2; + + // The executor returned an error and proposed action didn't update state. + PROPOSAL_EXECUTOR_RESULT_FAILURE = 3; +} + +// TallyResult represents the sum of weighted votes for each vote option. +message TallyResult { + option (gogoproto.goproto_getters) = false; + + // yes_count is the weighted sum of yes votes. + string yes_count = 1; + + // abstain_count is the weighted sum of abstainers. + string abstain_count = 2; + + // no_count is the weighted sum of no votes. + string no_count = 3; + + // no_with_veto_count is the weighted sum of veto. + string no_with_veto_count = 4; +} + +// Vote represents a vote for a proposal.string metadata +message Vote { + // proposal is the unique ID of the proposal. + uint64 proposal_id = 1; + + // voter is the account address of the voter. + string voter = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // option is the voter's choice on the proposal. + VoteOption option = 3; + + // metadata is any arbitrary metadata attached to the vote. + // the recommended format of the metadata is to be found here: https://docs.cosmos.network/v0.47/modules/group#vote-2 + string metadata = 4; + + // submit_time is the timestamp when the vote was submitted. + google.protobuf.Timestamp submit_time = 5 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} diff --git a/proto/rust-vendored/cosmos/ics23/v1/proofs.proto b/proto/rust-vendored/cosmos/ics23/v1/proofs.proto new file mode 100644 index 0000000..0e75dfb --- /dev/null +++ b/proto/rust-vendored/cosmos/ics23/v1/proofs.proto @@ -0,0 +1,234 @@ +syntax = "proto3"; + +package cosmos.ics23.v1; + +option go_package = "github.com/cosmos/ics23/go;ics23"; + +enum HashOp { + // NO_HASH is the default if no data passed. Note this is an illegal argument some places. + NO_HASH = 0; + SHA256 = 1; + SHA512 = 2; + KECCAK = 3; + RIPEMD160 = 4; + BITCOIN = 5; // ripemd160(sha256(x)) + SHA512_256 = 6; +} + +/** +LengthOp defines how to process the key and value of the LeafOp +to include length information. After encoding the length with the given +algorithm, the length will be prepended to the key and value bytes. +(Each one with it's own encoded length) +*/ +enum LengthOp { + // NO_PREFIX don't include any length info + NO_PREFIX = 0; + // VAR_PROTO uses protobuf (and go-amino) varint encoding of the length + VAR_PROTO = 1; + // VAR_RLP uses rlp int encoding of the length + VAR_RLP = 2; + // FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer + FIXED32_BIG = 3; + // FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer + FIXED32_LITTLE = 4; + // FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer + FIXED64_BIG = 5; + // FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer + FIXED64_LITTLE = 6; + // REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) + REQUIRE_32_BYTES = 7; + // REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) + REQUIRE_64_BYTES = 8; +} + +/** +ExistenceProof takes a key and a value and a set of steps to perform on it. +The result of peforming all these steps will provide a "root hash", which can +be compared to the value in a header. + +Since it is computationally infeasible to produce a hash collission for any of the used +cryptographic hash functions, if someone can provide a series of operations to transform +a given key and value into a root hash that matches some trusted root, these key and values +must be in the referenced merkle tree. + +The only possible issue is maliablity in LeafOp, such as providing extra prefix data, +which should be controlled by a spec. Eg. with lengthOp as NONE, + prefix = FOO, key = BAR, value = CHOICE +and + prefix = F, key = OOBAR, value = CHOICE +would produce the same value. + +With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field +in the ProofSpec is valuable to prevent this mutability. And why all trees should +length-prefix the data before hashing it. +*/ +message ExistenceProof { + bytes key = 1; + bytes value = 2; + LeafOp leaf = 3; + repeated InnerOp path = 4; +} + +/* +NonExistenceProof takes a proof of two neighbors, one left of the desired key, +one right of the desired key. If both proofs are valid AND they are neighbors, +then there is no valid proof for the given key. +*/ +message NonExistenceProof { + bytes key = 1; // TODO: remove this as unnecessary??? we prove a range + ExistenceProof left = 2; + ExistenceProof right = 3; +} + +/* +CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages +*/ +message CommitmentProof { + oneof proof { + ExistenceProof exist = 1; + NonExistenceProof nonexist = 2; + BatchProof batch = 3; + CompressedBatchProof compressed = 4; + } +} + +/** +LeafOp represents the raw key-value data we wish to prove, and +must be flexible to represent the internal transformation from +the original key-value pairs into the basis hash, for many existing +merkle trees. + +key and value are passed in. So that the signature of this operation is: + leafOp(key, value) -> output + +To process this, first prehash the keys and values if needed (ANY means no hash in this case): + hkey = prehashKey(key) + hvalue = prehashValue(value) + +Then combine the bytes, and hash it + output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue) +*/ +message LeafOp { + HashOp hash = 1; + HashOp prehash_key = 2; + HashOp prehash_value = 3; + LengthOp length = 4; + // prefix is a fixed bytes that may optionally be included at the beginning to differentiate + // a leaf node from an inner node. + bytes prefix = 5; +} + +/** +InnerOp represents a merkle-proof step that is not a leaf. +It represents concatenating two children and hashing them to provide the next result. + +The result of the previous step is passed in, so the signature of this op is: + innerOp(child) -> output + +The result of applying InnerOp should be: + output = op.hash(op.prefix || child || op.suffix) + + where the || operator is concatenation of binary data, +and child is the result of hashing all the tree below this step. + +Any special data, like prepending child with the length, or prepending the entire operation with +some value to differentiate from leaf nodes, should be included in prefix and suffix. +If either of prefix or suffix is empty, we just treat it as an empty string +*/ +message InnerOp { + HashOp hash = 1; + bytes prefix = 2; + bytes suffix = 3; +} + +/** +ProofSpec defines what the expected parameters are for a given proof type. +This can be stored in the client and used to validate any incoming proofs. + + verify(ProofSpec, Proof) -> Proof | Error + +As demonstrated in tests, if we don't fix the algorithm used to calculate the +LeafHash for a given tree, there are many possible key-value pairs that can +generate a given hash (by interpretting the preimage differently). +We need this for proper security, requires client knows a priori what +tree format server uses. But not in code, rather a configuration object. +*/ +message ProofSpec { + // any field in the ExistenceProof must be the same as in this spec. + // except Prefix, which is just the first bytes of prefix (spec can be longer) + LeafOp leaf_spec = 1; + InnerSpec inner_spec = 2; + // max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) + int32 max_depth = 3; + // min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) + int32 min_depth = 4; +} + +/* +InnerSpec contains all store-specific structure info to determine if two proofs from a +given store are neighbors. + +This enables: + + isLeftMost(spec: InnerSpec, op: InnerOp) + isRightMost(spec: InnerSpec, op: InnerOp) + isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp) +*/ +message InnerSpec { + // Child order is the ordering of the children node, must count from 0 + // iavl tree is [0, 1] (left then right) + // merk is [0, 2, 1] (left, right, here) + repeated int32 child_order = 1; + int32 child_size = 2; + int32 min_prefix_length = 3; + int32 max_prefix_length = 4; + // empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) + bytes empty_child = 5; + // hash is the algorithm that must be used for each InnerOp + HashOp hash = 6; +} + +/* +BatchProof is a group of multiple proof types than can be compressed +*/ +message BatchProof { + repeated BatchEntry entries = 1; +} + +// Use BatchEntry not CommitmentProof, to avoid recursion +message BatchEntry { + oneof proof { + ExistenceProof exist = 1; + NonExistenceProof nonexist = 2; + } +} + +/****** all items here are compressed forms *******/ + +message CompressedBatchProof { + repeated CompressedBatchEntry entries = 1; + repeated InnerOp lookup_inners = 2; +} + +// Use BatchEntry not CommitmentProof, to avoid recursion +message CompressedBatchEntry { + oneof proof { + CompressedExistenceProof exist = 1; + CompressedNonExistenceProof nonexist = 2; + } +} + +message CompressedExistenceProof { + bytes key = 1; + bytes value = 2; + LeafOp leaf = 3; + // these are indexes into the lookup_inners table in CompressedBatchProof + repeated int32 path = 4; +} + +message CompressedNonExistenceProof { + bytes key = 1; // TODO: remove this as unnecessary??? we prove a range + CompressedExistenceProof left = 2; + CompressedExistenceProof right = 3; +} diff --git a/proto/rust-vendored/cosmos/mint/module/v1/module.proto b/proto/rust-vendored/cosmos/mint/module/v1/module.proto new file mode 100644 index 0000000..2ea1ef3 --- /dev/null +++ b/proto/rust-vendored/cosmos/mint/module/v1/module.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package cosmos.mint.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the mint module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/mint" + }; + + string fee_collector_name = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/mint/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/mint/v1beta1/genesis.proto new file mode 100644 index 0000000..b6cc150 --- /dev/null +++ b/proto/rust-vendored/cosmos/mint/v1beta1/genesis.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/mint/v1beta1/mint.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +// GenesisState defines the mint module's genesis state. +message GenesisState { + // minter is a space for holding current inflation information. + Minter minter = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // params defines all the parameters of the module. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/mint/v1beta1/mint.proto b/proto/rust-vendored/cosmos/mint/v1beta1/mint.proto new file mode 100644 index 0000000..2884025 --- /dev/null +++ b/proto/rust-vendored/cosmos/mint/v1beta1/mint.proto @@ -0,0 +1,62 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// Minter represents the minting state. +message Minter { + // current annual inflation rate + string inflation = 1 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // current annual expected provisions + string annual_provisions = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +// Params defines the parameters for the x/mint module. +message Params { + option (amino.name) = "cosmos-sdk/x/mint/Params"; + + // type of coin to mint + string mint_denom = 1; + // maximum annual change in inflation rate + string inflation_rate_change = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // maximum inflation rate + string inflation_max = 3 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // minimum inflation rate + string inflation_min = 4 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // goal of percent bonded atoms + string goal_bonded = 5 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // expected blocks per year + uint64 blocks_per_year = 6; +} diff --git a/proto/rust-vendored/cosmos/mint/v1beta1/query.proto b/proto/rust-vendored/cosmos/mint/v1beta1/query.proto new file mode 100644 index 0000000..002f274 --- /dev/null +++ b/proto/rust-vendored/cosmos/mint/v1beta1/query.proto @@ -0,0 +1,65 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/mint/v1beta1/mint.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +// Query provides defines the gRPC querier service. +service Query { + // Params returns the total set of minting parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/params"; + } + + // Inflation returns the current minting inflation value. + rpc Inflation(QueryInflationRequest) returns (QueryInflationResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/inflation"; + } + + // AnnualProvisions current minting annual provisions value. + rpc AnnualProvisions(QueryAnnualProvisionsRequest) returns (QueryAnnualProvisionsResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/annual_provisions"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryInflationRequest is the request type for the Query/Inflation RPC method. +message QueryInflationRequest {} + +// QueryInflationResponse is the response type for the Query/Inflation RPC +// method. +message QueryInflationResponse { + // inflation is the current minting inflation value. + bytes inflation = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// QueryAnnualProvisionsRequest is the request type for the +// Query/AnnualProvisions RPC method. +message QueryAnnualProvisionsRequest {} + +// QueryAnnualProvisionsResponse is the response type for the +// Query/AnnualProvisions RPC method. +message QueryAnnualProvisionsResponse { + // annual_provisions is the current minting annual provisions value. + bytes annual_provisions = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} diff --git a/proto/rust-vendored/cosmos/mint/v1beta1/tx.proto b/proto/rust-vendored/cosmos/mint/v1beta1/tx.proto new file mode 100644 index 0000000..ec71fb7 --- /dev/null +++ b/proto/rust-vendored/cosmos/mint/v1beta1/tx.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; +import "cosmos/mint/v1beta1/mint.proto"; +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; + +// Msg defines the x/mint Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // UpdateParams defines a governance operation for updating the x/mint module + // parameters. The authority is defaults to the x/gov module account. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/mint/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/mint parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/cosmos/msg/textual/v1/textual.proto b/proto/rust-vendored/cosmos/msg/textual/v1/textual.proto new file mode 100644 index 0000000..4f8cd14 --- /dev/null +++ b/proto/rust-vendored/cosmos/msg/textual/v1/textual.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +package cosmos.msg.textual.v1; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.MessageOptions { + // expert_custom_renderer is an informative identifier to reference the + // algorithm used to generate the custom textual representation of the + // protobuf message where this annotation is applied. We recommend to use a + // short, versioned name as this identifier, e.g. "replace_with_username_v1". + // We also recommand providing a human-readable description as protobuf + // comments on this annotation, for example a short specification or a link + // to the relevant documentation. + // + // Also see the section on Custom Message Renderers in ADR-050. + string expert_custom_renderer = 11110009; +} diff --git a/proto/rust-vendored/cosmos/msg/v1/msg.proto b/proto/rust-vendored/cosmos/msg/v1/msg.proto new file mode 100644 index 0000000..853efa1 --- /dev/null +++ b/proto/rust-vendored/cosmos/msg/v1/msg.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; + +package cosmos.msg.v1; + +import "google/protobuf/descriptor.proto"; + +// TODO(fdymylja): once we fully migrate to protov2 the go_package needs to be updated. +// We need this right now because gogoproto codegen needs to import the extension. +option go_package = "github.com/cosmos/cosmos-sdk/types/msgservice"; + +extend google.protobuf.ServiceOptions { + // service indicates that the service is a Msg service and that requests + // must be transported via blockchain transactions rather than gRPC. + // Tooling can use this annotation to distinguish between Msg services and + // other types of services via reflection. + bool service = 11110000; +} + +extend google.protobuf.MessageOptions { + // signer must be used in cosmos messages in order + // to signal to external clients which fields in a + // given cosmos message must be filled with signer + // information (address). + // The field must be the protobuf name of the message + // field extended with this MessageOption. + // The field must either be of string kind, or of message + // kind in case the signer information is contained within + // a message inside the cosmos message. + repeated string signer = 11110000; +} diff --git a/proto/rust-vendored/cosmos/nft/module/v1/module.proto b/proto/rust-vendored/cosmos/nft/module/v1/module.proto new file mode 100644 index 0000000..a5c2c63 --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.nft.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the nft module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/x/nft" + }; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/nft/v1beta1/event.proto b/proto/rust-vendored/cosmos/nft/v1beta1/event.proto new file mode 100644 index 0000000..d2cb29d --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/v1beta1/event.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package cosmos.nft.v1beta1; + +option go_package = "cosmossdk.io/x/nft"; + +// EventSend is emitted on Msg/Send +message EventSend { + // class_id associated with the nft + string class_id = 1; + + // id is a unique identifier of the nft + string id = 2; + + // sender is the address of the owner of nft + string sender = 3; + + // receiver is the receiver address of nft + string receiver = 4; +} + +// EventMint is emitted on Mint +message EventMint { + // class_id associated with the nft + string class_id = 1; + + // id is a unique identifier of the nft + string id = 2; + + // owner is the owner address of the nft + string owner = 3; +} + +// EventBurn is emitted on Burn +message EventBurn { + // class_id associated with the nft + string class_id = 1; + + // id is a unique identifier of the nft + string id = 2; + + // owner is the owner address of the nft + string owner = 3; +} diff --git a/proto/rust-vendored/cosmos/nft/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/nft/v1beta1/genesis.proto new file mode 100644 index 0000000..441b48b --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/v1beta1/genesis.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package cosmos.nft.v1beta1; + +import "cosmos/nft/v1beta1/nft.proto"; + +option go_package = "cosmossdk.io/x/nft"; + +// GenesisState defines the nft module's genesis state. +message GenesisState { + // class defines the class of the nft type. + repeated cosmos.nft.v1beta1.Class classes = 1; + + // entry defines all nft owned by a person. + repeated Entry entries = 2; +} + +// Entry Defines all nft owned by a person +message Entry { + // owner is the owner address of the following nft + string owner = 1; + + // nfts is a group of nfts of the same owner + repeated cosmos.nft.v1beta1.NFT nfts = 2; +} diff --git a/proto/rust-vendored/cosmos/nft/v1beta1/nft.proto b/proto/rust-vendored/cosmos/nft/v1beta1/nft.proto new file mode 100644 index 0000000..4234bd4 --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/v1beta1/nft.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; +package cosmos.nft.v1beta1; + +import "google/protobuf/any.proto"; + +option go_package = "cosmossdk.io/x/nft"; + +// Class defines the class of the nft type. +message Class { + // id defines the unique identifier of the NFT classification, similar to the contract address of ERC721 + string id = 1; + + // name defines the human-readable name of the NFT classification. Optional + string name = 2; + + // symbol is an abbreviated name for nft classification. Optional + string symbol = 3; + + // description is a brief description of nft classification. Optional + string description = 4; + + // uri for the class metadata stored off chain. It can define schema for Class and NFT `Data` attributes. Optional + string uri = 5; + + // uri_hash is a hash of the document pointed by uri. Optional + string uri_hash = 6; + + // data is the app specific metadata of the NFT class. Optional + google.protobuf.Any data = 7; +} + +// NFT defines the NFT. +message NFT { + // class_id associated with the NFT, similar to the contract address of ERC721 + string class_id = 1; + + // id is a unique identifier of the NFT + string id = 2; + + // uri for the NFT metadata stored off chain + string uri = 3; + + // uri_hash is a hash of the document pointed by uri + string uri_hash = 4; + + // data is an app specific data of the NFT. Optional + google.protobuf.Any data = 10; +} diff --git a/proto/rust-vendored/cosmos/nft/v1beta1/query.proto b/proto/rust-vendored/cosmos/nft/v1beta1/query.proto new file mode 100644 index 0000000..bdc794f --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/v1beta1/query.proto @@ -0,0 +1,152 @@ +syntax = "proto3"; +package cosmos.nft.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "google/api/annotations.proto"; +import "cosmos/nft/v1beta1/nft.proto"; + +option go_package = "cosmossdk.io/x/nft"; + +// Query defines the gRPC querier service. +service Query { + // Balance queries the number of NFTs of a given class owned by the owner, same as balanceOf in ERC721 + rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/balance/{owner}/{class_id}"; + } + + // Owner queries the owner of the NFT based on its class and id, same as ownerOf in ERC721 + rpc Owner(QueryOwnerRequest) returns (QueryOwnerResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/owner/{class_id}/{id}"; + } + + // Supply queries the number of NFTs from the given class, same as totalSupply of ERC721. + rpc Supply(QuerySupplyRequest) returns (QuerySupplyResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/supply/{class_id}"; + } + + // NFTs queries all NFTs of a given class or owner,choose at least one of the two, similar to tokenByIndex in + // ERC721Enumerable + rpc NFTs(QueryNFTsRequest) returns (QueryNFTsResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/nfts"; + } + + // NFT queries an NFT based on its class and id. + rpc NFT(QueryNFTRequest) returns (QueryNFTResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/nfts/{class_id}/{id}"; + } + + // Class queries an NFT class based on its id + rpc Class(QueryClassRequest) returns (QueryClassResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/classes/{class_id}"; + } + + // Classes queries all NFT classes + rpc Classes(QueryClassesRequest) returns (QueryClassesResponse) { + option (google.api.http).get = "/cosmos/nft/v1beta1/classes"; + } +} + +// QueryBalanceRequest is the request type for the Query/Balance RPC method +message QueryBalanceRequest { + // class_id associated with the nft + string class_id = 1; + + // owner is the owner address of the nft + string owner = 2; +} + +// QueryBalanceResponse is the response type for the Query/Balance RPC method +message QueryBalanceResponse { + // amount is the number of all NFTs of a given class owned by the owner + uint64 amount = 1; +} + +// QueryOwnerRequest is the request type for the Query/Owner RPC method +message QueryOwnerRequest { + // class_id associated with the nft + string class_id = 1; + + // id is a unique identifier of the NFT + string id = 2; +} + +// QueryOwnerResponse is the response type for the Query/Owner RPC method +message QueryOwnerResponse { + // owner is the owner address of the nft + string owner = 1; +} + +// QuerySupplyRequest is the request type for the Query/Supply RPC method +message QuerySupplyRequest { + // class_id associated with the nft + string class_id = 1; +} + +// QuerySupplyResponse is the response type for the Query/Supply RPC method +message QuerySupplyResponse { + // amount is the number of all NFTs from the given class + uint64 amount = 1; +} + +// QueryNFTstRequest is the request type for the Query/NFTs RPC method +message QueryNFTsRequest { + // class_id associated with the nft + string class_id = 1; + + // owner is the owner address of the nft + string owner = 2; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 3; +} + +// QueryNFTsResponse is the response type for the Query/NFTs RPC methods +message QueryNFTsResponse { + // NFT defines the NFT + repeated cosmos.nft.v1beta1.NFT nfts = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryNFTRequest is the request type for the Query/NFT RPC method +message QueryNFTRequest { + // class_id associated with the nft + string class_id = 1; + + // id is a unique identifier of the NFT + string id = 2; +} + +// QueryNFTResponse is the response type for the Query/NFT RPC method +message QueryNFTResponse { + // owner is the owner address of the nft + cosmos.nft.v1beta1.NFT nft = 1; +} + +// QueryClassRequest is the request type for the Query/Class RPC method +message QueryClassRequest { + // class_id associated with the nft + string class_id = 1; +} + +// QueryClassResponse is the response type for the Query/Class RPC method +message QueryClassResponse { + // class defines the class of the nft type. + cosmos.nft.v1beta1.Class class = 1; +} + +// QueryClassesRequest is the request type for the Query/Classes RPC method +message QueryClassesRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryClassesResponse is the response type for the Query/Classes RPC method +message QueryClassesResponse { + // class defines the class of the nft type. + repeated cosmos.nft.v1beta1.Class classes = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/nft/v1beta1/tx.proto b/proto/rust-vendored/cosmos/nft/v1beta1/tx.proto new file mode 100644 index 0000000..9eecfdd --- /dev/null +++ b/proto/rust-vendored/cosmos/nft/v1beta1/tx.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +package cosmos.nft.v1beta1; + +option go_package = "cosmossdk.io/x/nft"; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; + +// Msg defines the nft Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Send defines a method to send a nft from one account to another account. + rpc Send(MsgSend) returns (MsgSendResponse); +} + +// MsgSend represents a message to send a nft from one account to another account. +message MsgSend { + option (cosmos.msg.v1.signer) = "sender"; + + // class_id defines the unique identifier of the nft classification, similar to the contract address of ERC721 + string class_id = 1; + + // id defines the unique identification of nft + string id = 2; + + // sender is the address of the owner of nft + string sender = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // receiver is the receiver address of nft + string receiver = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} +// MsgSendResponse defines the Msg/Send response type. +message MsgSendResponse {} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/orm/module/v1alpha1/module.proto b/proto/rust-vendored/cosmos/orm/module/v1alpha1/module.proto new file mode 100644 index 0000000..260db36 --- /dev/null +++ b/proto/rust-vendored/cosmos/orm/module/v1alpha1/module.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package cosmos.orm.module.v1alpha1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module defines the ORM module which adds providers to the app container for +// ORM ModuleDB's and in the future will automatically register query +// services for modules that use the ORM. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/orm" + }; +} diff --git a/proto/rust-vendored/cosmos/orm/query/v1alpha1/query.proto b/proto/rust-vendored/cosmos/orm/query/v1alpha1/query.proto new file mode 100644 index 0000000..251898d --- /dev/null +++ b/proto/rust-vendored/cosmos/orm/query/v1alpha1/query.proto @@ -0,0 +1,131 @@ +syntax = "proto3"; + +package cosmos.orm.query.v1alpha1; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/any.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; + +// Query is a generic gRPC service for querying ORM data. +service Query { + + // Get queries an ORM table against an unique index. + rpc Get(GetRequest) returns (GetResponse); + + // List queries an ORM table against an index. + rpc List(ListRequest) returns (ListResponse); +} + +// GetRequest is the Query/Get request type. +message GetRequest { + // message_name is the fully-qualified message name of the ORM table being queried. + string message_name = 1; + + // index is the index fields expression used in orm definitions. If it + // is empty, the table's primary key is assumed. If it is non-empty, it must + // refer to an unique index. + string index = 2; + + // values are the values of the fields corresponding to the requested index. + // There must be as many values provided as there are fields in the index and + // these values must correspond to the index field types. + repeated IndexValue values = 3; +} + +// GetResponse is the Query/Get response type. +message GetResponse { + + // result is the result of the get query. If no value is found, the gRPC + // status code NOT_FOUND will be returned. + google.protobuf.Any result = 1; +} + +// ListRequest is the Query/List request type. +message ListRequest { + // message_name is the fully-qualified message name of the ORM table being queried. + string message_name = 1; + + // index is the index fields expression used in orm definitions. If it + // is empty, the table's primary key is assumed. + string index = 2; + + // query is the query expression corresponding to the provided index. If + // neither prefix nor range is specified, the query will list all the fields + // in the index. + oneof query { + + // prefix defines a prefix query. + Prefix prefix = 3; + + // range defines a range query. + Range range = 4; + } + + // pagination is the pagination request. + cosmos.base.query.v1beta1.PageRequest pagination = 5; + + // Prefix specifies the arguments to a prefix query. + message Prefix { + // values specifies the index values for the prefix query. + // It is valid to special a partial prefix with fewer values than + // the number of fields in the index. + repeated IndexValue values = 1; + } + + // Range specifies the arguments to a range query. + message Range { + // start specifies the starting index values for the range query. + // It is valid to provide fewer values than the number of fields in the + // index. + repeated IndexValue start = 1; + + // end specifies the inclusive ending index values for the range query. + // It is valid to provide fewer values than the number of fields in the + // index. + repeated IndexValue end = 2; + } +} + +// ListResponse is the Query/List response type. +message ListResponse { + + // results are the results of the query. + repeated google.protobuf.Any results = 1; + + // pagination is the pagination response. + cosmos.base.query.v1beta1.PageResponse pagination = 5; +} + +// IndexValue represents the value of a field in an ORM index expression. +message IndexValue { + + // value specifies the index value + oneof value { + // uint specifies a value for an uint32, fixed32, uint64, or fixed64 + // index field. + uint64 uint = 1; + + // int64 specifies a value for an int32, sfixed32, int64, or sfixed64 + // index field. + int64 int_ = 2; + + // str specifies a value for a string index field. + string str = 3; + + // bytes specifies a value for a bytes index field. + bytes bytes = 4; + + // enum specifies a value for an enum index field. + string enum_ = 5; + + // bool specifies a value for a bool index field. + bool bool_ = 6; + + // timestamp specifies a value for a timestamp index field. + google.protobuf.Timestamp timestamp = 7; + + // duration specifies a value for a duration index field. + google.protobuf.Duration duration = 8; + } +} diff --git a/proto/rust-vendored/cosmos/orm/v1/orm.proto b/proto/rust-vendored/cosmos/orm/v1/orm.proto new file mode 100644 index 0000000..e850939 --- /dev/null +++ b/proto/rust-vendored/cosmos/orm/v1/orm.proto @@ -0,0 +1,107 @@ +syntax = "proto3"; + +package cosmos.orm.v1; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.MessageOptions { + + // table specifies that this message will be used as an ORM table. It cannot + // be used together with the singleton option. + TableDescriptor table = 104503790; + + // singleton specifies that this message will be used as an ORM singleton. It cannot + // be used together with the table option. + SingletonDescriptor singleton = 104503791; +} + +// TableDescriptor describes an ORM table. +message TableDescriptor { + + // primary_key defines the primary key for the table. + PrimaryKeyDescriptor primary_key = 1; + + // index defines one or more secondary indexes. + repeated SecondaryIndexDescriptor index = 2; + + // id is a non-zero integer ID that must be unique within the + // tables and singletons in this file. It may be deprecated in the future when this + // can be auto-generated. + uint32 id = 3; +} + +// PrimaryKeyDescriptor describes a table primary key. +message PrimaryKeyDescriptor { + + // fields is a comma-separated list of fields in the primary key. Spaces are + // not allowed. Supported field types, their encodings, and any applicable constraints + // are described below. + // - uint32 are encoded as 2,3,4 or 5 bytes using a compact encoding that + // is suitable for sorted iteration (not varint encoding). This type is + // well-suited for small integers. + // - uint64 are encoded as 2,4,6 or 9 bytes using a compact encoding that + // is suitable for sorted iteration (not varint encoding). This type is + // well-suited for small integers such as auto-incrementing sequences. + // - fixed32, fixed64 are encoded as big-endian fixed width bytes and support + // sorted iteration. These types are well-suited for encoding fixed with + // decimals as integers. + // - string's are encoded as raw bytes in terminal key segments and null-terminated + // in non-terminal segments. Null characters are thus forbidden in strings. + // string fields support sorted iteration. + // - bytes are encoded as raw bytes in terminal segments and length-prefixed + // with a 32-bit unsigned varint in non-terminal segments. + // - int32, sint32, int64, sint64, sfixed32, sfixed64 are encoded as fixed width bytes with + // an encoding that enables sorted iteration. + // - google.protobuf.Timestamp is encoded such that values with only seconds occupy 6 bytes, + // values including nanos occupy 9 bytes, and nil values occupy 1 byte. When iterating, nil + // values will always be ordered last. Seconds and nanos values must conform to the officially + // specified ranges of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z and 0 to 999,999,999 respectively. + // - google.protobuf.Duration is encoded as 12 bytes using an encoding that enables sorted iteration. + // - enum fields are encoded using varint encoding and do not support sorted + // iteration. + // - bool fields are encoded as a single byte 0 or 1. + // + // All other fields types are unsupported in keys including repeated and + // oneof fields. + // + // Primary keys are prefixed by the varint encoded table id and the byte 0x0 + // plus any additional prefix specified by the schema. + string fields = 1; + + // auto_increment specifies that the primary key is generated by an + // auto-incrementing integer. If this is set to true fields must only + // contain one field of that is of type uint64. + bool auto_increment = 2; +} + +// PrimaryKeyDescriptor describes a table secondary index. +message SecondaryIndexDescriptor { + + // fields is a comma-separated list of fields in the index. The supported + // field types are the same as those for PrimaryKeyDescriptor.fields. + // Index keys are prefixed by the varint encoded table id and the varint + // encoded index id plus any additional prefix specified by the schema. + // + // In addition the field segments, non-unique index keys are suffixed with + // any additional primary key fields not present in the index fields so that the + // primary key can be reconstructed. Unique indexes instead of being suffixed + // store the remaining primary key fields in the value.. + string fields = 1; + + // id is a non-zero integer ID that must be unique within the indexes for this + // table and less than 32768. It may be deprecated in the future when this can + // be auto-generated. + uint32 id = 2; + + // unique specifies that this an unique index. + bool unique = 3; +} + +// TableDescriptor describes an ORM singleton table which has at most one instance. +message SingletonDescriptor { + + // id is a non-zero integer ID that must be unique within the + // tables and singletons in this file. It may be deprecated in the future when this + // can be auto-generated. + uint32 id = 1; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/orm/v1alpha1/schema.proto b/proto/rust-vendored/cosmos/orm/v1alpha1/schema.proto new file mode 100644 index 0000000..cbe90de --- /dev/null +++ b/proto/rust-vendored/cosmos/orm/v1alpha1/schema.proto @@ -0,0 +1,58 @@ +syntax = "proto3"; + +package cosmos.orm.v1alpha1; + +import "google/protobuf/descriptor.proto"; + +extend google.protobuf.MessageOptions { + // module_schema is used to define the ORM schema for an app module. + // All module config messages that use module_schema must also declare + // themselves as app module config messages using the cosmos.app.v1.is_module + // option. + ModuleSchemaDescriptor module_schema = 104503792; +} + +// ModuleSchemaDescriptor describe's a module's ORM schema. +message ModuleSchemaDescriptor { + repeated FileEntry schema_file = 1; + + // FileEntry describes an ORM file used in a module. + message FileEntry { + // id is a prefix that will be varint encoded and prepended to all the + // table keys specified in the file's tables. + uint32 id = 1; + + // proto_file_name is the name of a file .proto in that contains + // table definitions. The .proto file must be in a package that the + // module has referenced using cosmos.app.v1.ModuleDescriptor.use_package. + string proto_file_name = 2; + + // storage_type optionally indicates the type of storage this file's + // tables should used. If it is left unspecified, the default KV-storage + // of the app will be used. + StorageType storage_type = 3; + } + + // prefix is an optional prefix that precedes all keys in this module's + // store. + bytes prefix = 2; +} + +// StorageType +enum StorageType { + // STORAGE_TYPE_DEFAULT_UNSPECIFIED indicates the persistent storage where all + // data is stored in the regular Merkle-tree backed KV-store. + STORAGE_TYPE_DEFAULT_UNSPECIFIED = 0; + + // STORAGE_TYPE_MEMORY indicates in-memory storage that will be + // reloaded every time an app restarts. Tables with this type of storage + // will by default be ignored when importing and exporting a module's + // state from JSON. + STORAGE_TYPE_MEMORY = 1; + + // STORAGE_TYPE_TRANSIENT indicates transient storage that is reset + // at the end of every block. Tables with this type of storage + // will by default be ignored when importing and exporting a module's + // state from JSON. + STORAGE_TYPE_TRANSIENT = 2; +} diff --git a/proto/rust-vendored/cosmos/params/module/v1/module.proto b/proto/rust-vendored/cosmos/params/module/v1/module.proto new file mode 100644 index 0000000..75e7f99 --- /dev/null +++ b/proto/rust-vendored/cosmos/params/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.params.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the params module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/params" + }; +} diff --git a/proto/rust-vendored/cosmos/params/v1beta1/params.proto b/proto/rust-vendored/cosmos/params/v1beta1/params.proto new file mode 100644 index 0000000..c8efa13 --- /dev/null +++ b/proto/rust-vendored/cosmos/params/v1beta1/params.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; +package cosmos.params.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// ParameterChangeProposal defines a proposal to change one or more parameters. +message ParameterChangeProposal { + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + option (amino.name) = "cosmos-sdk/ParameterChangeProposal"; + + string title = 1; + string description = 2; + repeated ParamChange changes = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ParamChange defines an individual parameter change, for use in +// ParameterChangeProposal. +message ParamChange { + string subspace = 1; + string key = 2; + string value = 3; +} diff --git a/proto/rust-vendored/cosmos/params/v1beta1/query.proto b/proto/rust-vendored/cosmos/params/v1beta1/query.proto new file mode 100644 index 0000000..827422e --- /dev/null +++ b/proto/rust-vendored/cosmos/params/v1beta1/query.proto @@ -0,0 +1,63 @@ +syntax = "proto3"; +package cosmos.params.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/params/v1beta1/params.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; + +// Query defines the gRPC querier service. +service Query { + // Params queries a specific parameter of a module, given its subspace and + // key. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/params/v1beta1/params"; + } + + // Subspaces queries for all registered subspaces and all keys for a subspace. + // + // Since: cosmos-sdk 0.46 + rpc Subspaces(QuerySubspacesRequest) returns (QuerySubspacesResponse) { + option (google.api.http).get = "/cosmos/params/v1beta1/subspaces"; + } +} + +// QueryParamsRequest is request type for the Query/Params RPC method. +message QueryParamsRequest { + // subspace defines the module to query the parameter for. + string subspace = 1; + + // key defines the key of the parameter in the subspace. + string key = 2; +} + +// QueryParamsResponse is response type for the Query/Params RPC method. +message QueryParamsResponse { + // param defines the queried parameter. + ParamChange param = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QuerySubspacesRequest defines a request type for querying for all registered +// subspaces and all keys for a subspace. +// +// Since: cosmos-sdk 0.46 +message QuerySubspacesRequest {} + +// QuerySubspacesResponse defines the response types for querying for all +// registered subspaces and all keys for a subspace. +// +// Since: cosmos-sdk 0.46 +message QuerySubspacesResponse { + repeated Subspace subspaces = 1; +} + +// Subspace defines a parameter subspace name and all the keys that exist for +// the subspace. +// +// Since: cosmos-sdk 0.46 +message Subspace { + string subspace = 1; + repeated string keys = 2; +} diff --git a/proto/rust-vendored/cosmos/query/v1/query.proto b/proto/rust-vendored/cosmos/query/v1/query.proto new file mode 100644 index 0000000..e42e73d --- /dev/null +++ b/proto/rust-vendored/cosmos/query/v1/query.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package cosmos.query.v1; + +import "google/protobuf/descriptor.proto"; + +// TODO: once we fully migrate to protov2 the go_package needs to be updated. +// We need this right now because gogoproto codegen needs to import the extension. +option go_package = "github.com/cosmos/cosmos-sdk/types/query"; + +extend google.protobuf.MethodOptions { + // module_query_safe is set to true when the query is safe to be called from + // within the state machine, for example from another module's Keeper, via + // ADR-033 calls or from CosmWasm contracts. + // Concretely, it means that the query is: + // 1. deterministic: given a block height, returns the exact same response + // upon multiple calls; and doesn't introduce any state-machine-breaking + // changes across SDK patch version. + // 2. consumes gas correctly. + // + // If you are a module developer and want to add this annotation to one of + // your own queries, please make sure that the corresponding query: + // 1. is deterministic and won't introduce state-machine-breaking changes + // without a coordinated upgrade path, + // 2. has its gas tracked, to avoid the attack vector where no gas is + // accounted for on potentially high-computation queries. + // + // For queries that potentially consume a large amount of gas (for example + // those with pagination, if the pagination field is incorrectly set), we + // also recommend adding Protobuf comments to warn module developers + // consuming these queries. + // + // When set to true, the query can safely be called + bool module_query_safe = 11110001; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/reflection/v1/reflection.proto b/proto/rust-vendored/cosmos/reflection/v1/reflection.proto new file mode 100644 index 0000000..1f575b8 --- /dev/null +++ b/proto/rust-vendored/cosmos/reflection/v1/reflection.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package cosmos.reflection.v1; + +import "google/protobuf/descriptor.proto"; +import "cosmos/query/v1/query.proto"; + +// Package cosmos.reflection.v1 provides support for inspecting protobuf +// file descriptors. +service ReflectionService { + // FileDescriptors queries all the file descriptors in the app in order + // to enable easier generation of dynamic clients. + rpc FileDescriptors(FileDescriptorsRequest) returns (FileDescriptorsResponse) { + // NOTE: file descriptors SHOULD NOT be part of consensus because they + // include changes to doc commands and module_query_safe should be kept as false. + option (cosmos.query.v1.module_query_safe) = false; + } +} + +// FileDescriptorsRequest is the Query/FileDescriptors request type. +message FileDescriptorsRequest {} + +// FileDescriptorsResponse is the Query/FileDescriptors response type. +message FileDescriptorsResponse { + // files is the file descriptors. + repeated google.protobuf.FileDescriptorProto files = 1; +} diff --git a/proto/rust-vendored/cosmos/slashing/module/v1/module.proto b/proto/rust-vendored/cosmos/slashing/module/v1/module.proto new file mode 100644 index 0000000..5243307 --- /dev/null +++ b/proto/rust-vendored/cosmos/slashing/module/v1/module.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package cosmos.slashing.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the slashing module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/slashing" + }; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 1; +} diff --git a/proto/rust-vendored/cosmos/slashing/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/slashing/v1beta1/genesis.proto new file mode 100644 index 0000000..a2f516b --- /dev/null +++ b/proto/rust-vendored/cosmos/slashing/v1beta1/genesis.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/slashing/v1beta1/slashing.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// GenesisState defines the slashing module's genesis state. +message GenesisState { + // params defines all the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // signing_infos represents a map between validator addresses and their + // signing infos. + repeated SigningInfo signing_infos = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // missed_blocks represents a map between validator addresses and their + // missed blocks. + repeated ValidatorMissedBlocks missed_blocks = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// SigningInfo stores validator signing info of corresponding address. +message SigningInfo { + // address is the validator address. + string address = 1 [(cosmos_proto.scalar) = "cosmos.ConsensusAddressString"]; + // validator_signing_info represents the signing info of this validator. + ValidatorSigningInfo validator_signing_info = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// ValidatorMissedBlocks contains array of missed blocks of corresponding +// address. +message ValidatorMissedBlocks { + // address is the validator address. + string address = 1 [(cosmos_proto.scalar) = "cosmos.ConsensusAddressString"]; + // missed_blocks is an array of missed blocks by the validator. + repeated MissedBlock missed_blocks = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MissedBlock contains height and missed status as boolean. +message MissedBlock { + // index is the height at which the block was missed. + int64 index = 1; + // missed is the missed status. + bool missed = 2; +} diff --git a/proto/rust-vendored/cosmos/slashing/v1beta1/query.proto b/proto/rust-vendored/cosmos/slashing/v1beta1/query.proto new file mode 100644 index 0000000..761e1a4 --- /dev/null +++ b/proto/rust-vendored/cosmos/slashing/v1beta1/query.proto @@ -0,0 +1,66 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/slashing/v1beta1/slashing.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; + +// Query provides defines the gRPC querier service +service Query { + // Params queries the parameters of slashing module + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/params"; + } + + // SigningInfo queries the signing info of given cons address + rpc SigningInfo(QuerySigningInfoRequest) returns (QuerySigningInfoResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos/{cons_address}"; + } + + // SigningInfos queries signing info of all validators + rpc SigningInfos(QuerySigningInfosRequest) returns (QuerySigningInfosResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method +message QueryParamsResponse { + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC +// method +message QuerySigningInfoRequest { + // cons_address is the address to query signing info of + string cons_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC +// method +message QuerySigningInfoResponse { + // val_signing_info is the signing info of requested val cons address + ValidatorSigningInfo val_signing_info = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC +// method +message QuerySigningInfosRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC +// method +message QuerySigningInfosResponse { + // info is the signing info of all validators + repeated cosmos.slashing.v1beta1.ValidatorSigningInfo info = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/rust-vendored/cosmos/slashing/v1beta1/slashing.proto b/proto/rust-vendored/cosmos/slashing/v1beta1/slashing.proto new file mode 100644 index 0000000..11c3d78 --- /dev/null +++ b/proto/rust-vendored/cosmos/slashing/v1beta1/slashing.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// ValidatorSigningInfo defines a validator's signing info for monitoring their +// liveness activity. +message ValidatorSigningInfo { + option (gogoproto.equal) = true; + + string address = 1 [(cosmos_proto.scalar) = "cosmos.ConsensusAddressString"]; + // Height at which validator was first a candidate OR was un-jailed + int64 start_height = 2; + // Index which is incremented every time a validator is bonded in a block and + // _may_ have signed a pre-commit or not. This in conjunction with the + // signed_blocks_window param determines the index in the missed block bitmap. + int64 index_offset = 3; + // Timestamp until which the validator is jailed due to liveness downtime. + google.protobuf.Timestamp jailed_until = 4 [ + (gogoproto.stdtime) = true, + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // Whether or not a validator has been tombstoned (killed out of validator + // set). It is set once the validator commits an equivocation or for any other + // configured misbehavior. + bool tombstoned = 5; + // A counter of missed (unsigned) blocks. It is used to avoid unnecessary + // reads in the missed block bitmap. + int64 missed_blocks_counter = 6; +} + +// Params represents the parameters used for by the slashing module. +message Params { + option (amino.name) = "cosmos-sdk/x/slashing/Params"; + + int64 signed_blocks_window = 1; + bytes min_signed_per_window = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", + (amino.dont_omitempty) = true + ]; + google.protobuf.Duration downtime_jail_duration = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.stdduration) = true + ]; + bytes slash_fraction_double_sign = 4 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", + (amino.dont_omitempty) = true + ]; + bytes slash_fraction_downtime = 5 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", + (amino.dont_omitempty) = true + ]; +} diff --git a/proto/rust-vendored/cosmos/slashing/v1beta1/tx.proto b/proto/rust-vendored/cosmos/slashing/v1beta1/tx.proto new file mode 100644 index 0000000..2499b4f --- /dev/null +++ b/proto/rust-vendored/cosmos/slashing/v1beta1/tx.proto @@ -0,0 +1,67 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/slashing/v1beta1/slashing.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +// Msg defines the slashing Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Unjail defines a method for unjailing a jailed validator, thus returning + // them into the bonded validator set, so they can begin receiving provisions + // and rewards again. + rpc Unjail(MsgUnjail) returns (MsgUnjailResponse); + + // UpdateParams defines a governance operation for updating the x/slashing module + // parameters. The authority defaults to the x/gov module account. + // + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgUnjail defines the Msg/Unjail request type +message MsgUnjail { + option (cosmos.msg.v1.signer) = "validator_addr"; + option (amino.name) = "cosmos-sdk/MsgUnjail"; + + option (gogoproto.goproto_getters) = false; + + string validator_addr = 1 [ + (cosmos_proto.scalar) = "cosmos.ValidatorAddressString", + (gogoproto.jsontag) = "address", + (amino.field_name) = "address", + (amino.dont_omitempty) = true + ]; +} + +// MsgUnjailResponse defines the Msg/Unjail response type +message MsgUnjailResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/slashing/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // params defines the x/slashing parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/cosmos/staking/module/v1/module.proto b/proto/rust-vendored/cosmos/staking/module/v1/module.proto new file mode 100644 index 0000000..7ef4a06 --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/module/v1/module.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package cosmos.staking.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the staking module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/staking" + }; + + // hooks_order specifies the order of staking hooks and should be a list + // of module names which provide a staking hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + repeated string hooks_order = 1; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 2; +} diff --git a/proto/rust-vendored/cosmos/staking/v1beta1/authz.proto b/proto/rust-vendored/cosmos/staking/v1beta1/authz.proto new file mode 100644 index 0000000..409280c --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/v1beta1/authz.proto @@ -0,0 +1,51 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// StakeAuthorization defines authorization for delegate/undelegate/redelegate. +// +// Since: cosmos-sdk 0.43 +message StakeAuthorization { + option (cosmos_proto.implements_interface) = "cosmos.authz.v1beta1.Authorization"; + option (amino.name) = "cosmos-sdk/StakeAuthorization"; + + // max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is + // empty, there is no spend limit and any amount of coins can be delegated. + cosmos.base.v1beta1.Coin max_tokens = 1 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; + // validators is the oneof that represents either allow_list or deny_list + oneof validators { + // allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's + // account. + Validators allow_list = 2 [(amino.oneof_name) = "cosmos-sdk/StakeAuthorization/AllowList"]; + // deny_list specifies list of validator addresses to whom grantee can not delegate tokens. + Validators deny_list = 3 [(amino.oneof_name) = "cosmos-sdk/StakeAuthorization/DenyList"]; + } + // Validators defines list of validator addresses. + message Validators { + repeated string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + } + // authorization_type defines one of AuthorizationType. + AuthorizationType authorization_type = 4; +} + +// AuthorizationType defines the type of staking module authorization type +// +// Since: cosmos-sdk 0.43 +enum AuthorizationType { + // AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type + AUTHORIZATION_TYPE_UNSPECIFIED = 0; + // AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate + AUTHORIZATION_TYPE_DELEGATE = 1; + // AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate + AUTHORIZATION_TYPE_UNDELEGATE = 2; + // AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate + AUTHORIZATION_TYPE_REDELEGATE = 3; + // AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION defines an authorization type for Msg/MsgCancelUnbondingDelegation + AUTHORIZATION_TYPE_CANCEL_UNBONDING_DELEGATION = 4; +} diff --git a/proto/rust-vendored/cosmos/staking/v1beta1/genesis.proto b/proto/rust-vendored/cosmos/staking/v1beta1/genesis.proto new file mode 100644 index 0000000..8b278ff --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/v1beta1/genesis.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/staking/v1beta1/staking.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +// GenesisState defines the staking module's genesis state. +message GenesisState { + // params defines all the parameters of related to deposit. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // last_total_power tracks the total amounts of bonded tokens recorded during + // the previous end block. + bytes last_total_power = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + + // last_validator_powers is a special index that provides a historical list + // of the last-block's bonded validators. + repeated LastValidatorPower last_validator_powers = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // validators defines the validator set at genesis. + repeated Validator validators = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // delegations defines the delegations active at genesis. + repeated Delegation delegations = 5 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // unbonding_delegations defines the unbonding delegations active at genesis. + repeated UnbondingDelegation unbonding_delegations = 6 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // redelegations defines the redelegations active at genesis. + repeated Redelegation redelegations = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + bool exported = 8; +} + +// LastValidatorPower required for validator set update logic. +message LastValidatorPower { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address of the validator. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // power defines the power of the validator. + int64 power = 2; +} diff --git a/proto/rust-vendored/cosmos/staking/v1beta1/query.proto b/proto/rust-vendored/cosmos/staking/v1beta1/query.proto new file mode 100644 index 0000000..06eb555 --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/v1beta1/query.proto @@ -0,0 +1,387 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/staking/v1beta1/staking.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/query/v1/query.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// Query defines the gRPC querier service. +service Query { + // Validators queries all validators that match the given status. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators"; + } + + // Validator queries validator info for given validator address. + rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}"; + } + + // ValidatorDelegations queries delegate info for given validator. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc ValidatorDelegations(QueryValidatorDelegationsRequest) returns (QueryValidatorDelegationsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations"; + } + + // ValidatorUnbondingDelegations queries unbonding delegations of a validator. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc ValidatorUnbondingDelegations(QueryValidatorUnbondingDelegationsRequest) + returns (QueryValidatorUnbondingDelegationsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/" + "{validator_addr}/unbonding_delegations"; + } + + // Delegation queries delegate info for given validator delegator pair. + rpc Delegation(QueryDelegationRequest) returns (QueryDelegationResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" + "{delegator_addr}"; + } + + // UnbondingDelegation queries unbonding info for given validator delegator + // pair. + rpc UnbondingDelegation(QueryUnbondingDelegationRequest) returns (QueryUnbondingDelegationResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" + "{delegator_addr}/unbonding_delegation"; + } + + // DelegatorDelegations queries all delegations of a given delegator address. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc DelegatorDelegations(QueryDelegatorDelegationsRequest) returns (QueryDelegatorDelegationsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/delegations/{delegator_addr}"; + } + + // DelegatorUnbondingDelegations queries all unbonding delegations of a given + // delegator address. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc DelegatorUnbondingDelegations(QueryDelegatorUnbondingDelegationsRequest) + returns (QueryDelegatorUnbondingDelegationsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/" + "{delegator_addr}/unbonding_delegations"; + } + + // Redelegations queries redelegations of given address. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc Redelegations(QueryRedelegationsRequest) returns (QueryRedelegationsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations"; + } + + // DelegatorValidators queries all validators info for given delegator + // address. + // + // When called from another module, this query might consume a high amount of + // gas if the pagination field is incorrectly set. + rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators"; + } + + // DelegatorValidator queries validator info for given delegator validator + // pair. + rpc DelegatorValidator(QueryDelegatorValidatorRequest) returns (QueryDelegatorValidatorResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/" + "{validator_addr}"; + } + + // HistoricalInfo queries the historical info for given height. + rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}"; + } + + // Pool queries the pool info. + rpc Pool(QueryPoolRequest) returns (QueryPoolResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/pool"; + } + + // Parameters queries the staking parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (cosmos.query.v1.module_query_safe) = true; + option (google.api.http).get = "/cosmos/staking/v1beta1/params"; + } +} + +// QueryValidatorsRequest is request type for Query/Validators RPC method. +message QueryValidatorsRequest { + // status enables to query for validators matching a given status. + string status = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorsResponse is response type for the Query/Validators RPC method +message QueryValidatorsResponse { + // validators contains all the queried validators. + repeated Validator validators = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryValidatorRequest is response type for the Query/Validator RPC method +message QueryValidatorRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryValidatorResponse is response type for the Query/Validator RPC method +message QueryValidatorResponse { + // validator defines the validator info. + Validator validator = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryValidatorDelegationsRequest is request type for the +// Query/ValidatorDelegations RPC method +message QueryValidatorDelegationsRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorDelegationsResponse is response type for the +// Query/ValidatorDelegations RPC method +message QueryValidatorDelegationsResponse { + repeated DelegationResponse delegation_responses = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "DelegationResponses"]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryValidatorUnbondingDelegationsRequest is required type for the +// Query/ValidatorUnbondingDelegations RPC method +message QueryValidatorUnbondingDelegationsRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorUnbondingDelegationsResponse is response type for the +// Query/ValidatorUnbondingDelegations RPC method. +message QueryValidatorUnbondingDelegationsResponse { + repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegationRequest is request type for the Query/Delegation RPC method. +message QueryDelegationRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // validator_addr defines the validator address to query for. + string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegationResponse is response type for the Query/Delegation RPC method. +message QueryDelegationResponse { + // delegation_responses defines the delegation info of a delegation. + DelegationResponse delegation_response = 1; +} + +// QueryUnbondingDelegationRequest is request type for the +// Query/UnbondingDelegation RPC method. +message QueryUnbondingDelegationRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // validator_addr defines the validator address to query for. + string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegationResponse is response type for the Query/UnbondingDelegation +// RPC method. +message QueryUnbondingDelegationResponse { + // unbond defines the unbonding information of a delegation. + UnbondingDelegation unbond = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryDelegatorDelegationsRequest is request type for the +// Query/DelegatorDelegations RPC method. +message QueryDelegatorDelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDelegatorDelegationsResponse is response type for the +// Query/DelegatorDelegations RPC method. +message QueryDelegatorDelegationsResponse { + // delegation_responses defines all the delegations' info of a delegator. + repeated DelegationResponse delegation_responses = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorUnbondingDelegationsRequest is request type for the +// Query/DelegatorUnbondingDelegations RPC method. +message QueryDelegatorUnbondingDelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryUnbondingDelegatorDelegationsResponse is response type for the +// Query/UnbondingDelegatorDelegations RPC method. +message QueryDelegatorUnbondingDelegationsResponse { + repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryRedelegationsRequest is request type for the Query/Redelegations RPC +// method. +message QueryRedelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // src_validator_addr defines the validator address to redelegate from. + string src_validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // dst_validator_addr defines the validator address to redelegate to. + string dst_validator_addr = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryRedelegationsResponse is response type for the Query/Redelegations RPC +// method. +message QueryRedelegationsResponse { + repeated RedelegationResponse redelegation_responses = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorValidatorsRequest is request type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDelegatorValidatorsResponse is response type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsResponse { + // validators defines the validators' info of a delegator. + repeated Validator validators = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorValidatorRequest is request type for the +// Query/DelegatorValidator RPC method. +message QueryDelegatorValidatorRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // validator_addr defines the validator address to query for. + string validator_addr = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// QueryDelegatorValidatorResponse response type for the +// Query/DelegatorValidator RPC method. +message QueryDelegatorValidatorResponse { + // validator defines the validator info. + Validator validator = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC +// method. +message QueryHistoricalInfoRequest { + // height defines at which height to query the historical info. + int64 height = 1; +} + +// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC +// method. +message QueryHistoricalInfoResponse { + // hist defines the historical info at the given height. + HistoricalInfo hist = 1; +} + +// QueryPoolRequest is request type for the Query/Pool RPC method. +message QueryPoolRequest {} + +// QueryPoolResponse is response type for the Query/Pool RPC method. +message QueryPoolResponse { + // pool defines the pool info. + Pool pool = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// QueryParamsRequest is request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is response type for the Query/Params RPC method. +message QueryParamsResponse { + // params holds all the parameters of this module. + Params params = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/staking/v1beta1/staking.proto b/proto/rust-vendored/cosmos/staking/v1beta1/staking.proto new file mode 100644 index 0000000..231a200 --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/v1beta1/staking.proto @@ -0,0 +1,394 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; +import "tendermint/types/types.proto"; +import "tendermint/abci/types.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// HistoricalInfo contains header and validator information for a given block. +// It is stored as part of staking module's state, which persists the `n` most +// recent HistoricalInfo +// (`n` is set by the staking module's `historical_entries` parameter). +message HistoricalInfo { + tendermint.types.Header header = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated Validator valset = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// CommissionRates defines the initial commission rates to be used for creating +// a validator. +message CommissionRates { + option (gogoproto.equal) = true; + + // rate is the commission rate charged to delegators, as a fraction. + string rate = 1 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // max_rate defines the maximum commission rate which validator can ever charge, as a fraction. + string max_rate = 2 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // max_change_rate defines the maximum daily increase of the validator commission, as a fraction. + string max_change_rate = 3 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// Commission defines commission parameters for a given validator. +message Commission { + option (gogoproto.equal) = true; + + // commission_rates defines the initial commission rates to be used for creating a validator. + CommissionRates commission_rates = 1 + [(gogoproto.embed) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // update_time is the last time the commission rate was changed. + google.protobuf.Timestamp update_time = 2 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} + +// Description defines a validator description. +message Description { + option (gogoproto.equal) = true; + + // moniker defines a human-readable name for the validator. + string moniker = 1; + // identity defines an optional identity signature (ex. UPort or Keybase). + string identity = 2; + // website defines an optional website link. + string website = 3; + // security_contact defines an optional email for security contact. + string security_contact = 4; + // details define other optional details. + string details = 5; +} + +// Validator defines a validator, together with the total amount of the +// Validator's bond shares and their exchange rate to coins. Slashing results in +// a decrease in the exchange rate, allowing correct calculation of future +// undelegations without iterating over delegators. When coins are delegated to +// this validator, the validator is credited with a delegation whose number of +// bond shares is based on the amount of coins delegated divided by the current +// exchange rate. Voting power can be calculated as total bonded shares +// multiplied by exchange rate. +message Validator { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + string operator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. + google.protobuf.Any consensus_pubkey = 2 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + // jailed defined whether the validator has been jailed from bonded status or not. + bool jailed = 3; + // status is the validator status (bonded/unbonding/unbonded). + BondStatus status = 4; + // tokens define the delegated tokens (incl. self-delegation). + string tokens = 5 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + // delegator_shares defines total shares issued to a validator's delegators. + string delegator_shares = 6 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // description defines the description terms for the validator. + Description description = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. + int64 unbonding_height = 8; + // unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. + google.protobuf.Timestamp unbonding_time = 9 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + // commission defines the commission parameters. + Commission commission = 10 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // min_self_delegation is the validator's self declared minimum self delegation. + // + // Since: cosmos-sdk 0.46 + string min_self_delegation = 11 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + + // strictly positive if this validator's unbonding has been stopped by external modules + int64 unbonding_on_hold_ref_count = 12; + + // list of unbonding ids, each uniquely identifing an unbonding of this validator + repeated uint64 unbonding_ids = 13; +} + +// BondStatus is the status of a validator. +enum BondStatus { + option (gogoproto.goproto_enum_prefix) = false; + + // UNSPECIFIED defines an invalid validator status. + BOND_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unspecified"]; + // UNBONDED defines a validator that is not bonded. + BOND_STATUS_UNBONDED = 1 [(gogoproto.enumvalue_customname) = "Unbonded"]; + // UNBONDING defines a validator that is unbonding. + BOND_STATUS_UNBONDING = 2 [(gogoproto.enumvalue_customname) = "Unbonding"]; + // BONDED defines a validator that is bonded. + BOND_STATUS_BONDED = 3 [(gogoproto.enumvalue_customname) = "Bonded"]; +} + +// ValAddresses defines a repeated set of validator addresses. +message ValAddresses { + repeated string addresses = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// DVPair is struct that just has a delegator-validator pair with no other data. +// It is intended to be used as a marshalable pointer. For example, a DVPair can +// be used to construct the key to getting an UnbondingDelegation from state. +message DVPair { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// DVPairs defines an array of DVPair objects. +message DVPairs { + repeated DVPair pairs = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// DVVTriplet is struct that just has a delegator-validator-validator triplet +// with no other data. It is intended to be used as a marshalable pointer. For +// example, a DVVTriplet can be used to construct the key to getting a +// Redelegation from state. +message DVVTriplet { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// DVVTriplets defines an array of DVVTriplet objects. +message DVVTriplets { + repeated DVVTriplet triplets = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// Delegation represents the bond with tokens held by an account. It is +// owned by one delegator, and is associated with the voting power of one +// validator. +message Delegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // validator_address is the bech32-encoded address of the validator. + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // shares define the delegation shares received. + string shares = 3 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +// UnbondingDelegation stores all of a single delegator's unbonding bonds +// for a single validator in an time-ordered list. +message UnbondingDelegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // validator_address is the bech32-encoded address of the validator. + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // entries are the unbonding delegation entries. + repeated UnbondingDelegationEntry entries = 3 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // unbonding delegation entries +} + +// UnbondingDelegationEntry defines an unbonding object with relevant metadata. +message UnbondingDelegationEntry { + option (gogoproto.equal) = true; + + // creation_height is the height which the unbonding took place. + int64 creation_height = 1; + // completion_time is the unix time for unbonding completion. + google.protobuf.Timestamp completion_time = 2 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + // initial_balance defines the tokens initially scheduled to receive at completion. + string initial_balance = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + // balance defines the tokens to receive at completion. + string balance = 4 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + // Incrementing id that uniquely identifies this entry + uint64 unbonding_id = 5; + + // Strictly positive if this entry's unbonding has been stopped by external modules + int64 unbonding_on_hold_ref_count = 6; +} + +// RedelegationEntry defines a redelegation object with relevant metadata. +message RedelegationEntry { + option (gogoproto.equal) = true; + + // creation_height defines the height which the redelegation took place. + int64 creation_height = 1; + // completion_time defines the unix time for redelegation completion. + google.protobuf.Timestamp completion_time = 2 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + // initial_balance defines the initial balance when redelegation started. + string initial_balance = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; + // shares_dst is the amount of destination-validator shares created by redelegation. + string shares_dst = 4 [ + (cosmos_proto.scalar) = "cosmos.Dec", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // Incrementing id that uniquely identifies this entry + uint64 unbonding_id = 5; + + // Strictly positive if this entry's unbonding has been stopped by external modules + int64 unbonding_on_hold_ref_count = 6; +} + +// Redelegation contains the list of a particular delegator's redelegating bonds +// from a particular source validator to a particular destination validator. +message Redelegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // validator_src_address is the validator redelegation source operator address. + string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // validator_dst_address is the validator redelegation destination operator address. + string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // entries are the redelegation entries. + repeated RedelegationEntry entries = 4 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; // redelegation entries +} + +// Params defines the parameters for the x/staking module. +message Params { + option (amino.name) = "cosmos-sdk/x/staking/Params"; + option (gogoproto.equal) = true; + + // unbonding_time is the time duration of unbonding. + google.protobuf.Duration unbonding_time = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdduration) = true]; + // max_validators is the maximum number of validators. + uint32 max_validators = 2; + // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). + uint32 max_entries = 3; + // historical_entries is the number of historical entries to persist. + uint32 historical_entries = 4; + // bond_denom defines the bondable coin denomination. + string bond_denom = 5; + // min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators + string min_commission_rate = 6 [ + (gogoproto.moretags) = "yaml:\"min_commission_rate\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Dec" + ]; +} + +// DelegationResponse is equivalent to Delegation except that it contains a +// balance in addition to shares which is more suitable for client responses. +message DelegationResponse { + option (gogoproto.equal) = false; + + Delegation delegation = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it +// contains a balance in addition to shares which is more suitable for client +// responses. +message RedelegationEntryResponse { + option (gogoproto.equal) = true; + + RedelegationEntry redelegation_entry = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + string balance = 4 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; +} + +// RedelegationResponse is equivalent to a Redelegation except that its entries +// contain a balance in addition to shares which is more suitable for client +// responses. +message RedelegationResponse { + option (gogoproto.equal) = false; + + Redelegation redelegation = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + repeated RedelegationEntryResponse entries = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// Pool is used for tracking bonded and not-bonded token supply of the bond +// denomination. +message Pool { + option (gogoproto.description) = true; + option (gogoproto.equal) = true; + string not_bonded_tokens = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "not_bonded_tokens", + (amino.dont_omitempty) = true + ]; + string bonded_tokens = 2 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "bonded_tokens", + (amino.dont_omitempty) = true + ]; +} + +// Infraction indicates the infraction a validator commited. +enum Infraction { + // UNSPECIFIED defines an empty infraction. + INFRACTION_UNSPECIFIED = 0; + // DOUBLE_SIGN defines a validator that double-signs a block. + INFRACTION_DOUBLE_SIGN = 1; + // DOWNTIME defines a validator that missed signing too many blocks. + INFRACTION_DOWNTIME = 2; +} + +// ValidatorUpdates defines an array of abci.ValidatorUpdate objects. +// TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence +message ValidatorUpdates { + repeated tendermint.abci.ValidatorUpdate updates = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} diff --git a/proto/rust-vendored/cosmos/staking/v1beta1/tx.proto b/proto/rust-vendored/cosmos/staking/v1beta1/tx.proto new file mode 100644 index 0000000..55e1655 --- /dev/null +++ b/proto/rust-vendored/cosmos/staking/v1beta1/tx.proto @@ -0,0 +1,206 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/staking/v1beta1/staking.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// Msg defines the staking Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // CreateValidator defines a method for creating a new validator. + rpc CreateValidator(MsgCreateValidator) returns (MsgCreateValidatorResponse); + + // EditValidator defines a method for editing an existing validator. + rpc EditValidator(MsgEditValidator) returns (MsgEditValidatorResponse); + + // Delegate defines a method for performing a delegation of coins + // from a delegator to a validator. + rpc Delegate(MsgDelegate) returns (MsgDelegateResponse); + + // BeginRedelegate defines a method for performing a redelegation + // of coins from a delegator and source validator to a destination validator. + rpc BeginRedelegate(MsgBeginRedelegate) returns (MsgBeginRedelegateResponse); + + // Undelegate defines a method for performing an undelegation from a + // delegate and a validator. + rpc Undelegate(MsgUndelegate) returns (MsgUndelegateResponse); + + // CancelUnbondingDelegation defines a method for performing canceling the unbonding delegation + // and delegate back to previous validator. + // + // Since: cosmos-sdk 0.46 + rpc CancelUnbondingDelegation(MsgCancelUnbondingDelegation) returns (MsgCancelUnbondingDelegationResponse); + + // UpdateParams defines an operation for updating the x/staking module + // parameters. + // Since: cosmos-sdk 0.47 + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgCreateValidator defines a SDK message for creating a new validator. +message MsgCreateValidator { + option (cosmos.msg.v1.signer) = "validator_address"; + option (amino.name) = "cosmos-sdk/MsgCreateValidator"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Description description = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + CommissionRates commission = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + string min_self_delegation = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; + // Deprecated: Use of Delegator Address in MsgCreateValidator is deprecated. + // The validator address bytes and delegator address bytes refer to the same account while creating validator (defer + // only in bech32 notation). + string delegator_address = 4 [(cosmos_proto.scalar) = "cosmos.AddressString", deprecated = true]; + string validator_address = 5 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgCreateValidatorResponse defines the Msg/CreateValidator response type. +message MsgCreateValidatorResponse {} + +// MsgEditValidator defines a SDK message for editing an existing validator. +message MsgEditValidator { + option (cosmos.msg.v1.signer) = "validator_address"; + option (amino.name) = "cosmos-sdk/MsgEditValidator"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Description description = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + + // We pass a reference to the new commission rate and min self delegation as + // it's not mandatory to update. If not updated, the deserialized rate will be + // zero with no way to distinguish if an update was intended. + // REF: #2373 + string commission_rate = 3 + [(cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec"]; + string min_self_delegation = 4 + [(cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int"]; +} + +// MsgEditValidatorResponse defines the Msg/EditValidator response type. +message MsgEditValidatorResponse {} + +// MsgDelegate defines a SDK message for performing a delegation of coins +// from a delegator to a validator. +message MsgDelegate { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgDelegate"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgDelegateResponse defines the Msg/Delegate response type. +message MsgDelegateResponse {} + +// MsgBeginRedelegate defines a SDK message for performing a redelegation +// of coins from a delegator and source validator to a destination validator. +message MsgBeginRedelegate { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgBeginRedelegate"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_src_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + string validator_dst_address = 3 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. +message MsgBeginRedelegateResponse { + google.protobuf.Timestamp completion_time = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; +} + +// MsgUndelegate defines a SDK message for performing an undelegation from a +// delegate and a validator. +message MsgUndelegate { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgUndelegate"; + + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgUndelegateResponse defines the Msg/Undelegate response type. +message MsgUndelegateResponse { + google.protobuf.Timestamp completion_time = 1 + [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; + + // amount returns the amount of undelegated coins + // + // Since: cosmos-sdk 0.48 + cosmos.base.v1beta1.Coin amount = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgCancelUnbondingDelegation defines the SDK message for performing a cancel unbonding delegation for delegator +// +// Since: cosmos-sdk 0.46 +message MsgCancelUnbondingDelegation { + option (cosmos.msg.v1.signer) = "delegator_address"; + option (amino.name) = "cosmos-sdk/MsgCancelUnbondingDelegation"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.ValidatorAddressString"]; + // amount is always less than or equal to unbonding delegation entry balance + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + // creation_height is the height which the unbonding took place. + int64 creation_height = 4; +} + +// MsgCancelUnbondingDelegationResponse +// +// Since: cosmos-sdk 0.46 +message MsgCancelUnbondingDelegationResponse {} + +// MsgUpdateParams is the Msg/UpdateParams request type. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/staking/MsgUpdateParams"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // params defines the x/staking parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +}; + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +// +// Since: cosmos-sdk 0.47 +message MsgUpdateParamsResponse {}; diff --git a/proto/rust-vendored/cosmos/store/internal/kv/v1beta1/kv.proto b/proto/rust-vendored/cosmos/store/internal/kv/v1beta1/kv.proto new file mode 100644 index 0000000..4243444 --- /dev/null +++ b/proto/rust-vendored/cosmos/store/internal/kv/v1beta1/kv.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; +package cosmos.store.internal.kv.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "cosmossdk.io/store/internal/kv"; + +// This is duplicated from the base kv directory to avoid a circular dependency with the cosmos-sdk + +// Pairs defines a repeated slice of Pair objects. +message Pairs { + repeated Pair pairs = 1 [(gogoproto.nullable) = false]; +} + +// Pair defines a key/value bytes tuple. +message Pair { + bytes key = 1; + bytes value = 2; +} diff --git a/proto/rust-vendored/cosmos/store/snapshots/v1/snapshot.proto b/proto/rust-vendored/cosmos/store/snapshots/v1/snapshot.proto new file mode 100644 index 0000000..af49bda --- /dev/null +++ b/proto/rust-vendored/cosmos/store/snapshots/v1/snapshot.proto @@ -0,0 +1,67 @@ +syntax = "proto3"; +package cosmos.store.snapshots.v1; + +import "gogoproto/gogo.proto"; + +option go_package = "cosmossdk.io/store/snapshots/types"; + +// Snapshot contains Tendermint state sync snapshot info. +message Snapshot { + uint64 height = 1; + uint32 format = 2; + uint32 chunks = 3; + bytes hash = 4; + Metadata metadata = 5 [(gogoproto.nullable) = false]; +} + +// Metadata contains SDK-specific snapshot metadata. +message Metadata { + repeated bytes chunk_hashes = 1; // SHA-256 chunk hashes +} + +// SnapshotItem is an item contained in a rootmulti.Store snapshot. +// +// Since: cosmos-sdk 0.46 +message SnapshotItem { + // item is the specific type of snapshot item. + oneof item { + SnapshotStoreItem store = 1; + SnapshotIAVLItem iavl = 2 [(gogoproto.customname) = "IAVL"]; + SnapshotExtensionMeta extension = 3; + SnapshotExtensionPayload extension_payload = 4; + } +} + +// SnapshotStoreItem contains metadata about a snapshotted store. +// +// Since: cosmos-sdk 0.46 +message SnapshotStoreItem { + string name = 1; +} + +// SnapshotIAVLItem is an exported IAVL node. +// +// Since: cosmos-sdk 0.46 +message SnapshotIAVLItem { + bytes key = 1; + bytes value = 2; + // version is block height + int64 version = 3; + // height is depth of the tree. + int32 height = 4; +} + +// SnapshotExtensionMeta contains metadata about an external snapshotter. +// +// Since: cosmos-sdk 0.46 +message SnapshotExtensionMeta { + string name = 1; + uint32 format = 2; +} + +// SnapshotExtensionPayload contains payloads of an external snapshotter. +// +// Since: cosmos-sdk 0.46 +message SnapshotExtensionPayload { + bytes payload = 1; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/store/streaming/abci/grpc.proto b/proto/rust-vendored/cosmos/store/streaming/abci/grpc.proto new file mode 100644 index 0000000..8d8070c --- /dev/null +++ b/proto/rust-vendored/cosmos/store/streaming/abci/grpc.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; + +package cosmos.store.streaming.abci; + +import "tendermint/abci/types.proto"; +import "cosmos/store/v1beta1/listening.proto"; + +option go_package = "cosmossdk.io/store/streaming/abci"; + +// ListenBeginBlockRequest is the request type for the ListenBeginBlock RPC method +message ListenBeginBlockRequest { + tendermint.abci.RequestBeginBlock req = 1; + tendermint.abci.ResponseBeginBlock res = 2; +} + +// ListenBeginBlockResponse is the response type for the ListenBeginBlock RPC method +message ListenBeginBlockResponse {} + +// ListenEndBlockRequest is the request type for the ListenEndBlock RPC method +message ListenEndBlockRequest { + tendermint.abci.RequestEndBlock req = 1; + tendermint.abci.ResponseEndBlock res = 2; +} + +// ListenEndBlockResponse is the response type for the ListenEndBlock RPC method +message ListenEndBlockResponse {} + +// ListenDeliverTxRequest is the request type for the ListenDeliverTx RPC method +message ListenDeliverTxRequest { + // explicitly pass in block height as neither RequestDeliverTx or ResponseDeliverTx contain it + int64 block_height = 1; + tendermint.abci.RequestDeliverTx req = 2; + tendermint.abci.ResponseDeliverTx res = 3; +} + +// ListenDeliverTxResponse is the response type for the ListenDeliverTx RPC method +message ListenDeliverTxResponse {} + +// ListenCommitRequest is the request type for the ListenCommit RPC method +message ListenCommitRequest { + // explicitly pass in block height as ResponseCommit does not contain this info + int64 block_height = 1; + tendermint.abci.ResponseCommit res = 2; + repeated cosmos.store.v1beta1.StoreKVPair change_set = 3; +} + +// ListenCommitResponse is the response type for the ListenCommit RPC method +message ListenCommitResponse {} + +// ABCIListenerService is the service for the BaseApp ABCIListener interface +service ABCIListenerService { + // ListenBeginBlock is the corresponding endpoint for ABCIListener.ListenBeginBlock + rpc ListenBeginBlock(ListenBeginBlockRequest) returns (ListenBeginBlockResponse); + // ListenEndBlock is the corresponding endpoint for ABCIListener.ListenEndBlock + rpc ListenEndBlock(ListenEndBlockRequest) returns (ListenEndBlockResponse); + // ListenDeliverTx is the corresponding endpoint for ABCIListener.ListenDeliverTx + rpc ListenDeliverTx(ListenDeliverTxRequest) returns (ListenDeliverTxResponse); + // ListenCommit is the corresponding endpoint for ABCIListener.ListenCommit + rpc ListenCommit(ListenCommitRequest) returns (ListenCommitResponse); +} diff --git a/proto/rust-vendored/cosmos/store/v1beta1/commit_info.proto b/proto/rust-vendored/cosmos/store/v1beta1/commit_info.proto new file mode 100644 index 0000000..a931e3e --- /dev/null +++ b/proto/rust-vendored/cosmos/store/v1beta1/commit_info.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; +package cosmos.store.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "cosmossdk.io/store/types"; + +// CommitInfo defines commit information used by the multi-store when committing +// a version/height. +message CommitInfo { + int64 version = 1; + repeated StoreInfo store_infos = 2 [(gogoproto.nullable) = false]; + google.protobuf.Timestamp timestamp = 3 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +// StoreInfo defines store-specific commit information. It contains a reference +// between a store name and the commit ID. +message StoreInfo { + string name = 1; + CommitID commit_id = 2 [(gogoproto.nullable) = false]; +} + +// CommitID defines the commitment information when a specific store is +// committed. +message CommitID { + option (gogoproto.goproto_stringer) = false; + + int64 version = 1; + bytes hash = 2; +} diff --git a/proto/rust-vendored/cosmos/store/v1beta1/listening.proto b/proto/rust-vendored/cosmos/store/v1beta1/listening.proto new file mode 100644 index 0000000..4938757 --- /dev/null +++ b/proto/rust-vendored/cosmos/store/v1beta1/listening.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +package cosmos.store.v1beta1; + +import "tendermint/abci/types.proto"; + +option go_package = "cosmossdk.io/store/types"; + +// StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes) +// It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and +// Deletes +// +// Since: cosmos-sdk 0.43 +message StoreKVPair { + string store_key = 1; // the store key for the KVStore this pair originates from + bool delete = 2; // true indicates a delete operation, false indicates a set operation + bytes key = 3; + bytes value = 4; +} + +// BlockMetadata contains all the abci event data of a block +// the file streamer dump them into files together with the state changes. +message BlockMetadata { + // DeliverTx encapulate deliver tx request and response. + message DeliverTx { + tendermint.abci.RequestDeliverTx request = 1; + tendermint.abci.ResponseDeliverTx response = 2; + } + tendermint.abci.RequestBeginBlock request_begin_block = 1; + tendermint.abci.ResponseBeginBlock response_begin_block = 2; + repeated DeliverTx deliver_txs = 3; + tendermint.abci.RequestEndBlock request_end_block = 4; + tendermint.abci.ResponseEndBlock response_end_block = 5; + tendermint.abci.ResponseCommit response_commit = 6; +} diff --git a/proto/rust-vendored/cosmos/tx/config/v1/config.proto b/proto/rust-vendored/cosmos/tx/config/v1/config.proto new file mode 100644 index 0000000..15553a2 --- /dev/null +++ b/proto/rust-vendored/cosmos/tx/config/v1/config.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package cosmos.tx.config.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Config is the config object of the x/auth/tx package. +message Config { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/auth/tx" + }; + + // skip_ante_handler defines whether the ante handler registration should be skipped in case an app wants to override + // this functionality. + bool skip_ante_handler = 1; + + // skip_post_handler defines whether the post handler registration should be skipped in case an app wants to override + // this functionality. + bool skip_post_handler = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/tx/signing/v1beta1/signing.proto b/proto/rust-vendored/cosmos/tx/signing/v1beta1/signing.proto new file mode 100644 index 0000000..faad739 --- /dev/null +++ b/proto/rust-vendored/cosmos/tx/signing/v1beta1/signing.proto @@ -0,0 +1,108 @@ +syntax = "proto3"; +package cosmos.tx.signing.v1beta1; + +import "cosmos/crypto/multisig/v1beta1/multisig.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx/signing"; + +// SignMode represents a signing mode with its own security guarantees. +// +// This enum should be considered a registry of all known sign modes +// in the Cosmos ecosystem. Apps are not expected to support all known +// sign modes. Apps that would like to support custom sign modes are +// encouraged to open a small PR against this file to add a new case +// to this SignMode enum describing their sign mode so that different +// apps have a consistent version of this enum. +enum SignMode { + // SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + // rejected. + SIGN_MODE_UNSPECIFIED = 0; + + // SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + // verified with raw bytes from Tx. + SIGN_MODE_DIRECT = 1; + + // SIGN_MODE_TEXTUAL is a future signing mode that will verify some + // human-readable textual representation on top of the binary representation + // from SIGN_MODE_DIRECT. It is currently experimental, and should be used + // for testing purposes only, until Textual is fully released. Please follow + // the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970. + SIGN_MODE_TEXTUAL = 2; + + // SIGN_MODE_DIRECT_AUX specifies a signing mode which uses + // SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not + // require signers signing over other signers' `signer_info`. It also allows + // for adding Tips in transactions. + // + // Since: cosmos-sdk 0.46 + SIGN_MODE_DIRECT_AUX = 3; + + // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + // Amino JSON and will be removed in the future. + SIGN_MODE_LEGACY_AMINO_JSON = 127; + + // SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos + // SDK. Ref: https://eips.ethereum.org/EIPS/eip-191 + // + // Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant, + // but is not implemented on the SDK by default. To enable EIP-191, you need + // to pass a custom `TxConfig` that has an implementation of + // `SignModeHandler` for EIP-191. The SDK may decide to fully support + // EIP-191 in the future. + // + // Since: cosmos-sdk 0.45.2 + SIGN_MODE_EIP_191 = 191; +} + +// SignatureDescriptors wraps multiple SignatureDescriptor's. +message SignatureDescriptors { + // signatures are the signature descriptors + repeated SignatureDescriptor signatures = 1; +} + +// SignatureDescriptor is a convenience type which represents the full data for +// a signature including the public key of the signer, signing modes and the +// signature itself. It is primarily used for coordinating signatures between +// clients. +message SignatureDescriptor { + // public_key is the public key of the signer + google.protobuf.Any public_key = 1; + + Data data = 2; + + // sequence is the sequence of the account, which describes the + // number of committed transactions signed by a given address. It is used to prevent + // replay attacks. + uint64 sequence = 3; + + // Data represents signature data + message Data { + // sum is the oneof that specifies whether this represents single or multi-signature data + oneof sum { + // single represents a single signer + Single single = 1; + + // multi represents a multisig signer + Multi multi = 2; + } + + // Single is the signature data for a single signer + message Single { + // mode is the signing mode of the single signer + SignMode mode = 1; + + // signature is the raw signature bytes + bytes signature = 2; + } + + // Multi is the signature data for a multisig public key + message Multi { + // bitarray specifies which keys within the multisig are signing + cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; + + // signatures is the signatures of the multi-signature + repeated Data signatures = 2; + } + } +} diff --git a/proto/rust-vendored/cosmos/tx/v1beta1/service.proto b/proto/rust-vendored/cosmos/tx/v1beta1/service.proto new file mode 100644 index 0000000..798d1ad --- /dev/null +++ b/proto/rust-vendored/cosmos/tx/v1beta1/service.proto @@ -0,0 +1,293 @@ +syntax = "proto3"; +package cosmos.tx.v1beta1; + +import "google/api/annotations.proto"; +import "cosmos/base/abci/v1beta1/abci.proto"; +import "cosmos/tx/v1beta1/tx.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "tendermint/types/block.proto"; +import "tendermint/types/types.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; + +// Service defines a gRPC service for interacting with transactions. +service Service { + // Simulate simulates executing a transaction for estimating gas usage. + rpc Simulate(SimulateRequest) returns (SimulateResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/simulate" + body: "*" + }; + } + // GetTx fetches a tx by hash. + rpc GetTx(GetTxRequest) returns (GetTxResponse) { + option (google.api.http).get = "/cosmos/tx/v1beta1/txs/{hash}"; + } + // BroadcastTx broadcast transaction. + rpc BroadcastTx(BroadcastTxRequest) returns (BroadcastTxResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/txs" + body: "*" + }; + } + // GetTxsEvent fetches txs by event. + rpc GetTxsEvent(GetTxsEventRequest) returns (GetTxsEventResponse) { + option (google.api.http).get = "/cosmos/tx/v1beta1/txs"; + } + // GetBlockWithTxs fetches a block with decoded txs. + // + // Since: cosmos-sdk 0.45.2 + rpc GetBlockWithTxs(GetBlockWithTxsRequest) + returns (GetBlockWithTxsResponse) { + option (google.api.http).get = "/cosmos/tx/v1beta1/txs/block/{height}"; + } + // TxDecode decodes the transaction. + // + // Since: cosmos-sdk 0.47 + rpc TxDecode(TxDecodeRequest) returns (TxDecodeResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/decode" + body: "*" + }; + } + // TxEncode encodes the transaction. + // + // Since: cosmos-sdk 0.47 + rpc TxEncode(TxEncodeRequest) returns (TxEncodeResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/encode" + body: "*" + }; + } + // TxEncodeAmino encodes an Amino transaction from JSON to encoded bytes. + // + // Since: cosmos-sdk 0.47 + rpc TxEncodeAmino(TxEncodeAminoRequest) returns (TxEncodeAminoResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/encode/amino" + body: "*" + }; + } + // TxDecodeAmino decodes an Amino transaction from encoded bytes to JSON. + // + // Since: cosmos-sdk 0.47 + rpc TxDecodeAmino(TxDecodeAminoRequest) returns (TxDecodeAminoResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/decode/amino" + body: "*" + }; + } +} + +// GetTxsEventRequest is the request type for the Service.TxsByEvents +// RPC method. +message GetTxsEventRequest { + // events is the list of transaction event type. + // Deprecated post v0.47.x: use query instead, which should contain a valid + // events query. + repeated string events = 1 [deprecated = true]; + + // pagination defines a pagination for the request. + // Deprecated post v0.46.x: use page and limit instead. + cosmos.base.query.v1beta1.PageRequest pagination = 2 [deprecated = true]; + + OrderBy order_by = 3; + + // page is the page number to query, starts at 1. If not provided, will + // default to first page. + uint64 page = 4; + + // limit is the total number of results to be returned in the result page. + // If left empty it will default to a value to be set by each app. + uint64 limit = 5; + + // query defines the transaction event query that is proxied to Tendermint's + // TxSearch RPC method. The query must be valid. + // + // Since Cosmos SDK 0.48 + string query = 6; +} + +// OrderBy defines the sorting order +enum OrderBy { + // ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults + // to ASC in this case. + ORDER_BY_UNSPECIFIED = 0; + // ORDER_BY_ASC defines ascending order + ORDER_BY_ASC = 1; + // ORDER_BY_DESC defines descending order + ORDER_BY_DESC = 2; +} + +// GetTxsEventResponse is the response type for the Service.TxsByEvents +// RPC method. +message GetTxsEventResponse { + // txs is the list of queried transactions. + repeated cosmos.tx.v1beta1.Tx txs = 1; + // tx_responses is the list of queried TxResponses. + repeated cosmos.base.abci.v1beta1.TxResponse tx_responses = 2; + // pagination defines a pagination for the response. + // Deprecated post v0.46.x: use total instead. + cosmos.base.query.v1beta1.PageResponse pagination = 3 [deprecated = true]; + // total is total number of results available + uint64 total = 4; +} + +// BroadcastTxRequest is the request type for the Service.BroadcastTxRequest +// RPC method. +message BroadcastTxRequest { + // tx_bytes is the raw transaction. + bytes tx_bytes = 1; + BroadcastMode mode = 2; +} + +// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC +// method. +enum BroadcastMode { + // zero-value for mode ordering + BROADCAST_MODE_UNSPECIFIED = 0; + // DEPRECATED: use BROADCAST_MODE_SYNC instead, + // BROADCAST_MODE_BLOCK is not supported by the SDK from v0.47.x onwards. + BROADCAST_MODE_BLOCK = 1 [deprecated = true]; + // BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits + // for a CheckTx execution response only. + BROADCAST_MODE_SYNC = 2; + // BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client + // returns immediately. + BROADCAST_MODE_ASYNC = 3; +} + +// BroadcastTxResponse is the response type for the +// Service.BroadcastTx method. +message BroadcastTxResponse { + // tx_response is the queried TxResponses. + cosmos.base.abci.v1beta1.TxResponse tx_response = 1; +} + +// SimulateRequest is the request type for the Service.Simulate +// RPC method. +message SimulateRequest { + // tx is the transaction to simulate. + // Deprecated. Send raw tx bytes instead. + cosmos.tx.v1beta1.Tx tx = 1 [deprecated = true]; + // tx_bytes is the raw transaction. + // + // Since: cosmos-sdk 0.43 + bytes tx_bytes = 2; +} + +// SimulateResponse is the response type for the +// Service.SimulateRPC method. +message SimulateResponse { + // gas_info is the information about gas used in the simulation. + cosmos.base.abci.v1beta1.GasInfo gas_info = 1; + // result is the result of the simulation. + cosmos.base.abci.v1beta1.Result result = 2; +} + +// GetTxRequest is the request type for the Service.GetTx +// RPC method. +message GetTxRequest { + // hash is the tx hash to query, encoded as a hex string. + string hash = 1; +} + +// GetTxResponse is the response type for the Service.GetTx method. +message GetTxResponse { + // tx is the queried transaction. + cosmos.tx.v1beta1.Tx tx = 1; + // tx_response is the queried TxResponses. + cosmos.base.abci.v1beta1.TxResponse tx_response = 2; +} + +// GetBlockWithTxsRequest is the request type for the Service.GetBlockWithTxs +// RPC method. +// +// Since: cosmos-sdk 0.45.2 +message GetBlockWithTxsRequest { + // height is the height of the block to query. + int64 height = 1; + // pagination defines a pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// GetBlockWithTxsResponse is the response type for the Service.GetBlockWithTxs +// method. +// +// Since: cosmos-sdk 0.45.2 +message GetBlockWithTxsResponse { + // txs are the transactions in the block. + repeated cosmos.tx.v1beta1.Tx txs = 1; + .tendermint.types.BlockID block_id = 2; + .tendermint.types.Block block = 3; + // pagination defines a pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 4; +} + +// TxDecodeRequest is the request type for the Service.TxDecode +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxDecodeRequest { + // tx_bytes is the raw transaction. + bytes tx_bytes = 1; +} + +// TxDecodeResponse is the response type for the +// Service.TxDecode method. +// +// Since: cosmos-sdk 0.47 +message TxDecodeResponse { + // tx is the decoded transaction. + cosmos.tx.v1beta1.Tx tx = 1; +} + +// TxEncodeRequest is the request type for the Service.TxEncode +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxEncodeRequest { + // tx is the transaction to encode. + cosmos.tx.v1beta1.Tx tx = 1; +} + +// TxEncodeResponse is the response type for the +// Service.TxEncode method. +// +// Since: cosmos-sdk 0.47 +message TxEncodeResponse { + // tx_bytes is the encoded transaction bytes. + bytes tx_bytes = 1; +} + +// TxEncodeAminoRequest is the request type for the Service.TxEncodeAmino +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxEncodeAminoRequest { + string amino_json = 1; +} + +// TxEncodeAminoResponse is the response type for the Service.TxEncodeAmino +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxEncodeAminoResponse { + bytes amino_binary = 1; +} + +// TxDecodeAminoRequest is the request type for the Service.TxDecodeAmino +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxDecodeAminoRequest { + bytes amino_binary = 1; +} + +// TxDecodeAminoResponse is the response type for the Service.TxDecodeAmino +// RPC method. +// +// Since: cosmos-sdk 0.47 +message TxDecodeAminoResponse { + string amino_json = 1; +} diff --git a/proto/rust-vendored/cosmos/tx/v1beta1/tx.proto b/proto/rust-vendored/cosmos/tx/v1beta1/tx.proto new file mode 100644 index 0000000..a71a3e1 --- /dev/null +++ b/proto/rust-vendored/cosmos/tx/v1beta1/tx.proto @@ -0,0 +1,256 @@ +syntax = "proto3"; +package cosmos.tx.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/crypto/multisig/v1beta1/multisig.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/tx/signing/v1beta1/signing.proto"; +import "google/protobuf/any.proto"; +import "cosmos_proto/cosmos.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; + +// Tx is the standard type used for broadcasting transactions. +message Tx { + // body is the processable content of the transaction + TxBody body = 1; + + // auth_info is the authorization related content of the transaction, + // specifically signers, signer modes and fee + AuthInfo auth_info = 2; + + // signatures is a list of signatures that matches the length and order of + // AuthInfo's signer_infos to allow connecting signature meta information like + // public key and signing mode by position. + repeated bytes signatures = 3; +} + +// TxRaw is a variant of Tx that pins the signer's exact binary representation +// of body and auth_info. This is used for signing, broadcasting and +// verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and +// the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used +// as the transaction ID. +message TxRaw { + // body_bytes is a protobuf serialization of a TxBody that matches the + // representation in SignDoc. + bytes body_bytes = 1; + + // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + // representation in SignDoc. + bytes auth_info_bytes = 2; + + // signatures is a list of signatures that matches the length and order of + // AuthInfo's signer_infos to allow connecting signature meta information like + // public key and signing mode by position. + repeated bytes signatures = 3; +} + +// SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. +message SignDoc { + // body_bytes is protobuf serialization of a TxBody that matches the + // representation in TxRaw. + bytes body_bytes = 1; + + // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + // representation in TxRaw. + bytes auth_info_bytes = 2; + + // chain_id is the unique identifier of the chain this transaction targets. + // It prevents signed transactions from being used on another chain by an + // attacker + string chain_id = 3; + + // account_number is the account number of the account in state + uint64 account_number = 4; +} + +// SignDocDirectAux is the type used for generating sign bytes for +// SIGN_MODE_DIRECT_AUX. +// +// Since: cosmos-sdk 0.46 +message SignDocDirectAux { + // body_bytes is protobuf serialization of a TxBody that matches the + // representation in TxRaw. + bytes body_bytes = 1; + + // public_key is the public key of the signing account. + google.protobuf.Any public_key = 2; + + // chain_id is the identifier of the chain this transaction targets. + // It prevents signed transactions from being used on another chain by an + // attacker. + string chain_id = 3; + + // account_number is the account number of the account in state. + uint64 account_number = 4; + + // sequence is the sequence number of the signing account. + uint64 sequence = 5; + + // Tip is the optional tip used for transactions fees paid in another denom. + // It should be left empty if the signer is not the tipper for this + // transaction. + // + // This field is ignored if the chain didn't enable tips, i.e. didn't add the + // `TipDecorator` in its posthandler. + Tip tip = 6; +} + +// TxBody is the body of a transaction that all signers sign over. +message TxBody { + // messages is a list of messages to be executed. The required signers of + // those messages define the number and order of elements in AuthInfo's + // signer_infos and Tx's signatures. Each required signer address is added to + // the list only the first time it occurs. + // By convention, the first required signer (usually from the first message) + // is referred to as the primary signer and pays the fee for the whole + // transaction. + repeated google.protobuf.Any messages = 1; + + // memo is any arbitrary note/comment to be added to the transaction. + // WARNING: in clients, any publicly exposed text should not be called memo, + // but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122). + string memo = 2; + + // timeout is the block height after which this transaction will not + // be processed by the chain + uint64 timeout_height = 3; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, the transaction will be rejected + repeated google.protobuf.Any extension_options = 1023; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, they will be ignored + repeated google.protobuf.Any non_critical_extension_options = 2047; +} + +// AuthInfo describes the fee and signer modes that are used to sign a +// transaction. +message AuthInfo { + // signer_infos defines the signing modes for the required signers. The number + // and order of elements must match the required signers from TxBody's + // messages. The first element is the primary signer and the one which pays + // the fee. + repeated SignerInfo signer_infos = 1; + + // Fee is the fee and gas limit for the transaction. The first signer is the + // primary signer and the one which pays the fee. The fee can be calculated + // based on the cost of evaluating the body and doing signature verification + // of the signers. This can be estimated via simulation. + Fee fee = 2; + + // Tip is the optional tip used for transactions fees paid in another denom. + // + // This field is ignored if the chain didn't enable tips, i.e. didn't add the + // `TipDecorator` in its posthandler. + // + // Since: cosmos-sdk 0.46 + Tip tip = 3; +} + +// SignerInfo describes the public key and signing mode of a single top-level +// signer. +message SignerInfo { + // public_key is the public key of the signer. It is optional for accounts + // that already exist in state. If unset, the verifier can use the required \ + // signer address for this position and lookup the public key. + google.protobuf.Any public_key = 1; + + // mode_info describes the signing mode of the signer and is a nested + // structure to support nested multisig pubkey's + ModeInfo mode_info = 2; + + // sequence is the sequence of the account, which describes the + // number of committed transactions signed by a given address. It is used to + // prevent replay attacks. + uint64 sequence = 3; +} + +// ModeInfo describes the signing mode of a single or nested multisig signer. +message ModeInfo { + // sum is the oneof that specifies whether this represents a single or nested + // multisig signer + oneof sum { + // single represents a single signer + Single single = 1; + + // multi represents a nested multisig signer + Multi multi = 2; + } + + // Single is the mode info for a single signer. It is structured as a message + // to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the + // future + message Single { + // mode is the signing mode of the single signer + cosmos.tx.signing.v1beta1.SignMode mode = 1; + } + + // Multi is the mode info for a multisig public key + message Multi { + // bitarray specifies which keys within the multisig are signing + cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; + + // mode_infos is the corresponding modes of the signers of the multisig + // which could include nested multisig public keys + repeated ModeInfo mode_infos = 2; + } +} + +// Fee includes the amount of coins paid in fees and the maximum +// gas to be used by the transaction. The ratio yields an effective "gasprice", +// which must be above some miminum to be accepted into the mempool. +message Fee { + // amount is the amount of coins to be paid as a fee + repeated cosmos.base.v1beta1.Coin amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + + // gas_limit is the maximum gas that can be used in transaction processing + // before an out of gas error occurs + uint64 gas_limit = 2; + + // if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees. + // the payer must be a tx signer (and thus have signed this field in AuthInfo). + // setting this field does *not* change the ordering of required signers for the transaction. + string payer = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used + // to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does + // not support fee grants, this will fail + string granter = 4 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// Tip is the tip used for meta-transactions. +// +// Since: cosmos-sdk 0.46 +message Tip { + // amount is the amount of the tip + repeated cosmos.base.v1beta1.Coin amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + // tipper is the address of the account paying for the tip + string tipper = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// AuxSignerData is the intermediary format that an auxiliary signer (e.g. a +// tipper) builds and sends to the fee payer (who will build and broadcast the +// actual tx). AuxSignerData is not a valid tx in itself, and will be rejected +// by the node if sent directly as-is. +// +// Since: cosmos-sdk 0.46 +message AuxSignerData { + // address is the bech32-encoded address of the auxiliary signer. If using + // AuxSignerData across different chains, the bech32 prefix of the target + // chain (where the final transaction is broadcasted) should be used. + string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + // sign_doc is the SIGN_MODE_DIRECT_AUX sign doc that the auxiliary signer + // signs. Note: we use the same sign doc even if we're signing with + // LEGACY_AMINO_JSON. + SignDocDirectAux sign_doc = 2; + // mode is the signing mode of the single signer. + cosmos.tx.signing.v1beta1.SignMode mode = 3; + // sig is the signature of the sign doc. + bytes sig = 4; +} diff --git a/proto/rust-vendored/cosmos/upgrade/module/v1/module.proto b/proto/rust-vendored/cosmos/upgrade/module/v1/module.proto new file mode 100644 index 0000000..6493f5c --- /dev/null +++ b/proto/rust-vendored/cosmos/upgrade/module/v1/module.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package cosmos.upgrade.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the upgrade module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "cosmossdk.io/x/upgrade" + }; + + // authority defines the custom module authority. If not set, defaults to the governance module. + string authority = 1; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/upgrade/v1beta1/query.proto b/proto/rust-vendored/cosmos/upgrade/v1beta1/query.proto new file mode 100644 index 0000000..2b90a78 --- /dev/null +++ b/proto/rust-vendored/cosmos/upgrade/v1beta1/query.proto @@ -0,0 +1,122 @@ +syntax = "proto3"; +package cosmos.upgrade.v1beta1; + +import "google/api/annotations.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; + +option go_package = "cosmossdk.io/x/upgrade/types"; + +// Query defines the gRPC upgrade querier service. +service Query { + // CurrentPlan queries the current upgrade plan. + rpc CurrentPlan(QueryCurrentPlanRequest) returns (QueryCurrentPlanResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/current_plan"; + } + + // AppliedPlan queries a previously applied upgrade plan by its name. + rpc AppliedPlan(QueryAppliedPlanRequest) returns (QueryAppliedPlanResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/applied_plan/{name}"; + } + + // UpgradedConsensusState queries the consensus state that will serve + // as a trusted kernel for the next version of this chain. It will only be + // stored at the last height of this chain. + // UpgradedConsensusState RPC not supported with legacy querier + // This rpc is deprecated now that IBC has its own replacement + // (https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54) + rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) { + option deprecated = true; + option (google.api.http).get = "/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}"; + } + + // ModuleVersions queries the list of module versions from state. + // + // Since: cosmos-sdk 0.43 + rpc ModuleVersions(QueryModuleVersionsRequest) returns (QueryModuleVersionsResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/module_versions"; + } + + // Returns the account with authority to conduct upgrades + // + // Since: cosmos-sdk 0.46 + rpc Authority(QueryAuthorityRequest) returns (QueryAuthorityResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/authority"; + } +} + +// QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC +// method. +message QueryCurrentPlanRequest {} + +// QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC +// method. +message QueryCurrentPlanResponse { + // plan is the current upgrade plan. + Plan plan = 1; +} + +// QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC +// method. +message QueryAppliedPlanRequest { + // name is the name of the applied plan to query for. + string name = 1; +} + +// QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC +// method. +message QueryAppliedPlanResponse { + // height is the block height at which the plan was applied. + int64 height = 1; +} + +// QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState +// RPC method. +message QueryUpgradedConsensusStateRequest { + option deprecated = true; + + // last height of the current chain must be sent in request + // as this is the height under which next consensus state is stored + int64 last_height = 1; +} + +// QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState +// RPC method. +message QueryUpgradedConsensusStateResponse { + option deprecated = true; + reserved 1; + + // Since: cosmos-sdk 0.43 + bytes upgraded_consensus_state = 2; +} + +// QueryModuleVersionsRequest is the request type for the Query/ModuleVersions +// RPC method. +// +// Since: cosmos-sdk 0.43 +message QueryModuleVersionsRequest { + // module_name is a field to query a specific module + // consensus version from state. Leaving this empty will + // fetch the full list of module versions from state + string module_name = 1; +} + +// QueryModuleVersionsResponse is the response type for the Query/ModuleVersions +// RPC method. +// +// Since: cosmos-sdk 0.43 +message QueryModuleVersionsResponse { + // module_versions is a list of module names with their consensus versions. + repeated ModuleVersion module_versions = 1; +} + +// QueryAuthorityRequest is the request type for Query/Authority +// +// Since: cosmos-sdk 0.46 +message QueryAuthorityRequest {} + +// QueryAuthorityResponse is the response type for Query/Authority +// +// Since: cosmos-sdk 0.46 +message QueryAuthorityResponse { + string address = 1; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/upgrade/v1beta1/tx.proto b/proto/rust-vendored/cosmos/upgrade/v1beta1/tx.proto new file mode 100644 index 0000000..4a6c9ee --- /dev/null +++ b/proto/rust-vendored/cosmos/upgrade/v1beta1/tx.proto @@ -0,0 +1,62 @@ +// Since: cosmos-sdk 0.46 +syntax = "proto3"; +package cosmos.upgrade.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "cosmossdk.io/x/upgrade/types"; + +// Msg defines the upgrade Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // SoftwareUpgrade is a governance operation for initiating a software upgrade. + // + // Since: cosmos-sdk 0.46 + rpc SoftwareUpgrade(MsgSoftwareUpgrade) returns (MsgSoftwareUpgradeResponse); + + // CancelUpgrade is a governance operation for cancelling a previously + // approved software upgrade. + // + // Since: cosmos-sdk 0.46 + rpc CancelUpgrade(MsgCancelUpgrade) returns (MsgCancelUpgradeResponse); +} + +// MsgSoftwareUpgrade is the Msg/SoftwareUpgrade request type. +// +// Since: cosmos-sdk 0.46 +message MsgSoftwareUpgrade { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/MsgSoftwareUpgrade"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + + // plan is the upgrade plan. + Plan plan = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgSoftwareUpgradeResponse is the Msg/SoftwareUpgrade response type. +// +// Since: cosmos-sdk 0.46 +message MsgSoftwareUpgradeResponse {} + +// MsgCancelUpgrade is the Msg/CancelUpgrade request type. +// +// Since: cosmos-sdk 0.46 +message MsgCancelUpgrade { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/MsgCancelUpgrade"; + + // authority is the address that controls the module (defaults to x/gov unless overwritten). + string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; +} + +// MsgCancelUpgradeResponse is the Msg/CancelUpgrade response type. +// +// Since: cosmos-sdk 0.46 +message MsgCancelUpgradeResponse {} diff --git a/proto/rust-vendored/cosmos/upgrade/v1beta1/upgrade.proto b/proto/rust-vendored/cosmos/upgrade/v1beta1/upgrade.proto new file mode 100644 index 0000000..5dfb289 --- /dev/null +++ b/proto/rust-vendored/cosmos/upgrade/v1beta1/upgrade.proto @@ -0,0 +1,94 @@ +syntax = "proto3"; +package cosmos.upgrade.v1beta1; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; + +option go_package = "cosmossdk.io/x/upgrade/types"; +option (gogoproto.goproto_getters_all) = false; + +// Plan specifies information about a planned upgrade and when it should occur. +message Plan { + option (amino.name) = "cosmos-sdk/Plan"; + option (gogoproto.equal) = true; + + // Sets the name for the upgrade. This name will be used by the upgraded + // version of the software to apply any special "on-upgrade" commands during + // the first BeginBlock method after the upgrade is applied. It is also used + // to detect whether a software version can handle a given upgrade. If no + // upgrade handler with this name has been set in the software, it will be + // assumed that the software is out-of-date when the upgrade Time or Height is + // reached and the software will exit. + string name = 1; + + // Deprecated: Time based upgrades have been deprecated. Time based upgrade logic + // has been removed from the SDK. + // If this field is not empty, an error will be thrown. + google.protobuf.Timestamp time = 2 + [deprecated = true, (gogoproto.stdtime) = true, (gogoproto.nullable) = false, (amino.dont_omitempty) = true]; + + // The height at which the upgrade must be performed. + int64 height = 3; + + // Any application specific upgrade info to be included on-chain + // such as a git commit that validators could automatically upgrade to + string info = 4; + + // Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been + // moved to the IBC module in the sub module 02-client. + // If this field is not empty, an error will be thrown. + google.protobuf.Any upgraded_client_state = 5 [deprecated = true]; +} + +// SoftwareUpgradeProposal is a gov Content type for initiating a software +// upgrade. +// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov +// proposals, see MsgSoftwareUpgrade. +message SoftwareUpgradeProposal { + option deprecated = true; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + option (amino.name) = "cosmos-sdk/SoftwareUpgradeProposal"; + option (gogoproto.equal) = true; + + // title of the proposal + string title = 1; + + // description of the proposal + string description = 2; + + // plan of the proposal + Plan plan = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software +// upgrade. +// Deprecated: This legacy proposal is deprecated in favor of Msg-based gov +// proposals, see MsgCancelUpgrade. +message CancelSoftwareUpgradeProposal { + option deprecated = true; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + option (amino.name) = "cosmos-sdk/CancelSoftwareUpgradeProposal"; + option (gogoproto.equal) = true; + + // title of the proposal + string title = 1; + + // description of the proposal + string description = 2; +} + +// ModuleVersion specifies a module and its consensus version. +// +// Since: cosmos-sdk 0.43 +message ModuleVersion { + option (gogoproto.equal) = true; + + // name of the app module + string name = 1; + + // consensus version of the app module + uint64 version = 2; +} diff --git a/proto/rust-vendored/cosmos/vesting/module/v1/module.proto b/proto/rust-vendored/cosmos/vesting/module/v1/module.proto new file mode 100644 index 0000000..88bb89c --- /dev/null +++ b/proto/rust-vendored/cosmos/vesting/module/v1/module.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package cosmos.vesting.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the vesting module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import: "github.com/cosmos/cosmos-sdk/x/auth/vesting" + }; +} \ No newline at end of file diff --git a/proto/rust-vendored/cosmos/vesting/v1beta1/tx.proto b/proto/rust-vendored/cosmos/vesting/v1beta1/tx.proto new file mode 100644 index 0000000..6700872 --- /dev/null +++ b/proto/rust-vendored/cosmos/vesting/v1beta1/tx.proto @@ -0,0 +1,102 @@ +syntax = "proto3"; +package cosmos.vesting.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/vesting/v1beta1/vesting.proto"; +import "cosmos/msg/v1/msg.proto"; +import "amino/amino.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; + +// Msg defines the bank Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // CreateVestingAccount defines a method that enables creating a vesting + // account. + rpc CreateVestingAccount(MsgCreateVestingAccount) returns (MsgCreateVestingAccountResponse); + // CreatePermanentLockedAccount defines a method that enables creating a permanent + // locked account. + // + // Since: cosmos-sdk 0.46 + rpc CreatePermanentLockedAccount(MsgCreatePermanentLockedAccount) returns (MsgCreatePermanentLockedAccountResponse); + // CreatePeriodicVestingAccount defines a method that enables creating a + // periodic vesting account. + // + // Since: cosmos-sdk 0.46 + rpc CreatePeriodicVestingAccount(MsgCreatePeriodicVestingAccount) returns (MsgCreatePeriodicVestingAccountResponse); +} + +// MsgCreateVestingAccount defines a message that enables creating a vesting +// account. +message MsgCreateVestingAccount { + option (cosmos.msg.v1.signer) = "from_address"; + option (amino.name) = "cosmos-sdk/MsgCreateVestingAccount"; + + option (gogoproto.equal) = true; + + string from_address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + string to_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + + // end of vesting as unix time (in seconds). + int64 end_time = 4; + bool delayed = 5; +} + +// MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. +message MsgCreateVestingAccountResponse {} + +// MsgCreatePermanentLockedAccount defines a message that enables creating a permanent +// locked account. +// +// Since: cosmos-sdk 0.46 +message MsgCreatePermanentLockedAccount { + option (cosmos.msg.v1.signer) = "from_address"; + option (amino.name) = "cosmos-sdk/MsgCreatePermLockedAccount"; + option (gogoproto.equal) = true; + + string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""]; + string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""]; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MsgCreatePermanentLockedAccountResponse defines the Msg/CreatePermanentLockedAccount response type. +// +// Since: cosmos-sdk 0.46 +message MsgCreatePermanentLockedAccountResponse {} + +// MsgCreateVestingAccount defines a message that enables creating a vesting +// account. +// +// Since: cosmos-sdk 0.46 +message MsgCreatePeriodicVestingAccount { + option (cosmos.msg.v1.signer) = "from_address"; + option (amino.name) = "cosmos-sdk/MsgCreatePeriodVestAccount"; + + option (gogoproto.equal) = false; + + string from_address = 1; + string to_address = 2; + // start of vesting as unix time (in seconds). + int64 start_time = 3; + repeated Period vesting_periods = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// MsgCreateVestingAccountResponse defines the Msg/CreatePeriodicVestingAccount +// response type. +// +// Since: cosmos-sdk 0.46 +message MsgCreatePeriodicVestingAccountResponse {} diff --git a/proto/rust-vendored/cosmos/vesting/v1beta1/vesting.proto b/proto/rust-vendored/cosmos/vesting/v1beta1/vesting.proto new file mode 100644 index 0000000..12e9cdd --- /dev/null +++ b/proto/rust-vendored/cosmos/vesting/v1beta1/vesting.proto @@ -0,0 +1,94 @@ +syntax = "proto3"; +package cosmos.vesting.v1beta1; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; + +// BaseVestingAccount implements the VestingAccount interface. It contains all +// the necessary fields needed for any vesting account implementation. +message BaseVestingAccount { + option (amino.name) = "cosmos-sdk/BaseVestingAccount"; + option (gogoproto.goproto_getters) = false; + + cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; + repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + // Vesting end time, as unix timestamp (in seconds). + int64 end_time = 5; +} + +// ContinuousVestingAccount implements the VestingAccount interface. It +// continuously vests by unlocking coins linearly with respect to time. +message ContinuousVestingAccount { + option (amino.name) = "cosmos-sdk/ContinuousVestingAccount"; + option (gogoproto.goproto_getters) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; + // Vesting start time, as unix timestamp (in seconds). + int64 start_time = 2; +} + +// DelayedVestingAccount implements the VestingAccount interface. It vests all +// coins after a specific time, but non prior. In other words, it keeps them +// locked until a specified time. +message DelayedVestingAccount { + option (amino.name) = "cosmos-sdk/DelayedVestingAccount"; + option (gogoproto.goproto_getters) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; +} + +// Period defines a length of time and amount of coins that will vest. +message Period { + // Period duration in seconds. + int64 length = 1; + repeated cosmos.base.v1beta1.Coin amount = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (amino.encoding) = "legacy_coins", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// PeriodicVestingAccount implements the VestingAccount interface. It +// periodically vests by unlocking coins during each specified period. +message PeriodicVestingAccount { + option (amino.name) = "cosmos-sdk/PeriodicVestingAccount"; + option (gogoproto.goproto_getters) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; + int64 start_time = 2; + repeated Period vesting_periods = 3 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +// PermanentLockedAccount implements the VestingAccount interface. It does +// not ever release coins, locking them indefinitely. Coins in this account can +// still be used for delegating and for governance votes even while locked. +// +// Since: cosmos-sdk 0.43 +message PermanentLockedAccount { + option (amino.name) = "cosmos-sdk/PermanentLockedAccount"; + option (gogoproto.goproto_getters) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; +} diff --git a/proto/rust-vendored/cosmos_proto/cosmos.proto b/proto/rust-vendored/cosmos_proto/cosmos.proto new file mode 100644 index 0000000..5c63b86 --- /dev/null +++ b/proto/rust-vendored/cosmos_proto/cosmos.proto @@ -0,0 +1,97 @@ +syntax = "proto3"; +package cosmos_proto; + +import "google/protobuf/descriptor.proto"; + +option go_package = "github.com/cosmos/cosmos-proto;cosmos_proto"; + +extend google.protobuf.MessageOptions { + + // implements_interface is used to indicate the type name of the interface + // that a message implements so that it can be used in google.protobuf.Any + // fields that accept that interface. A message can implement multiple + // interfaces. Interfaces should be declared using a declare_interface + // file option. + repeated string implements_interface = 93001; +} + +extend google.protobuf.FieldOptions { + + // accepts_interface is used to annotate that a google.protobuf.Any + // field accepts messages that implement the specified interface. + // Interfaces should be declared using a declare_interface file option. + string accepts_interface = 93001; + + // scalar is used to indicate that this field follows the formatting defined + // by the named scalar which should be declared with declare_scalar. Code + // generators may choose to use this information to map this field to a + // language-specific type representing the scalar. + string scalar = 93002; +} + +extend google.protobuf.FileOptions { + + // declare_interface declares an interface type to be used with + // accepts_interface and implements_interface. Interface names are + // expected to follow the following convention such that their declaration + // can be discovered by tools: for a given interface type a.b.C, it is + // expected that the declaration will be found in a protobuf file named + // a/b/interfaces.proto in the file descriptor set. + repeated InterfaceDescriptor declare_interface = 793021; + + // declare_scalar declares a scalar type to be used with + // the scalar field option. Scalar names are + // expected to follow the following convention such that their declaration + // can be discovered by tools: for a given scalar type a.b.C, it is + // expected that the declaration will be found in a protobuf file named + // a/b/scalars.proto in the file descriptor set. + repeated ScalarDescriptor declare_scalar = 793022; +} + +// InterfaceDescriptor describes an interface type to be used with +// accepts_interface and implements_interface and declared by declare_interface. +message InterfaceDescriptor { + + // name is the name of the interface. It should be a short-name (without + // a period) such that the fully qualified name of the interface will be + // package.name, ex. for the package a.b and interface named C, the + // fully-qualified name will be a.b.C. + string name = 1; + + // description is a human-readable description of the interface and its + // purpose. + string description = 2; +} + +// ScalarDescriptor describes an scalar type to be used with +// the scalar field option and declared by declare_scalar. +// Scalars extend simple protobuf built-in types with additional +// syntax and semantics, for instance to represent big integers. +// Scalars should ideally define an encoding such that there is only one +// valid syntactical representation for a given semantic meaning, +// i.e. the encoding should be deterministic. +message ScalarDescriptor { + + // name is the name of the scalar. It should be a short-name (without + // a period) such that the fully qualified name of the scalar will be + // package.name, ex. for the package a.b and scalar named C, the + // fully-qualified name will be a.b.C. + string name = 1; + + // description is a human-readable description of the scalar and its + // encoding format. For instance a big integer or decimal scalar should + // specify precisely the expected encoding format. + string description = 2; + + // field_type is the type of field with which this scalar can be used. + // Scalars can be used with one and only one type of field so that + // encoding standards and simple and clear. Currently only string and + // bytes fields are supported for scalars. + repeated ScalarType field_type = 3; +} + +enum ScalarType { + SCALAR_TYPE_UNSPECIFIED = 0; + SCALAR_TYPE_STRING = 1; + SCALAR_TYPE_BYTES = 2; +} diff --git a/proto/rust-vendored/gogoproto/gogo.proto b/proto/rust-vendored/gogoproto/gogo.proto new file mode 100644 index 0000000..974b36a --- /dev/null +++ b/proto/rust-vendored/gogoproto/gogo.proto @@ -0,0 +1,145 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/cosmos/gogoproto +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; +package gogoproto; + +import "google/protobuf/descriptor.proto"; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "GoGoProtos"; +option go_package = "github.com/cosmos/gogoproto/gogoproto"; + +extend google.protobuf.EnumOptions { + optional bool goproto_enum_prefix = 62001; + optional bool goproto_enum_stringer = 62021; + optional bool enum_stringer = 62022; + optional string enum_customname = 62023; + optional bool enumdecl = 62024; +} + +extend google.protobuf.EnumValueOptions { + optional string enumvalue_customname = 66001; +} + +extend google.protobuf.FileOptions { + optional bool goproto_getters_all = 63001; + optional bool goproto_enum_prefix_all = 63002; + optional bool goproto_stringer_all = 63003; + optional bool verbose_equal_all = 63004; + optional bool face_all = 63005; + optional bool gostring_all = 63006; + optional bool populate_all = 63007; + optional bool stringer_all = 63008; + optional bool onlyone_all = 63009; + + optional bool equal_all = 63013; + optional bool description_all = 63014; + optional bool testgen_all = 63015; + optional bool benchgen_all = 63016; + optional bool marshaler_all = 63017; + optional bool unmarshaler_all = 63018; + optional bool stable_marshaler_all = 63019; + + optional bool sizer_all = 63020; + + optional bool goproto_enum_stringer_all = 63021; + optional bool enum_stringer_all = 63022; + + optional bool unsafe_marshaler_all = 63023; + optional bool unsafe_unmarshaler_all = 63024; + + optional bool goproto_extensions_map_all = 63025; + optional bool goproto_unrecognized_all = 63026; + optional bool gogoproto_import = 63027; + optional bool protosizer_all = 63028; + optional bool compare_all = 63029; + optional bool typedecl_all = 63030; + optional bool enumdecl_all = 63031; + + optional bool goproto_registration = 63032; + optional bool messagename_all = 63033; + + optional bool goproto_sizecache_all = 63034; + optional bool goproto_unkeyed_all = 63035; +} + +extend google.protobuf.MessageOptions { + optional bool goproto_getters = 64001; + optional bool goproto_stringer = 64003; + optional bool verbose_equal = 64004; + optional bool face = 64005; + optional bool gostring = 64006; + optional bool populate = 64007; + optional bool stringer = 67008; + optional bool onlyone = 64009; + + optional bool equal = 64013; + optional bool description = 64014; + optional bool testgen = 64015; + optional bool benchgen = 64016; + optional bool marshaler = 64017; + optional bool unmarshaler = 64018; + optional bool stable_marshaler = 64019; + + optional bool sizer = 64020; + + optional bool unsafe_marshaler = 64023; + optional bool unsafe_unmarshaler = 64024; + + optional bool goproto_extensions_map = 64025; + optional bool goproto_unrecognized = 64026; + + optional bool protosizer = 64028; + optional bool compare = 64029; + + optional bool typedecl = 64030; + + optional bool messagename = 64033; + + optional bool goproto_sizecache = 64034; + optional bool goproto_unkeyed = 64035; +} + +extend google.protobuf.FieldOptions { + optional bool nullable = 65001; + optional bool embed = 65002; + optional string customtype = 65003; + optional string customname = 65004; + optional string jsontag = 65005; + optional string moretags = 65006; + optional string casttype = 65007; + optional string castkey = 65008; + optional string castvalue = 65009; + + optional bool stdtime = 65010; + optional bool stdduration = 65011; + optional bool wktpointer = 65012; + + optional string castrepeated = 65013; +} diff --git a/proto/rust-vendored/google/api/annotations.proto b/proto/rust-vendored/google/api/annotations.proto new file mode 100644 index 0000000..efdab3d --- /dev/null +++ b/proto/rust-vendored/google/api/annotations.proto @@ -0,0 +1,31 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +import "google/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationsProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +extend google.protobuf.MethodOptions { + // See `HttpRule`. + HttpRule http = 72295728; +} diff --git a/proto/rust-vendored/google/api/http.proto b/proto/rust-vendored/google/api/http.proto new file mode 100644 index 0000000..113fa93 --- /dev/null +++ b/proto/rust-vendored/google/api/http.proto @@ -0,0 +1,375 @@ +// Copyright 2015 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "HttpProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +// Defines the HTTP configuration for an API service. It contains a list of +// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method +// to one or more HTTP REST API methods. +message Http { + // A list of HTTP configuration rules that apply to individual API methods. + // + // **NOTE:** All service configuration rules follow "last one wins" order. + repeated HttpRule rules = 1; + + // When set to true, URL path parameters will be fully URI-decoded except in + // cases of single segment matches in reserved expansion, where "%2F" will be + // left encoded. + // + // The default behavior is to not decode RFC 6570 reserved characters in multi + // segment matches. + bool fully_decode_reserved_expansion = 2; +} + +// # gRPC Transcoding +// +// gRPC Transcoding is a feature for mapping between a gRPC method and one or +// more HTTP REST endpoints. It allows developers to build a single API service +// that supports both gRPC APIs and REST APIs. Many systems, including [Google +// APIs](https://github.com/googleapis/googleapis), +// [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC +// Gateway](https://github.com/grpc-ecosystem/grpc-gateway), +// and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature +// and use it for large scale production services. +// +// `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies +// how different portions of the gRPC request message are mapped to the URL +// path, URL query parameters, and HTTP request body. It also controls how the +// gRPC response message is mapped to the HTTP response body. `HttpRule` is +// typically specified as an `google.api.http` annotation on the gRPC method. +// +// Each mapping specifies a URL path template and an HTTP method. The path +// template may refer to one or more fields in the gRPC request message, as long +// as each field is a non-repeated field with a primitive (non-message) type. +// The path template controls how fields of the request message are mapped to +// the URL path. +// +// Example: +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http) = { +// get: "/v1/{name=messages/*}" +// }; +// } +// } +// message GetMessageRequest { +// string name = 1; // Mapped to URL path. +// } +// message Message { +// string text = 1; // The resource content. +// } +// +// This enables an HTTP REST to gRPC mapping as below: +// +// HTTP | gRPC +// -----|----- +// `GET /v1/messages/123456` | `GetMessage(name: "messages/123456")` +// +// Any fields in the request message which are not bound by the path template +// automatically become HTTP query parameters if there is no HTTP request body. +// For example: +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http) = { +// get:"/v1/messages/{message_id}" +// }; +// } +// } +// message GetMessageRequest { +// message SubMessage { +// string subfield = 1; +// } +// string message_id = 1; // Mapped to URL path. +// int64 revision = 2; // Mapped to URL query parameter `revision`. +// SubMessage sub = 3; // Mapped to URL query parameter `sub.subfield`. +// } +// +// This enables a HTTP JSON to RPC mapping as below: +// +// HTTP | gRPC +// -----|----- +// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | +// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: +// "foo"))` +// +// Note that fields which are mapped to URL query parameters must have a +// primitive type or a repeated primitive type or a non-repeated message type. +// In the case of a repeated type, the parameter can be repeated in the URL +// as `...?param=A¶m=B`. In the case of a message type, each field of the +// message is mapped to a separate parameter, such as +// `...?foo.a=A&foo.b=B&foo.c=C`. +// +// For HTTP methods that allow a request body, the `body` field +// specifies the mapping. Consider a REST update method on the +// message resource collection: +// +// service Messaging { +// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { +// option (google.api.http) = { +// patch: "/v1/messages/{message_id}" +// body: "message" +// }; +// } +// } +// message UpdateMessageRequest { +// string message_id = 1; // mapped to the URL +// Message message = 2; // mapped to the body +// } +// +// The following HTTP JSON to RPC mapping is enabled, where the +// representation of the JSON in the request body is determined by +// protos JSON encoding: +// +// HTTP | gRPC +// -----|----- +// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: +// "123456" message { text: "Hi!" })` +// +// The special name `*` can be used in the body mapping to define that +// every field not bound by the path template should be mapped to the +// request body. This enables the following alternative definition of +// the update method: +// +// service Messaging { +// rpc UpdateMessage(Message) returns (Message) { +// option (google.api.http) = { +// patch: "/v1/messages/{message_id}" +// body: "*" +// }; +// } +// } +// message Message { +// string message_id = 1; +// string text = 2; +// } +// +// +// The following HTTP JSON to RPC mapping is enabled: +// +// HTTP | gRPC +// -----|----- +// `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: +// "123456" text: "Hi!")` +// +// Note that when using `*` in the body mapping, it is not possible to +// have HTTP parameters, as all fields not bound by the path end in +// the body. This makes this option more rarely used in practice when +// defining REST APIs. The common usage of `*` is in custom methods +// which don't use the URL at all for transferring data. +// +// It is possible to define multiple HTTP methods for one RPC by using +// the `additional_bindings` option. Example: +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http) = { +// get: "/v1/messages/{message_id}" +// additional_bindings { +// get: "/v1/users/{user_id}/messages/{message_id}" +// } +// }; +// } +// } +// message GetMessageRequest { +// string message_id = 1; +// string user_id = 2; +// } +// +// This enables the following two alternative HTTP JSON to RPC mappings: +// +// HTTP | gRPC +// -----|----- +// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` +// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: +// "123456")` +// +// ## Rules for HTTP mapping +// +// 1. Leaf request fields (recursive expansion nested messages in the request +// message) are classified into three categories: +// - Fields referred by the path template. They are passed via the URL path. +// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP +// request body. +// - All other fields are passed via the URL query parameters, and the +// parameter name is the field path in the request message. A repeated +// field can be represented as multiple query parameters under the same +// name. +// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields +// are passed via URL path and HTTP request body. +// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all +// fields are passed via URL path and URL query parameters. +// +// ### Path template syntax +// +// Template = "/" Segments [ Verb ] ; +// Segments = Segment { "/" Segment } ; +// Segment = "*" | "**" | LITERAL | Variable ; +// Variable = "{" FieldPath [ "=" Segments ] "}" ; +// FieldPath = IDENT { "." IDENT } ; +// Verb = ":" LITERAL ; +// +// The syntax `*` matches a single URL path segment. The syntax `**` matches +// zero or more URL path segments, which must be the last part of the URL path +// except the `Verb`. +// +// The syntax `Variable` matches part of the URL path as specified by its +// template. A variable template must not contain other variables. If a variable +// matches a single path segment, its template may be omitted, e.g. `{var}` +// is equivalent to `{var=*}`. +// +// The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL` +// contains any reserved character, such characters should be percent-encoded +// before the matching. +// +// If a variable contains exactly one path segment, such as `"{var}"` or +// `"{var=*}"`, when such a variable is expanded into a URL path on the client +// side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The +// server side does the reverse decoding. Such variables show up in the +// [Discovery +// Document](https://developers.google.com/discovery/v1/reference/apis) as +// `{var}`. +// +// If a variable contains multiple path segments, such as `"{var=foo/*}"` +// or `"{var=**}"`, when such a variable is expanded into a URL path on the +// client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. +// The server side does the reverse decoding, except "%2F" and "%2f" are left +// unchanged. Such variables show up in the +// [Discovery +// Document](https://developers.google.com/discovery/v1/reference/apis) as +// `{+var}`. +// +// ## Using gRPC API Service Configuration +// +// gRPC API Service Configuration (service config) is a configuration language +// for configuring a gRPC service to become a user-facing product. The +// service config is simply the YAML representation of the `google.api.Service` +// proto message. +// +// As an alternative to annotating your proto file, you can configure gRPC +// transcoding in your service config YAML files. You do this by specifying a +// `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same +// effect as the proto annotation. This can be particularly useful if you +// have a proto that is reused in multiple services. Note that any transcoding +// specified in the service config will override any matching transcoding +// configuration in the proto. +// +// Example: +// +// http: +// rules: +// # Selects a gRPC method and applies HttpRule to it. +// - selector: example.v1.Messaging.GetMessage +// get: /v1/messages/{message_id}/{sub.subfield} +// +// ## Special notes +// +// When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the +// proto to JSON conversion must follow the [proto3 +// specification](https://developers.google.com/protocol-buffers/docs/proto3#json). +// +// While the single segment variable follows the semantics of +// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String +// Expansion, the multi segment variable **does not** follow RFC 6570 Section +// 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion +// does not expand special characters like `?` and `#`, which would lead +// to invalid URLs. As the result, gRPC Transcoding uses a custom encoding +// for multi segment variables. +// +// The path variables **must not** refer to any repeated or mapped field, +// because client libraries are not capable of handling such variable expansion. +// +// The path variables **must not** capture the leading "/" character. The reason +// is that the most common use case "{var}" does not capture the leading "/" +// character. For consistency, all path variables must share the same behavior. +// +// Repeated message fields must not be mapped to URL query parameters, because +// no client library can support such complicated mapping. +// +// If an API needs to use a JSON array for request or response body, it can map +// the request or response body to a repeated field. However, some gRPC +// Transcoding implementations may not support this feature. +message HttpRule { + // Selects a method to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Maps to HTTP GET. Used for listing and getting information about + // resources. + string get = 2; + + // Maps to HTTP PUT. Used for replacing a resource. + string put = 3; + + // Maps to HTTP POST. Used for creating a resource or performing an action. + string post = 4; + + // Maps to HTTP DELETE. Used for deleting a resource. + string delete = 5; + + // Maps to HTTP PATCH. Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP request + // body, or `*` for mapping all request fields not captured by the path + // pattern to the HTTP body, or omitted for not having any HTTP request body. + // + // NOTE: the referred field must be present at the top-level of the request + // message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // response body. When omitted, the entire response message will be used + // as the HTTP response body. + // + // NOTE: The referred field must be present at the top-level of the response + // message type. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/proto/rust-vendored/google/protobuf/any.proto b/proto/rust-vendored/google/protobuf/any.proto new file mode 100644 index 0000000..ad8a3b5 --- /dev/null +++ b/proto/rust-vendored/google/protobuf/any.proto @@ -0,0 +1,162 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/anypb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// // or ... +// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +// foo = any.unpack(Foo.getDefaultInstance()); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name that uniquely identifies the type of the serialized + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent + // the fully qualified name of the type (as in + // `path/google.protobuf.Duration`). The name should be in a canonical form + // (e.g., leading "." is not accepted). + // + // In practice, teams usually precompile into the binary all types that they + // expect it to use in the context of Any. However, for URLs which use the + // scheme `http`, `https`, or no scheme, one can optionally set up a type + // server that maps type URLs to message definitions as follows: + // + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Note: this functionality is not currently available in the official + // protobuf release, and it is not used for type URLs beginning with + // type.googleapis.com. As of May 2023, there are no widely used type server + // implementations and no plans to implement one. + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/google/protobuf/descriptor.proto b/proto/rust-vendored/google/protobuf/descriptor.proto new file mode 100644 index 0000000..196fb21 --- /dev/null +++ b/proto/rust-vendored/google/protobuf/descriptor.proto @@ -0,0 +1,1293 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + +syntax = "proto2"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/descriptorpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// The full set of known editions. +enum Edition { + // A placeholder for an unknown edition value. + EDITION_UNKNOWN = 0; + + // A placeholder edition for specifying default behaviors *before* a feature + // was first introduced. This is effectively an "infinite past". + EDITION_LEGACY = 900; + + // Legacy syntax "editions". These pre-date editions, but behave much like + // distinct editions. These can't be used to specify the edition of proto + // files, but feature definitions must supply proto2/proto3 defaults for + // backwards compatibility. + EDITION_PROTO2 = 998; + EDITION_PROTO3 = 999; + + // Editions that have been released. The specific values are arbitrary and + // should not be depended on, but they will always be time-ordered for easy + // comparison. + EDITION_2023 = 1000; + EDITION_2024 = 1001; + + // Placeholder editions for testing feature resolution. These should not be + // used or relied on outside of tests. + EDITION_1_TEST_ONLY = 1; + EDITION_2_TEST_ONLY = 2; + EDITION_99997_TEST_ONLY = 99997; + EDITION_99998_TEST_ONLY = 99998; + EDITION_99999_TEST_ONLY = 99999; + + // Placeholder for specifying unbounded edition support. This should only + // ever be used by plugins that can expect to never require any changes to + // support a new edition. + EDITION_MAX = 0x7FFFFFFF; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2", "proto3", and "editions". + // + // If `edition` is present, this value must be "editions". + optional string syntax = 12; + + // The edition of the proto file. + optional Edition edition = 14; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + message Declaration { + // The extension number declared within the extension range. + optional int32 number = 1; + + // The fully-qualified name of the extension field. There must be a leading + // dot in front of the full name. + optional string full_name = 2; + + // The fully-qualified type name of the extension field. Unlike + // Metadata.type, Declaration.type must have a leading dot for messages + // and enums. + optional string type = 3; + + // If true, indicates that the number is reserved in the extension range, + // and any extension field with the number will fail to compile. Set this + // when a declared extension field is deleted. + optional bool reserved = 5; + + // If true, indicates that the extension must be defined as repeated. + // Otherwise the extension must be defined as optional. + optional bool repeated = 6; + + reserved 4; // removed is_repeated + } + + // For external users: DO NOT USE. We are in the process of open sourcing + // extension declaration and executing internal cleanups before it can be + // used externally. + repeated Declaration declaration = 2 [retention = RETENTION_SOURCE]; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The verification state of the extension range. + enum VerificationState { + // All the extensions of the range must be declared. + DECLARATION = 0; + UNVERIFIED = 1; + } + + // The verification state of the range. + // TODO: flip the default to DECLARATION once all empty ranges + // are marked as UNVERIFIED. + optional VerificationState verification = 3 + [default = UNVERIFIED, retention = RETENTION_SOURCE]; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported after google.protobuf. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. In Editions, the group wire format + // can be enabled via the `message_encoding` feature. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REPEATED = 3; + // The required label is only allowed in google.protobuf. In proto3 and Editions + // it's explicitly prohibited. In Editions, the `field_presence` feature + // can be used to get this behavior. + LABEL_REQUIRED = 2; + } + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; + + // If true, this is a proto3 "optional". When a proto3 field is optional, it + // tracks presence regardless of field type. + // + // When proto3_optional is true, this field must belong to a oneof to signal + // to old proto3 clients that presence is tracked for this field. This oneof + // is known as a "synthetic" oneof, and this field must be its sole member + // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs + // exist in the descriptor only, and do not generate any API. Synthetic oneofs + // must be ordered after all "real" oneofs. + // + // For message fields, proto3_optional doesn't create any semantic change, + // since non-repeated message fields always track presence. However it still + // indicates the semantic detail of whether the user wrote "optional" or not. + // This can be useful for round-tripping the .proto file. For consistency we + // give message fields a synthetic oneof also, even though it is not required + // to track presence. This is especially important because the parser can't + // tell if a field is a message or an enum, so it must always create a + // synthetic oneof. + // + // Proto2 optional fields do not set this flag, because they already indicate + // optional with `LABEL_OPTIONAL`. + optional bool proto3_optional = 17; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default = false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default = false]; +} + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + // Controls the name of the wrapper Java class generated for the .proto file. + // That class will always contain the .proto file's getDescriptor() method as + // well as any top-level extensions defined in the .proto file. + // If java_multiple_files is disabled, then all the other classes from the + // .proto file will be nested inside the single wrapper outer class. + optional string java_outer_classname = 8; + + // If enabled, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the wrapper class + // named by java_outer_classname. However, the wrapper class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default = false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // A proto2 file can set this to true to opt in to UTF-8 checking for Java, + // which will throw an exception if invalid UTF-8 is parsed from the wire or + // assigned to a string field. + // + // TODO: clarify exactly what kinds of field types this option + // applies to, and update these docs accordingly. + // + // Proto3 files already perform these checks. Setting the option explicitly to + // false has no effect: it cannot be used to opt proto3 files out of UTF-8 + // checks. + optional bool java_string_check_utf8 = 27 [default = false]; + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default = SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + reserved 42; // removed php_generic_services + reserved "php_generic_services"; + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default = false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default = true]; + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. + optional string php_metadata_namespace = 44; + + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + optional string ruby_package = 45; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. + // See the documentation for the "Options" section above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default = false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default = false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default = false]; + + reserved 4, 5, 6; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementations still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // + // This should only be used as a temporary measure against broken builds due + // to the change in behavior for JSON field name conflicts. + // + // TODO This is legacy behavior we plan to remove once downstream + // teams have had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 11 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 12; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead. + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is only implemented to support use of + // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + // type "bytes" in the open source release. + // TODO: make ctype actually deprecated. + optional CType ctype = 1 [/*deprecated = true,*/ default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + // The option [ctype=CORD] may be applied to a non-repeated field of type + // "bytes". It indicates that in C++, the data should be stored in a Cord + // instead of a string. For very large strings, this may reduce memory + // fragmentation. It may also allow better performance when parsing from a + // Cord, or when parsing with aliasing enabled, as the parsed Cord may then + // alias the original buffer. + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. This option is prohibited in + // Editions, but the `repeated_field_encoding` feature can be used to control + // the behavior. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // Note that lazy message fields are still eagerly verified to check + // ill-formed wireformat or missing required fields. Calling IsInitialized() + // on the outer message would fail if the inner message has missing required + // fields. Failed verification would result in parsing failure (except when + // uninitialized messages are acceptable). + optional bool lazy = 5 [default = false]; + + // unverified_lazy does no correctness checks on the byte stream. This should + // only be used where lazy with verification is prohibitive for performance + // reasons. + optional bool unverified_lazy = 15 [default = false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default = false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default = false]; + + // Indicate that the field value should not be printed out when using debug + // formats, e.g. when the field contains sensitive credentials. + optional bool debug_redact = 16 [default = false]; + + // If set to RETENTION_SOURCE, the option will be omitted from the binary. + enum OptionRetention { + RETENTION_UNKNOWN = 0; + RETENTION_RUNTIME = 1; + RETENTION_SOURCE = 2; + } + + optional OptionRetention retention = 17; + + // This indicates the types of entities that the field may apply to when used + // as an option. If it is unset, then the field may be freely used as an + // option on any kind of entity. + enum OptionTargetType { + TARGET_TYPE_UNKNOWN = 0; + TARGET_TYPE_FILE = 1; + TARGET_TYPE_EXTENSION_RANGE = 2; + TARGET_TYPE_MESSAGE = 3; + TARGET_TYPE_FIELD = 4; + TARGET_TYPE_ONEOF = 5; + TARGET_TYPE_ENUM = 6; + TARGET_TYPE_ENUM_ENTRY = 7; + TARGET_TYPE_SERVICE = 8; + TARGET_TYPE_METHOD = 9; + } + + repeated OptionTargetType targets = 19; + + message EditionDefault { + optional Edition edition = 3; + optional string value = 2; // Textproto value. + } + repeated EditionDefault edition_defaults = 20; + + // Any features defined in the specific edition. + optional FeatureSet features = 21; + + // Information about the support window of a feature. + message FeatureSupport { + // The edition that this feature was first available in. In editions + // earlier than this one, the default assigned to EDITION_LEGACY will be + // used, and proto files will not be able to override it. + optional Edition edition_introduced = 1; + + // The edition this feature becomes deprecated in. Using this after this + // edition may trigger warnings. + optional Edition edition_deprecated = 2; + + // The deprecation warning text if this feature is used after the edition it + // was marked deprecated in. + optional string deprecation_warning = 3; + + // The edition this feature is no longer available in. In editions after + // this one, the last default assigned will be used, and proto files will + // not be able to override it. + optional Edition edition_removed = 4; + } + optional FeatureSupport feature_support = 22; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype + reserved 18; // reserve target, target_obsolete_do_not_use +} + +message OneofOptions { + // Any features defined in the specific edition. + optional FeatureSet features = 1; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default = false]; + + reserved 5; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // TODO Remove this legacy behavior once downstream teams have + // had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 6 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 7; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default = false]; + + // Any features defined in the specific edition. + optional FeatureSet features = 2; + + // Indicate that fields annotated with this enum value should not be printed + // out when using debug formats, e.g. when the field contains sensitive + // credentials. + optional bool debug_redact = 3 [default = false]; + + // Information about the support window of a feature value. + optional FieldOptions.FeatureSupport feature_support = 4; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Any features defined in the specific edition. + optional FeatureSet features = 34; + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default = false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; + + // Any features defined in the specific edition. + optional FeatureSet features = 35; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents + // "foo.(bar.baz).moo". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Features + +// TODO Enums in C++ gencode (and potentially other languages) are +// not well scoped. This means that each of the feature enums below can clash +// with each other. The short names we've chosen maximize call-site +// readability, but leave us very open to this scenario. A future feature will +// be designed and implemented to handle this, hopefully before we ever hit a +// conflict here. +message FeatureSet { + enum FieldPresence { + FIELD_PRESENCE_UNKNOWN = 0; + EXPLICIT = 1; + IMPLICIT = 2; + LEGACY_REQUIRED = 3; + } + optional FieldPresence field_presence = 1 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "EXPLICIT" }, + edition_defaults = { edition: EDITION_PROTO3, value: "IMPLICIT" }, + edition_defaults = { edition: EDITION_2023, value: "EXPLICIT" } + ]; + + enum EnumType { + ENUM_TYPE_UNKNOWN = 0; + OPEN = 1; + CLOSED = 2; + } + optional EnumType enum_type = 2 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "CLOSED" }, + edition_defaults = { edition: EDITION_PROTO3, value: "OPEN" } + ]; + + enum RepeatedFieldEncoding { + REPEATED_FIELD_ENCODING_UNKNOWN = 0; + PACKED = 1; + EXPANDED = 2; + } + optional RepeatedFieldEncoding repeated_field_encoding = 3 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "EXPANDED" }, + edition_defaults = { edition: EDITION_PROTO3, value: "PACKED" } + ]; + + enum Utf8Validation { + UTF8_VALIDATION_UNKNOWN = 0; + VERIFY = 2; + NONE = 3; + reserved 1; + } + optional Utf8Validation utf8_validation = 4 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "NONE" }, + edition_defaults = { edition: EDITION_PROTO3, value: "VERIFY" } + ]; + + enum MessageEncoding { + MESSAGE_ENCODING_UNKNOWN = 0; + LENGTH_PREFIXED = 1; + DELIMITED = 2; + } + optional MessageEncoding message_encoding = 5 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "LENGTH_PREFIXED" } + ]; + + enum JsonFormat { + JSON_FORMAT_UNKNOWN = 0; + ALLOW = 1; + LEGACY_BEST_EFFORT = 2; + } + optional JsonFormat json_format = 6 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_MESSAGE, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_LEGACY, value: "LEGACY_BEST_EFFORT" }, + edition_defaults = { edition: EDITION_PROTO3, value: "ALLOW" } + ]; + + reserved 999; + + extensions 1000 to 9994 [ + declaration = { + number: 1000, + full_name: ".pb.cpp", + type: ".pb.CppFeatures" + }, + declaration = { + number: 1001, + full_name: ".pb.java", + type: ".pb.JavaFeatures" + }, + declaration = { number: 1002, full_name: ".pb.go", type: ".pb.GoFeatures" }, + declaration = { + number: 9990, + full_name: ".pb.proto1", + type: ".pb.Proto1Features" + } + ]; + + extensions 9995 to 9999; // For internal testing + extensions 10000; // for https://github.com/bufbuild/protobuf-es +} + +// A compiled specification for the defaults of a set of features. These +// messages are generated from FeatureSet extensions and can be used to seed +// feature resolution. The resolution with this object becomes a simple search +// for the closest matching edition, followed by proto merges. +message FeatureSetDefaults { + // A map from every known edition with a unique set of defaults to its + // defaults. Not all editions may be contained here. For a given edition, + // the defaults at the closest matching edition ordered at or before it should + // be used. This field must be in strict ascending order by edition. + message FeatureSetEditionDefault { + optional Edition edition = 3; + + // Defaults of features that can be overridden in this edition. + optional FeatureSet overridable_features = 4; + + // Defaults of features that can't be overridden in this edition. + optional FeatureSet fixed_features = 5; + + reserved 1, 2; + reserved "features"; + } + repeated FeatureSetEditionDefault defaults = 1; + + // The minimum supported edition (inclusive) when this was constructed. + // Editions before this will not have defaults. + optional Edition minimum_edition = 4; + + // The maximum known edition (inclusive) when this was constructed. Editions + // after this will not have reliable defaults. + optional Edition maximum_edition = 5; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition appears. + // For example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed = true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed = true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to moo. + // // + // // Another line attached to moo. + // optional double moo = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to moo or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed = true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified object. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + + // Represents the identified object's effect on the element in the original + // .proto file. + enum Semantic { + // There is no effect or the effect is indescribable. + NONE = 0; + // The element is set or otherwise mutated. + SET = 1; + // An alias to the element is returned. + ALIAS = 2; + } + optional Semantic semantic = 5; + } +} \ No newline at end of file diff --git a/proto/rust-vendored/google/protobuf/duration.proto b/proto/rust-vendored/google/protobuf/duration.proto new file mode 100644 index 0000000..a49438b --- /dev/null +++ b/proto/rust-vendored/google/protobuf/duration.proto @@ -0,0 +1,115 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/durationpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DurationProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// A Duration represents a signed, fixed-length span of time represented +// as a count of seconds and fractions of seconds at nanosecond +// resolution. It is independent of any calendar and concepts like "day" +// or "month". It is related to Timestamp in that the difference between +// two Timestamp values is a Duration and it can be added or subtracted +// from a Timestamp. Range is approximately +-10,000 years. +// +// # Examples +// +// Example 1: Compute Duration from two Timestamps in pseudo code. +// +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; +// +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; +// +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (duration.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } +// +// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. +// +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; +// +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; +// +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } +// +// Example 3: Compute Duration from datetime.timedelta in Python. +// +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) +// +// # JSON Mapping +// +// In JSON format, the Duration type is encoded as a string rather than an +// object, where the string ends in the suffix "s" (indicating seconds) and +// is preceded by the number of seconds, with nanoseconds expressed as +// fractional seconds. For example, 3 seconds with 0 nanoseconds should be +// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should +// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 +// microsecond should be expressed in JSON format as "3.000001s". +// +message Duration { + // Signed seconds of the span of time. Must be from -315,576,000,000 + // to +315,576,000,000 inclusive. Note: these bounds are computed from: + // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + int64 seconds = 1; + + // Signed fractions of a second at nanosecond resolution of the span + // of time. Durations less than one second are represented with a 0 + // `seconds` field and a positive or negative `nanos` field. For durations + // of one second or more, a non-zero value for the `nanos` field must be + // of the same sign as the `seconds` field. Must be from -999,999,999 + // to +999,999,999 inclusive. + int32 nanos = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/google/protobuf/timestamp.proto b/proto/rust-vendored/google/protobuf/timestamp.proto new file mode 100644 index 0000000..d0698db --- /dev/null +++ b/proto/rust-vendored/google/protobuf/timestamp.proto @@ -0,0 +1,144 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/timestamppb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "TimestampProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// A Timestamp represents a point in time independent of any time zone or local +// calendar, encoded as a count of seconds and fractions of seconds at +// nanosecond resolution. The count is relative to an epoch at UTC midnight on +// January 1, 1970, in the proleptic Gregorian calendar which extends the +// Gregorian calendar backwards to year one. +// +// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap +// second table is needed for interpretation, using a [24-hour linear +// smear](https://developers.google.com/time/smear). +// +// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By +// restricting to that range, we ensure that we can convert to and from [RFC +// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. +// +// # Examples +// +// Example 1: Compute Timestamp from POSIX `time()`. +// +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); +// +// Example 2: Compute Timestamp from POSIX `gettimeofday()`. +// +// struct timeval tv; +// gettimeofday(&tv, NULL); +// +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); +// +// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. +// +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// +// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. +// +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// +// Example 5: Compute Timestamp from Java `Instant.now()`. +// +// Instant now = Instant.now(); +// +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); +// +// Example 6: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() +// +// # JSON Mapping +// +// In JSON format, the Timestamp type is encoded as a string in the +// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the +// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" +// where {year} is always expressed using four digits while {month}, {day}, +// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional +// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), +// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone +// is required. A proto3 JSON serializer should always use UTC (as indicated by +// "Z") when printing the Timestamp type and a proto3 JSON parser should be +// able to accept both UTC and other timezones (as indicated by an offset). +// +// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past +// 01:30 UTC on January 15, 2017. +// +// In JavaScript, one can convert a Date object to this format using the +// standard +// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) +// method. In Python, a standard `datetime.datetime` object can be converted +// to this format using +// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with +// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use +// the Joda Time's [`ISODateTimeFormat.dateTime()`]( +// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() +// ) to obtain a formatter capable of generating timestamps in this format. +// +message Timestamp { + // Represents seconds of UTC time since Unix epoch + // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + // 9999-12-31T23:59:59Z inclusive. + int64 seconds = 1; + + // Non-negative fractions of a second at nanosecond resolution. Negative + // second values with fractions must still have non-negative nanos values + // that count forward in time. Must be from 0 to 999,999,999 + // inclusive. + int32 nanos = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/applications/fee/v1/ack.proto b/proto/rust-vendored/ibc/applications/fee/v1/ack.proto new file mode 100644 index 0000000..2f3746d --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/ack.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +// IncentivizedAcknowledgement is the acknowledgement format to be used by applications wrapped in the fee middleware +message IncentivizedAcknowledgement { + // the underlying app acknowledgement bytes + bytes app_acknowledgement = 1; + // the relayer address which submits the recv packet message + string forward_relayer_address = 2; + // success flag of the base application callback + bool underlying_app_success = 3; +} diff --git a/proto/rust-vendored/ibc/applications/fee/v1/fee.proto b/proto/rust-vendored/ibc/applications/fee/v1/fee.proto new file mode 100644 index 0000000..867e884 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/fee.proto @@ -0,0 +1,61 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +import "amino/amino.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "cosmos/msg/v1/msg.proto"; + +// Fee defines the ICS29 receive, acknowledgement and timeout fees +message Fee { + // the packet receive fee + repeated cosmos.base.v1beta1.Coin recv_fee = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (amino.encoding) = "legacy_coins" + ]; + + // the packet acknowledgement fee + repeated cosmos.base.v1beta1.Coin ack_fee = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (amino.encoding) = "legacy_coins" + ]; + + // the packet timeout fee + repeated cosmos.base.v1beta1.Coin timeout_fee = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (amino.encoding) = "legacy_coins" + ]; +} + +// PacketFee contains ICS29 relayer fees, refund address and optional list of permitted relayers +message PacketFee { + option (cosmos.msg.v1.signer) = "refund_address"; + + // fee encapsulates the recv, ack and timeout fees associated with an IBC packet + Fee fee = 1 [(gogoproto.nullable) = false]; + // the refund address for unspent fees + string refund_address = 2; + // optional list of relayers permitted to receive fees + repeated string relayers = 3; +} + +// PacketFees contains a list of type PacketFee +message PacketFees { + // list of packet fees + repeated PacketFee packet_fees = 1 [(gogoproto.nullable) = false]; +} + +// IdentifiedPacketFees contains a list of type PacketFee and associated PacketId +message IdentifiedPacketFees { + // unique packet identifier comprised of the channel ID, port ID and sequence + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; + // list of packet fees + repeated PacketFee packet_fees = 2 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/applications/fee/v1/genesis.proto b/proto/rust-vendored/ibc/applications/fee/v1/genesis.proto new file mode 100644 index 0000000..e48ceb5 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/genesis.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/fee/v1/fee.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// GenesisState defines the ICS29 fee middleware genesis state +message GenesisState { + // list of identified packet fees + repeated IdentifiedPacketFees identified_fees = 1 [(gogoproto.nullable) = false]; + // list of fee enabled channels + repeated FeeEnabledChannel fee_enabled_channels = 2 [(gogoproto.nullable) = false]; + // list of registered payees + repeated RegisteredPayee registered_payees = 3 [(gogoproto.nullable) = false]; + // list of registered counterparty payees + repeated RegisteredCounterpartyPayee registered_counterparty_payees = 4 [(gogoproto.nullable) = false]; + // list of forward relayer addresses + repeated ForwardRelayerAddress forward_relayers = 5 [(gogoproto.nullable) = false]; +} + +// FeeEnabledChannel contains the PortID & ChannelID for a fee enabled channel +message FeeEnabledChannel { + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; +} + +// RegisteredPayee contains the relayer address and payee address for a specific channel +message RegisteredPayee { + // unique channel identifier + string channel_id = 1; + // the relayer address + string relayer = 2; + // the payee address + string payee = 3; +} + +// RegisteredCounterpartyPayee contains the relayer address and counterparty payee address for a specific channel (used +// for recv fee distribution) +message RegisteredCounterpartyPayee { + // unique channel identifier + string channel_id = 1; + // the relayer address + string relayer = 2; + // the counterparty payee address + string counterparty_payee = 3; +} + +// ForwardRelayerAddress contains the forward relayer address and PacketId used for async acknowledgements +message ForwardRelayerAddress { + // the forward relayer address + string address = 1; + // unique packet identifer comprised of the channel ID, port ID and sequence + ibc.core.channel.v1.PacketId packet_id = 2 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/applications/fee/v1/metadata.proto b/proto/rust-vendored/ibc/applications/fee/v1/metadata.proto new file mode 100644 index 0000000..1e82e7c --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/metadata.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +// Metadata defines the ICS29 channel specific metadata encoded into the channel version bytestring +// See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning +message Metadata { + // fee_version defines the ICS29 fee version + string fee_version = 1; + // app_version defines the underlying application version, which may or may not be a JSON encoded bytestring + string app_version = 2; +} diff --git a/proto/rust-vendored/ibc/applications/fee/v1/query.proto b/proto/rust-vendored/ibc/applications/fee/v1/query.proto new file mode 100644 index 0000000..726370e --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/query.proto @@ -0,0 +1,218 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/applications/fee/v1/fee.proto"; +import "ibc/applications/fee/v1/genesis.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// Query defines the ICS29 gRPC querier service. +service Query { + // IncentivizedPackets returns all incentivized packets and their associated fees + rpc IncentivizedPackets(QueryIncentivizedPacketsRequest) returns (QueryIncentivizedPacketsResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/incentivized_packets"; + } + + // IncentivizedPacket returns all packet fees for a packet given its identifier + rpc IncentivizedPacket(QueryIncentivizedPacketRequest) returns (QueryIncentivizedPacketResponse) { + option (google.api.http).get = + "/ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/sequences/" + "{packet_id.sequence}/incentivized_packet"; + } + + // Gets all incentivized packets for a specific channel + rpc IncentivizedPacketsForChannel(QueryIncentivizedPacketsForChannelRequest) + returns (QueryIncentivizedPacketsForChannelResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/incentivized_packets"; + } + + // TotalRecvFees returns the total receive fees for a packet given its identifier + rpc TotalRecvFees(QueryTotalRecvFeesRequest) returns (QueryTotalRecvFeesResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/" + "sequences/{packet_id.sequence}/total_recv_fees"; + } + + // TotalAckFees returns the total acknowledgement fees for a packet given its identifier + rpc TotalAckFees(QueryTotalAckFeesRequest) returns (QueryTotalAckFeesResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/" + "sequences/{packet_id.sequence}/total_ack_fees"; + } + + // TotalTimeoutFees returns the total timeout fees for a packet given its identifier + rpc TotalTimeoutFees(QueryTotalTimeoutFeesRequest) returns (QueryTotalTimeoutFeesResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{packet_id.channel_id}/ports/{packet_id.port_id}/" + "sequences/{packet_id.sequence}/total_timeout_fees"; + } + + // Payee returns the registered payee address for a specific channel given the relayer address + rpc Payee(QueryPayeeRequest) returns (QueryPayeeResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/payee"; + } + + // CounterpartyPayee returns the registered counterparty payee for forward relaying + rpc CounterpartyPayee(QueryCounterpartyPayeeRequest) returns (QueryCounterpartyPayeeResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{channel_id}/relayers/{relayer}/counterparty_payee"; + } + + // FeeEnabledChannels returns a list of all fee enabled channels + rpc FeeEnabledChannels(QueryFeeEnabledChannelsRequest) returns (QueryFeeEnabledChannelsResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/fee_enabled"; + } + + // FeeEnabledChannel returns true if the provided port and channel identifiers belong to a fee enabled channel + rpc FeeEnabledChannel(QueryFeeEnabledChannelRequest) returns (QueryFeeEnabledChannelResponse) { + option (google.api.http).get = "/ibc/apps/fee/v1/channels/{channel_id}/ports/{port_id}/fee_enabled"; + } +} + +// QueryIncentivizedPacketsRequest defines the request type for the IncentivizedPackets rpc +message QueryIncentivizedPacketsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; + // block height at which to query + uint64 query_height = 2; +} + +// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPackets rpc +message QueryIncentivizedPacketsResponse { + // list of identified fees for incentivized packets + repeated ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packets = 1 [(gogoproto.nullable) = false]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryIncentivizedPacketRequest defines the request type for the IncentivizedPacket rpc +message QueryIncentivizedPacketRequest { + // unique packet identifier comprised of channel ID, port ID and sequence + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; + // block height at which to query + uint64 query_height = 2; +} + +// QueryIncentivizedPacketsResponse defines the response type for the IncentivizedPacket rpc +message QueryIncentivizedPacketResponse { + // the identified fees for the incentivized packet + ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packet = 1 [(gogoproto.nullable) = false]; +} + +// QueryIncentivizedPacketsForChannelRequest defines the request type for querying for all incentivized packets +// for a specific channel +message QueryIncentivizedPacketsForChannelRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; + string port_id = 2; + string channel_id = 3; + // Height to query at + uint64 query_height = 4; +} + +// QueryIncentivizedPacketsResponse defines the response type for the incentivized packets RPC +message QueryIncentivizedPacketsForChannelResponse { + // Map of all incentivized_packets + repeated ibc.applications.fee.v1.IdentifiedPacketFees incentivized_packets = 1; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTotalRecvFeesRequest defines the request type for the TotalRecvFees rpc +message QueryTotalRecvFeesRequest { + // the packet identifier for the associated fees + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; +} + +// QueryTotalRecvFeesResponse defines the response type for the TotalRecvFees rpc +message QueryTotalRecvFeesResponse { + // the total packet receive fees + repeated cosmos.base.v1beta1.Coin recv_fees = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// QueryTotalAckFeesRequest defines the request type for the TotalAckFees rpc +message QueryTotalAckFeesRequest { + // the packet identifier for the associated fees + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; +} + +// QueryTotalAckFeesResponse defines the response type for the TotalAckFees rpc +message QueryTotalAckFeesResponse { + // the total packet acknowledgement fees + repeated cosmos.base.v1beta1.Coin ack_fees = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// QueryTotalTimeoutFeesRequest defines the request type for the TotalTimeoutFees rpc +message QueryTotalTimeoutFeesRequest { + // the packet identifier for the associated fees + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; +} + +// QueryTotalTimeoutFeesResponse defines the response type for the TotalTimeoutFees rpc +message QueryTotalTimeoutFeesResponse { + // the total packet timeout fees + repeated cosmos.base.v1beta1.Coin timeout_fees = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// QueryPayeeRequest defines the request type for the Payee rpc +message QueryPayeeRequest { + // unique channel identifier + string channel_id = 1; + // the relayer address to which the distribution address is registered + string relayer = 2; +} + +// QueryPayeeResponse defines the response type for the Payee rpc +message QueryPayeeResponse { + // the payee address to which packet fees are paid out + string payee_address = 1; +} + +// QueryCounterpartyPayeeRequest defines the request type for the CounterpartyPayee rpc +message QueryCounterpartyPayeeRequest { + // unique channel identifier + string channel_id = 1; + // the relayer address to which the counterparty is registered + string relayer = 2; +} + +// QueryCounterpartyPayeeResponse defines the response type for the CounterpartyPayee rpc +message QueryCounterpartyPayeeResponse { + // the counterparty payee address used to compensate forward relaying + string counterparty_payee = 1; +} + +// QueryFeeEnabledChannelsRequest defines the request type for the FeeEnabledChannels rpc +message QueryFeeEnabledChannelsRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; + // block height at which to query + uint64 query_height = 2; +} + +// QueryFeeEnabledChannelsResponse defines the response type for the FeeEnabledChannels rpc +message QueryFeeEnabledChannelsResponse { + // list of fee enabled channels + repeated ibc.applications.fee.v1.FeeEnabledChannel fee_enabled_channels = 1 [(gogoproto.nullable) = false]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryFeeEnabledChannelRequest defines the request type for the FeeEnabledChannel rpc +message QueryFeeEnabledChannelRequest { + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; +} + +// QueryFeeEnabledChannelResponse defines the response type for the FeeEnabledChannel rpc +message QueryFeeEnabledChannelResponse { + // boolean flag representing the fee enabled channel status + bool fee_enabled = 1; +} diff --git a/proto/rust-vendored/ibc/applications/fee/v1/tx.proto b/proto/rust-vendored/ibc/applications/fee/v1/tx.proto new file mode 100644 index 0000000..cc037ae --- /dev/null +++ b/proto/rust-vendored/ibc/applications/fee/v1/tx.proto @@ -0,0 +1,122 @@ +syntax = "proto3"; + +package ibc.applications.fee.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "ibc/applications/fee/v1/fee.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "cosmos/msg/v1/msg.proto"; + +// Msg defines the ICS29 Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // RegisterPayee defines a rpc handler method for MsgRegisterPayee + // RegisterPayee is called by the relayer on each channelEnd and allows them to set an optional + // payee to which reverse and timeout relayer packet fees will be paid out. The payee should be registered on + // the source chain from which packets originate as this is where fee distribution takes place. This function may be + // called more than once by a relayer, in which case, the latest payee is always used. + rpc RegisterPayee(MsgRegisterPayee) returns (MsgRegisterPayeeResponse); + + // RegisterCounterpartyPayee defines a rpc handler method for MsgRegisterCounterpartyPayee + // RegisterCounterpartyPayee is called by the relayer on each channelEnd and allows them to specify the counterparty + // payee address before relaying. This ensures they will be properly compensated for forward relaying since + // the destination chain must include the registered counterparty payee address in the acknowledgement. This function + // may be called more than once by a relayer, in which case, the latest counterparty payee address is always used. + rpc RegisterCounterpartyPayee(MsgRegisterCounterpartyPayee) returns (MsgRegisterCounterpartyPayeeResponse); + + // PayPacketFee defines a rpc handler method for MsgPayPacketFee + // PayPacketFee is an open callback that may be called by any module/user that wishes to escrow funds in order to + // incentivize the relaying of the packet at the next sequence + // NOTE: This method is intended to be used within a multi msg transaction, where the subsequent msg that follows + // initiates the lifecycle of the incentivized packet + rpc PayPacketFee(MsgPayPacketFee) returns (MsgPayPacketFeeResponse); + + // PayPacketFeeAsync defines a rpc handler method for MsgPayPacketFeeAsync + // PayPacketFeeAsync is an open callback that may be called by any module/user that wishes to escrow funds in order to + // incentivize the relaying of a known packet (i.e. at a particular sequence) + rpc PayPacketFeeAsync(MsgPayPacketFeeAsync) returns (MsgPayPacketFeeAsyncResponse); +} + +// MsgRegisterPayee defines the request type for the RegisterPayee rpc +message MsgRegisterPayee { + option (amino.name) = "cosmos-sdk/MsgRegisterPayee"; + option (cosmos.msg.v1.signer) = "relayer"; + + option (gogoproto.goproto_getters) = false; + + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; + // the relayer address + string relayer = 3; + // the payee address + string payee = 4; +} + +// MsgRegisterPayeeResponse defines the response type for the RegisterPayee rpc +message MsgRegisterPayeeResponse {} + +// MsgRegisterCounterpartyPayee defines the request type for the RegisterCounterpartyPayee rpc +message MsgRegisterCounterpartyPayee { + option (amino.name) = "cosmos-sdk/MsgRegisterCounterpartyPayee"; + option (cosmos.msg.v1.signer) = "relayer"; + + option (gogoproto.goproto_getters) = false; + + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; + // the relayer address + string relayer = 3; + // the counterparty payee address + string counterparty_payee = 4; +} + +// MsgRegisterCounterpartyPayeeResponse defines the response type for the RegisterCounterpartyPayee rpc +message MsgRegisterCounterpartyPayeeResponse {} + +// MsgPayPacketFee defines the request type for the PayPacketFee rpc +// This Msg can be used to pay for a packet at the next sequence send & should be combined with the Msg that will be +// paid for +message MsgPayPacketFee { + option (amino.name) = "cosmos-sdk/MsgPayPacketFee"; + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // fee encapsulates the recv, ack and timeout fees associated with an IBC packet + ibc.applications.fee.v1.Fee fee = 1 [(gogoproto.nullable) = false]; + // the source port unique identifier + string source_port_id = 2; + // the source channel unique identifer + string source_channel_id = 3; + // account address to refund fee if necessary + string signer = 4; + // optional list of relayers permitted to the receive packet fees + repeated string relayers = 5; +} + +// MsgPayPacketFeeResponse defines the response type for the PayPacketFee rpc +message MsgPayPacketFeeResponse {} + +// MsgPayPacketFeeAsync defines the request type for the PayPacketFeeAsync rpc +// This Msg can be used to pay for a packet at a specified sequence (instead of the next sequence send) +message MsgPayPacketFeeAsync { + option (amino.name) = "cosmos-sdk/MsgPayPacketFeeAsync"; + option (cosmos.msg.v1.signer) = "packet_fee"; + option (gogoproto.goproto_getters) = false; + + // unique packet identifier comprised of the channel ID, port ID and sequence + ibc.core.channel.v1.PacketId packet_id = 1 [(gogoproto.nullable) = false]; + // the packet fee associated with a particular IBC packet + PacketFee packet_fee = 2 [(gogoproto.nullable) = false]; +} + +// MsgPayPacketFeeAsyncResponse defines the response type for the PayPacketFeeAsync rpc +message MsgPayPacketFeeAsyncResponse {} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/controller.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/controller.proto new file mode 100644 index 0000000..2e6bbe1 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/controller.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"; + +// Params defines the set of on-chain interchain accounts parameters. +// The following parameters may be used to disable the controller submodule. +message Params { + // controller_enabled enables or disables the controller submodule. + bool controller_enabled = 1; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/query.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/query.proto new file mode 100644 index 0000000..31885fc --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/query.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"; + +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "google/api/annotations.proto"; + +// Query provides defines the gRPC querier service. +service Query { + // InterchainAccount returns the interchain account address for a given owner address on a given connection + rpc InterchainAccount(QueryInterchainAccountRequest) returns (QueryInterchainAccountResponse) { + option (google.api.http).get = + "/ibc/apps/interchain_accounts/controller/v1/owners/{owner}/connections/{connection_id}"; + } + + // Params queries all parameters of the ICA controller submodule. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/apps/interchain_accounts/controller/v1/params"; + } +} + +// QueryInterchainAccountRequest is the request type for the Query/InterchainAccount RPC method. +message QueryInterchainAccountRequest { + string owner = 1; + string connection_id = 2; +} + +// QueryInterchainAccountResponse the response type for the Query/InterchainAccount RPC method. +message QueryInterchainAccountResponse { + string address = 1; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/tx.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/tx.proto new file mode 100644 index 0000000..b53b42d --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/controller/v1/tx.proto @@ -0,0 +1,80 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.controller.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/interchain_accounts/v1/packet.proto"; +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "cosmos/msg/v1/msg.proto"; + +// Msg defines the 27-interchain-accounts/controller Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // RegisterInterchainAccount defines a rpc handler for MsgRegisterInterchainAccount. + rpc RegisterInterchainAccount(MsgRegisterInterchainAccount) returns (MsgRegisterInterchainAccountResponse); + // SendTx defines a rpc handler for MsgSendTx. + rpc SendTx(MsgSendTx) returns (MsgSendTxResponse); + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgRegisterInterchainAccount defines the payload for Msg/RegisterAccount +message MsgRegisterInterchainAccount { + option (cosmos.msg.v1.signer) = "owner"; + + option (gogoproto.goproto_getters) = false; + + string owner = 1; + string connection_id = 2; + string version = 3; +} + +// MsgRegisterInterchainAccountResponse defines the response for Msg/RegisterAccount +message MsgRegisterInterchainAccountResponse { + option (gogoproto.goproto_getters) = false; + + string channel_id = 1; + string port_id = 2; +} + +// MsgSendTx defines the payload for Msg/SendTx +message MsgSendTx { + option (cosmos.msg.v1.signer) = "owner"; + + option (gogoproto.goproto_getters) = false; + + string owner = 1; + string connection_id = 2; + ibc.applications.interchain_accounts.v1.InterchainAccountPacketData packet_data = 3 [(gogoproto.nullable) = false]; + // Relative timeout timestamp provided will be added to the current block time during transaction execution. + // The timeout timestamp must be non-zero. + uint64 relative_timeout = 4; +} + +// MsgSendTxResponse defines the response for MsgSendTx +message MsgSendTxResponse { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; +} + +// MsgUpdateParams defines the payload for Msg/UpdateParams +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 1; + + // params defines the 27-interchain-accounts/controller parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false]; +} + +// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +message MsgUpdateParamsResponse {} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/genesis/v1/genesis.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/genesis/v1/genesis.proto new file mode 100644 index 0000000..4393e5b --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/genesis/v1/genesis.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.genesis.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/genesis/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/interchain_accounts/controller/v1/controller.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// GenesisState defines the interchain accounts genesis state +message GenesisState { + ControllerGenesisState controller_genesis_state = 1 [(gogoproto.nullable) = false]; + HostGenesisState host_genesis_state = 2 [(gogoproto.nullable) = false]; +} + +// ControllerGenesisState defines the interchain accounts controller genesis state +message ControllerGenesisState { + repeated ActiveChannel active_channels = 1 [(gogoproto.nullable) = false]; + repeated RegisteredInterchainAccount interchain_accounts = 2 [(gogoproto.nullable) = false]; + repeated string ports = 3; + ibc.applications.interchain_accounts.controller.v1.Params params = 4 [(gogoproto.nullable) = false]; +} + +// HostGenesisState defines the interchain accounts host genesis state +message HostGenesisState { + repeated ActiveChannel active_channels = 1 [(gogoproto.nullable) = false]; + repeated RegisteredInterchainAccount interchain_accounts = 2 [(gogoproto.nullable) = false]; + string port = 3; + ibc.applications.interchain_accounts.host.v1.Params params = 4 [(gogoproto.nullable) = false]; +} + +// ActiveChannel contains a connection ID, port ID and associated active channel ID, as well as a boolean flag to +// indicate if the channel is middleware enabled +message ActiveChannel { + string connection_id = 1; + string port_id = 2; + string channel_id = 3; + bool is_middleware_enabled = 4; +} + +// RegisteredInterchainAccount contains a connection ID, port ID and associated interchain account address +message RegisteredInterchainAccount { + string connection_id = 1; + string port_id = 2; + string account_address = 3; +} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/host.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/host.proto new file mode 100644 index 0000000..f036857 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/host.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types"; + +// Params defines the set of on-chain interchain accounts parameters. +// The following parameters may be used to disable the host submodule. +message Params { + // host_enabled enables or disables the host submodule. + bool host_enabled = 1; + // allow_messages defines a list of sdk message typeURLs allowed to be executed on a host chain. + repeated string allow_messages = 2; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/query.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/query.proto new file mode 100644 index 0000000..6f206a1 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/query.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types"; + +import "google/api/annotations.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// Query provides defines the gRPC querier service. +service Query { + // Params queries all parameters of the ICA host submodule. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/apps/interchain_accounts/host/v1/params"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/tx.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/tx.proto new file mode 100644 index 0000000..c6e15ef --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/host/v1/tx.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.host.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "ibc/applications/interchain_accounts/host/v1/host.proto"; + +// Msg defines the 27-interchain-accounts/host Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgUpdateParams defines the payload for Msg/UpdateParams +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 1; + + // params defines the 27-interchain-accounts/host parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false]; +} + +// MsgUpdateParamsResponse defines the response for Msg/UpdateParams +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/v1/account.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/account.proto new file mode 100644 index 0000000..4a6947c --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/account.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types"; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +// An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain +message InterchainAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + option (cosmos_proto.implements_interface) = "ibc.applications.interchain_accounts.v1.InterchainAccountI"; + + cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; + string account_owner = 2; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/v1/metadata.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/metadata.proto new file mode 100644 index 0000000..df72b41 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/metadata.proto @@ -0,0 +1,23 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types"; + +// Metadata defines a set of protocol specific data encoded into the ICS27 channel version bytestring +// See ICS004: https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#Versioning +message Metadata { + // version defines the ICS27 protocol version + string version = 1; + // controller_connection_id is the connection identifier associated with the controller chain + string controller_connection_id = 2; + // host_connection_id is the connection identifier associated with the host chain + string host_connection_id = 3; + // address defines the interchain account address to be fulfilled upon the OnChanOpenTry handshake step + // NOTE: the address field is empty on the OnChanOpenInit handshake step + string address = 4; + // encoding defines the supported codec format + string encoding = 5; + // tx_type defines the type of transactions the interchain account can execute + string tx_type = 6; +} diff --git a/proto/rust-vendored/ibc/applications/interchain_accounts/v1/packet.proto b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/packet.proto new file mode 100644 index 0000000..f75a146 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/interchain_accounts/v1/packet.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package ibc.applications.interchain_accounts.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types"; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; + +// Type defines a classification of message issued from a controller chain to its associated interchain accounts +// host +enum Type { + option (gogoproto.goproto_enum_prefix) = false; + + // Default zero value enumeration + TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNSPECIFIED"]; + // Execute a transaction on an interchain accounts host chain + TYPE_EXECUTE_TX = 1 [(gogoproto.enumvalue_customname) = "EXECUTE_TX"]; +} + +// InterchainAccountPacketData is comprised of a raw transaction, type of transaction and optional memo field. +message InterchainAccountPacketData { + Type type = 1; + bytes data = 2; + string memo = 3; +} + +// CosmosTx contains a list of sdk.Msg's. It should be used when sending transactions to an SDK host chain. +message CosmosTx { + repeated google.protobuf.Any messages = 1; +} diff --git a/proto/rust-vendored/ibc/applications/transfer/v1/authz.proto b/proto/rust-vendored/ibc/applications/transfer/v1/authz.proto new file mode 100644 index 0000000..7b7a9f0 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v1/authz.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Allocation defines the spend limit for a particular port and channel +message Allocation { + // the port on which the packet will be sent + string source_port = 1; + // the channel by which the packet will be sent + string source_channel = 2; + // spend limitation on the channel + repeated cosmos.base.v1beta1.Coin spend_limit = 3 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + // allow list of receivers, an empty allow list permits any receiver address + repeated string allow_list = 4; +} + +// TransferAuthorization allows the grantee to spend up to spend_limit coins from +// the granter's account for ibc transfer on a specific channel +message TransferAuthorization { + option (cosmos_proto.implements_interface) = "cosmos.authz.v1beta1.Authorization"; + + // port and channel amounts + repeated Allocation allocations = 1 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/applications/transfer/v1/genesis.proto b/proto/rust-vendored/ibc/applications/transfer/v1/genesis.proto new file mode 100644 index 0000000..f7d707f --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v1/genesis.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +import "ibc/applications/transfer/v1/transfer.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc-transfer genesis state +message GenesisState { + string port_id = 1; + repeated DenomTrace denom_traces = 2 [(gogoproto.castrepeated) = "Traces", (gogoproto.nullable) = false]; + Params params = 3 [(gogoproto.nullable) = false]; + // total_escrowed contains the total amount of tokens escrowed + // by the transfer module + repeated cosmos.base.v1beta1.Coin total_escrowed = 4 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/applications/transfer/v1/query.proto b/proto/rust-vendored/ibc/applications/transfer/v1/query.proto new file mode 100644 index 0000000..2323ea1 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v1/query.proto @@ -0,0 +1,121 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +// Query provides defines the gRPC querier service. +service Query { + // DenomTrace queries a denomination trace information. + rpc DenomTrace(QueryDenomTraceRequest) returns (QueryDenomTraceResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denom_traces/{hash=**}"; + } + + // DenomTraces queries all denomination traces. + rpc DenomTraces(QueryDenomTracesRequest) returns (QueryDenomTracesResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denom_traces"; + } + + // Params queries all parameters of the ibc-transfer module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/params"; + } + + // DenomHash queries a denomination hash information. + rpc DenomHash(QueryDenomHashRequest) returns (QueryDenomHashResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denom_hashes/{trace=**}"; + } + + // EscrowAddress returns the escrow address for a particular port and channel id. + rpc EscrowAddress(QueryEscrowAddressRequest) returns (QueryEscrowAddressResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/channels/{channel_id}/ports/{port_id}/escrow_address"; + } + + // TotalEscrowForDenom returns the total amount of tokens in escrow based on the denom. + rpc TotalEscrowForDenom(QueryTotalEscrowForDenomRequest) returns (QueryTotalEscrowForDenomResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denoms/{denom=**}/total_escrow"; + } +} + +// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC +// method +message QueryDenomTraceRequest { + // hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information. + string hash = 1; +} + +// QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC +// method. +message QueryDenomTraceResponse { + // denom_trace returns the requested denomination trace information. + DenomTrace denom_trace = 1; +} + +// QueryConnectionsRequest is the request type for the Query/DenomTraces RPC +// method +message QueryDenomTracesRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryConnectionsResponse is the response type for the Query/DenomTraces RPC +// method. +message QueryDenomTracesResponse { + // denom_traces returns all denominations trace information. + repeated DenomTrace denom_traces = 1 [(gogoproto.castrepeated) = "Traces", (gogoproto.nullable) = false]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} + +// QueryDenomHashRequest is the request type for the Query/DenomHash RPC +// method +message QueryDenomHashRequest { + // The denomination trace ([port_id]/[channel_id])+/[denom] + string trace = 1; +} + +// QueryDenomHashResponse is the response type for the Query/DenomHash RPC +// method. +message QueryDenomHashResponse { + // hash (in hex format) of the denomination trace information. + string hash = 1; +} + +// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. +message QueryEscrowAddressRequest { + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; +} + +// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. +message QueryEscrowAddressResponse { + // the escrow account address + string escrow_address = 1; +} + +// QueryTotalEscrowForDenomRequest is the request type for TotalEscrowForDenom RPC method. +message QueryTotalEscrowForDenomRequest { + string denom = 1; +} + +// QueryTotalEscrowForDenomResponse is the response type for TotalEscrowForDenom RPC method. +message QueryTotalEscrowForDenomResponse { + cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/applications/transfer/v1/transfer.proto b/proto/rust-vendored/ibc/applications/transfer/v1/transfer.proto new file mode 100644 index 0000000..12914b7 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v1/transfer.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +// DenomTrace contains the base denomination for ICS20 fungible tokens and the +// source tracing information path. +message DenomTrace { + // path defines the chain of port/channel identifiers used for tracing the + // source of the fungible token. + string path = 1; + // base denomination of the relayed fungible token. + string base_denom = 2; +} + +// Params defines the set of IBC transfer parameters. +// NOTE: To prevent a single token from being transferred, set the +// TransfersEnabled parameter to true and then set the bank module's SendEnabled +// parameter for the denomination to false. +message Params { + // send_enabled enables or disables all cross-chain token transfers from this + // chain. + bool send_enabled = 1; + // receive_enabled enables or disables all cross-chain token transfers to this + // chain. + bool receive_enabled = 2; +} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/applications/transfer/v1/tx.proto b/proto/rust-vendored/ibc/applications/transfer/v1/tx.proto new file mode 100644 index 0000000..c2ca399 --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v1/tx.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +import "amino/amino.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; + +// Msg defines the ibc/transfer Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // Transfer defines a rpc handler method for MsgTransfer. + rpc Transfer(MsgTransfer) returns (MsgTransferResponse); + + // UpdateParams defines a rpc handler for MsgUpdateParams. + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between +// ICS20 enabled chains. See ICS Spec here: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +message MsgTransfer { + option (amino.name) = "cosmos-sdk/MsgTransfer"; + option (cosmos.msg.v1.signer) = "sender"; + + option (gogoproto.goproto_getters) = false; + + // the port on which the packet will be sent + string source_port = 1; + // the channel by which the packet will be sent + string source_channel = 2; + // the tokens to be transferred + cosmos.base.v1beta1.Coin token = 3 [(gogoproto.nullable) = false, (amino.encoding) = "legacy_coin"]; + // the sender address + string sender = 4; + // the recipient address on the destination chain + string receiver = 5; + // Timeout height relative to the current block height. + // The timeout is disabled when set to 0. + ibc.core.client.v1.Height timeout_height = 6 [(gogoproto.nullable) = false]; + // Timeout timestamp in absolute nanoseconds since unix epoch. + // The timeout is disabled when set to 0. + uint64 timeout_timestamp = 7; + // optional memo + string memo = 8; +} + +// MsgTransferResponse defines the Msg/Transfer response type. +message MsgTransferResponse { + option (gogoproto.goproto_getters) = false; + + // sequence number of the transfer packet sent + uint64 sequence = 1; +} + +// MsgUpdateParams is the Msg/UpdateParams request type. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 1; + + // params defines the transfer parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/applications/transfer/v2/packet.proto b/proto/rust-vendored/ibc/applications/transfer/v2/packet.proto new file mode 100644 index 0000000..bff35bd --- /dev/null +++ b/proto/rust-vendored/ibc/applications/transfer/v2/packet.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v2; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"; + +// FungibleTokenPacketData defines a struct for the packet payload +// See FungibleTokenPacketData spec: +// https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures +message FungibleTokenPacketData { + // the token denomination to be transferred + string denom = 1; + // the token amount to be transferred + string amount = 2; + // the sender address + string sender = 3; + // the recipient address on the destination chain + string receiver = 4; + // optional memo + string memo = 5; +} diff --git a/proto/rust-vendored/ibc/core/channel/v1/channel.proto b/proto/rust-vendored/ibc/core/channel/v1/channel.proto new file mode 100644 index 0000000..44c3240 --- /dev/null +++ b/proto/rust-vendored/ibc/core/channel/v1/channel.proto @@ -0,0 +1,171 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +// Channel defines pipeline for exactly-once packet delivery between specific +// modules on separate blockchains, which has at least one end capable of +// sending packets and one end capable of receiving packets. +message Channel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [(gogoproto.nullable) = false]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4; + // opaque channel version, which is agreed upon during the handshake + string version = 5; +} + +// IdentifiedChannel defines a channel with additional port and channel +// identifier fields. +message IdentifiedChannel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [(gogoproto.nullable) = false]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4; + // opaque channel version, which is agreed upon during the handshake + string version = 5; + // port identifier + string port_id = 6; + // channel identifier + string channel_id = 7; +} + +// State defines if a channel is in one of the following states: +// CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNINITIALIZED"]; + // A channel has just started the opening handshake. + STATE_INIT = 1 [(gogoproto.enumvalue_customname) = "INIT"]; + // A channel has acknowledged the handshake step on the counterparty chain. + STATE_TRYOPEN = 2 [(gogoproto.enumvalue_customname) = "TRYOPEN"]; + // A channel has completed the handshake. Open channels are + // ready to send and receive packets. + STATE_OPEN = 3 [(gogoproto.enumvalue_customname) = "OPEN"]; + // A channel has been closed and can no longer be used to send or receive + // packets. + STATE_CLOSED = 4 [(gogoproto.enumvalue_customname) = "CLOSED"]; +} + +// Order defines if a channel is ORDERED or UNORDERED +enum Order { + option (gogoproto.goproto_enum_prefix) = false; + + // zero-value for channel ordering + ORDER_NONE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "NONE"]; + // packets can be delivered in any order, which may differ from the order in + // which they were sent. + ORDER_UNORDERED = 1 [(gogoproto.enumvalue_customname) = "UNORDERED"]; + // packets are delivered exactly in the order which they were sent + ORDER_ORDERED = 2 [(gogoproto.enumvalue_customname) = "ORDERED"]; +} + +// Counterparty defines a channel end counterparty +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // port on the counterparty chain which owns the other end of the channel. + string port_id = 1; + // channel end on the counterparty chain + string channel_id = 2; +} + +// Packet defines a type that carries data across different chains through IBC +message Packet { + option (gogoproto.goproto_getters) = false; + + // number corresponds to the order of sends and receives, where a Packet + // with an earlier sequence number must be sent and received before a Packet + // with a later sequence number. + uint64 sequence = 1; + // identifies the port on the sending chain. + string source_port = 2; + // identifies the channel end on the sending chain. + string source_channel = 3; + // identifies the port on the receiving chain. + string destination_port = 4; + // identifies the channel end on the receiving chain. + string destination_channel = 5; + // actual opaque bytes transferred directly to the application module + bytes data = 6; + // block height after which the packet times out + ibc.core.client.v1.Height timeout_height = 7 [(gogoproto.nullable) = false]; + // block timestamp (in nanoseconds) after which the packet times out + uint64 timeout_timestamp = 8; +} + +// PacketState defines the generic type necessary to retrieve and store +// packet commitments, acknowledgements, and receipts. +// Caller is responsible for knowing the context necessary to interpret this +// state as a commitment, acknowledgement, or a receipt. +message PacketState { + option (gogoproto.goproto_getters) = false; + + // channel port identifier. + string port_id = 1; + // channel unique identifier. + string channel_id = 2; + // packet sequence. + uint64 sequence = 3; + // embedded data that represents packet state. + bytes data = 4; +} + +// PacketId is an identifer for a unique Packet +// Source chains refer to packets by source port/channel +// Destination chains refer to packets by destination port/channel +message PacketId { + option (gogoproto.goproto_getters) = false; + + // channel port identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// Acknowledgement is the recommended acknowledgement format to be used by +// app-specific protocols. +// NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental +// conflicts with other protobuf message formats used for acknowledgements. +// The first byte of any message with this format will be the non-ASCII values +// `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: +// https://github.com/cosmos/ibc/tree/master/spec/core/ics-004-channel-and-packet-semantics#acknowledgement-envelope +message Acknowledgement { + // response contains either a result or an error and must be non-empty + oneof response { + bytes result = 21; + string error = 22; + } +} + +// Timeout defines an execution deadline structure for 04-channel handlers. +// This includes packet lifecycle handlers as well as the upgrade handshake handlers. +// A valid Timeout contains either one or both of a timestamp and block height (sequence). +message Timeout { + // block height after which the packet or upgrade times out + ibc.core.client.v1.Height height = 1 [(gogoproto.nullable) = false]; + // block timestamp (in nanoseconds) after which the packet or upgrade times out + uint64 timestamp = 2; +} diff --git a/proto/rust-vendored/ibc/core/channel/v1/genesis.proto b/proto/rust-vendored/ibc/core/channel/v1/genesis.proto new file mode 100644 index 0000000..382a804 --- /dev/null +++ b/proto/rust-vendored/ibc/core/channel/v1/genesis.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// GenesisState defines the ibc channel submodule's genesis state. +message GenesisState { + repeated IdentifiedChannel channels = 1 [(gogoproto.casttype) = "IdentifiedChannel", (gogoproto.nullable) = false]; + repeated PacketState acknowledgements = 2 [(gogoproto.nullable) = false]; + repeated PacketState commitments = 3 [(gogoproto.nullable) = false]; + repeated PacketState receipts = 4 [(gogoproto.nullable) = false]; + repeated PacketSequence send_sequences = 5 [(gogoproto.nullable) = false]; + repeated PacketSequence recv_sequences = 6 [(gogoproto.nullable) = false]; + repeated PacketSequence ack_sequences = 7 [(gogoproto.nullable) = false]; + // the sequence for the next generated channel identifier + uint64 next_channel_sequence = 8; +} + +// PacketSequence defines the genesis type necessary to retrieve and store +// next send and receive sequences. +message PacketSequence { + string port_id = 1; + string channel_id = 2; + uint64 sequence = 3; +} diff --git a/proto/rust-vendored/ibc/core/channel/v1/query.proto b/proto/rust-vendored/ibc/core/channel/v1/query.proto new file mode 100644 index 0000000..42c4cae --- /dev/null +++ b/proto/rust-vendored/ibc/core/channel/v1/query.proto @@ -0,0 +1,402 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"; + +import "ibc/core/client/v1/client.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; + +// Query provides defines the gRPC querier service +service Query { + // Channel queries an IBC Channel. + rpc Channel(QueryChannelRequest) returns (QueryChannelResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}"; + } + + // Channels queries all the IBC channels of a chain. + rpc Channels(QueryChannelsRequest) returns (QueryChannelsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels"; + } + + // ConnectionChannels queries all the channels associated with a connection + // end. + rpc ConnectionChannels(QueryConnectionChannelsRequest) returns (QueryConnectionChannelsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/connections/{connection}/channels"; + } + + // ChannelClientState queries for the client state for the channel associated + // with the provided channel identifiers. + rpc ChannelClientState(QueryChannelClientStateRequest) returns (QueryChannelClientStateResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/client_state"; + } + + // ChannelConsensusState queries for the consensus state for the channel + // associated with the provided channel identifiers. + rpc ChannelConsensusState(QueryChannelConsensusStateRequest) returns (QueryChannelConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/consensus_state/revision/" + "{revision_number}/height/{revision_height}"; + } + + // PacketCommitment queries a stored packet commitment hash. + rpc PacketCommitment(QueryPacketCommitmentRequest) returns (QueryPacketCommitmentResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/" + "packet_commitments/{sequence}"; + } + + // PacketCommitments returns all the packet commitments hashes associated + // with a channel. + rpc PacketCommitments(QueryPacketCommitmentsRequest) returns (QueryPacketCommitmentsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_commitments"; + } + + // PacketReceipt queries if a given packet sequence has been received on the + // queried chain + rpc PacketReceipt(QueryPacketReceiptRequest) returns (QueryPacketReceiptResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_receipts/{sequence}"; + } + + // PacketAcknowledgement queries a stored packet acknowledgement hash. + rpc PacketAcknowledgement(QueryPacketAcknowledgementRequest) returns (QueryPacketAcknowledgementResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_acks/{sequence}"; + } + + // PacketAcknowledgements returns all the packet acknowledgements associated + // with a channel. + rpc PacketAcknowledgements(QueryPacketAcknowledgementsRequest) returns (QueryPacketAcknowledgementsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_acknowledgements"; + } + + // UnreceivedPackets returns all the unreceived IBC packets associated with a + // channel and sequences. + rpc UnreceivedPackets(QueryUnreceivedPacketsRequest) returns (QueryUnreceivedPacketsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/ports/{port_id}/" + "packet_commitments/" + "{packet_commitment_sequences}/unreceived_packets"; + } + + // UnreceivedAcks returns all the unreceived IBC acknowledgements associated + // with a channel and sequences. + rpc UnreceivedAcks(QueryUnreceivedAcksRequest) returns (QueryUnreceivedAcksResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/packet_commitments/" + "{packet_ack_sequences}/unreceived_acks"; + } + + // NextSequenceReceive returns the next receive sequence for a given channel. + rpc NextSequenceReceive(QueryNextSequenceReceiveRequest) returns (QueryNextSequenceReceiveResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/next_sequence"; + } + + // NextSequenceSend returns the next send sequence for a given channel. + rpc NextSequenceSend(QueryNextSequenceSendRequest) returns (QueryNextSequenceSendResponse) { + option (google.api.http).get = "/ibc/core/channel/v1/channels/{channel_id}/" + "ports/{port_id}/next_sequence_send"; + } +} + +// QueryChannelRequest is the request type for the Query/Channel RPC method +message QueryChannelRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelResponse is the response type for the Query/Channel RPC method. +// Besides the Channel end, it includes a proof and the height from which the +// proof was retrieved. +message QueryChannelResponse { + // channel associated with the request identifiers + ibc.core.channel.v1.Channel channel = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelsRequest is the request type for the Query/Channels RPC method +message QueryChannelsRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryChannelsResponse is the response type for the Query/Channels RPC method. +message QueryChannelsResponse { + // list of stored channels of the chain. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionChannelsRequest is the request type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsRequest { + // connection unique identifier + string connection = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConnectionChannelsResponse is the Response type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsResponse { + // list of channels associated with a connection. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelClientStateRequest is the request type for the Query/ClientState +// RPC method +message QueryChannelClientStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelConsensusStateRequest is the request type for the +// Query/ConsensusState RPC method +message QueryChannelConsensusStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // revision number of the consensus state + uint64 revision_number = 3; + // revision height of the consensus state + uint64 revision_height = 4; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} + +// QueryPacketCommitmentRequest is the request type for the +// Query/PacketCommitment RPC method +message QueryPacketCommitmentRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketCommitmentResponse defines the client query response for a packet +// which also includes a proof and the height from which the proof was +// retrieved +message QueryPacketCommitmentResponse { + // packet associated with the request fields + bytes commitment = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketCommitmentsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; +} + +// QueryPacketCommitmentsResponse is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsResponse { + repeated ibc.core.channel.v1.PacketState commitments = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketReceiptRequest is the request type for the +// Query/PacketReceipt RPC method +message QueryPacketReceiptRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketReceiptResponse defines the client query response for a packet +// receipt which also includes a proof, and the height from which the proof was +// retrieved +message QueryPacketReceiptResponse { + // success flag for if receipt exists + bool received = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} + +// QueryPacketAcknowledgementRequest is the request type for the +// Query/PacketAcknowledgement RPC method +message QueryPacketAcknowledgementRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketAcknowledgementResponse defines the client query response for a +// packet which also includes a proof and the height from which the +// proof was retrieved +message QueryPacketAcknowledgementResponse { + // packet associated with the request fields + bytes acknowledgement = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketAcknowledgementsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketAcknowledgementsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 4; +} + +// QueryPacketAcknowledgemetsResponse is the request type for the +// Query/QueryPacketAcknowledgements RPC method +message QueryPacketAcknowledgementsResponse { + repeated ibc.core.channel.v1.PacketState acknowledgements = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryUnreceivedPacketsRequest is the request type for the +// Query/UnreceivedPackets RPC method +message QueryUnreceivedPacketsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 3; +} + +// QueryUnreceivedPacketsResponse is the response type for the +// Query/UnreceivedPacketCommitments RPC method +message QueryUnreceivedPacketsResponse { + // list of unreceived packet sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} + +// QueryUnreceivedAcks is the request type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of acknowledgement sequences + repeated uint64 packet_ack_sequences = 3; +} + +// QueryUnreceivedAcksResponse is the response type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksResponse { + // list of unreceived acknowledgement sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} + +// QueryNextSequenceReceiveRequest is the request type for the +// Query/QueryNextSequenceReceiveRequest RPC method +message QueryNextSequenceReceiveRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QuerySequenceResponse is the request type for the +// Query/QueryNextSequenceReceiveResponse RPC method +message QueryNextSequenceReceiveResponse { + // next sequence receive number + uint64 next_sequence_receive = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryNextSequenceSendRequest is the request type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryNextSequenceSendResponse is the request type for the +// Query/QueryNextSequenceSend RPC method +message QueryNextSequenceSendResponse { + // next sequence send number + uint64 next_sequence_send = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/core/channel/v1/tx.proto b/proto/rust-vendored/ibc/core/channel/v1/tx.proto new file mode 100644 index 0000000..4b9ad3d --- /dev/null +++ b/proto/rust-vendored/ibc/core/channel/v1/tx.proto @@ -0,0 +1,255 @@ +syntax = "proto3"; + +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "cosmos/msg/v1/msg.proto"; + +// Msg defines the ibc/channel Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. + rpc ChannelOpenInit(MsgChannelOpenInit) returns (MsgChannelOpenInitResponse); + + // ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. + rpc ChannelOpenTry(MsgChannelOpenTry) returns (MsgChannelOpenTryResponse); + + // ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. + rpc ChannelOpenAck(MsgChannelOpenAck) returns (MsgChannelOpenAckResponse); + + // ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. + rpc ChannelOpenConfirm(MsgChannelOpenConfirm) returns (MsgChannelOpenConfirmResponse); + + // ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. + rpc ChannelCloseInit(MsgChannelCloseInit) returns (MsgChannelCloseInitResponse); + + // ChannelCloseConfirm defines a rpc handler method for + // MsgChannelCloseConfirm. + rpc ChannelCloseConfirm(MsgChannelCloseConfirm) returns (MsgChannelCloseConfirmResponse); + + // RecvPacket defines a rpc handler method for MsgRecvPacket. + rpc RecvPacket(MsgRecvPacket) returns (MsgRecvPacketResponse); + + // Timeout defines a rpc handler method for MsgTimeout. + rpc Timeout(MsgTimeout) returns (MsgTimeoutResponse); + + // TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. + rpc TimeoutOnClose(MsgTimeoutOnClose) returns (MsgTimeoutOnCloseResponse); + + // Acknowledgement defines a rpc handler method for MsgAcknowledgement. + rpc Acknowledgement(MsgAcknowledgement) returns (MsgAcknowledgementResponse); +} + +// ResponseResultType defines the possible outcomes of the execution of a message +enum ResponseResultType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default zero value enumeration + RESPONSE_RESULT_TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNSPECIFIED"]; + // The message did not call the IBC application callbacks (because, for example, the packet had already been relayed) + RESPONSE_RESULT_TYPE_NOOP = 1 [(gogoproto.enumvalue_customname) = "NOOP"]; + // The message was executed successfully + RESPONSE_RESULT_TYPE_SUCCESS = 2 [(gogoproto.enumvalue_customname) = "SUCCESS"]; +} + +// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It +// is called by a relayer on Chain A. +message MsgChannelOpenInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + Channel channel = 2 [(gogoproto.nullable) = false]; + string signer = 3; +} + +// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. +message MsgChannelOpenInitResponse { + option (gogoproto.goproto_getters) = false; + + string channel_id = 1; + string version = 2; +} + +// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel +// on Chain B. The version field within the Channel field has been deprecated. Its +// value will be ignored by core IBC. +message MsgChannelOpenTry { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + // Deprecated: this field is unused. Crossing hello's are no longer supported in core IBC. + string previous_channel_id = 2 [deprecated = true]; + // NOTE: the version field within the channel has been deprecated. Its value will be ignored by core IBC. + Channel channel = 3 [(gogoproto.nullable) = false]; + string counterparty_version = 4; + bytes proof_init = 5; + ibc.core.client.v1.Height proof_height = 6 [(gogoproto.nullable) = false]; + string signer = 7; +} + +// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. +message MsgChannelOpenTryResponse { + option (gogoproto.goproto_getters) = false; + + string version = 1; + string channel_id = 2; +} + +// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge +// the change of channel state to TRYOPEN on Chain B. +message MsgChannelOpenAck { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + string counterparty_channel_id = 3; + string counterparty_version = 4; + bytes proof_try = 5; + ibc.core.client.v1.Height proof_height = 6 [(gogoproto.nullable) = false]; + string signer = 7; +} + +// MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. +message MsgChannelOpenAckResponse {} + +// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of channel state to OPEN on Chain A. +message MsgChannelOpenConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + bytes proof_ack = 3; + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response +// type. +message MsgChannelOpenConfirmResponse {} + +// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A +// to close a channel with Chain B. +message MsgChannelCloseInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + string signer = 3; +} + +// MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. +message MsgChannelCloseInitResponse {} + +// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B +// to acknowledge the change of channel state to CLOSED on Chain A. +message MsgChannelCloseConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string port_id = 1; + string channel_id = 2; + bytes proof_init = 3; + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response +// type. +message MsgChannelCloseConfirmResponse {} + +// MsgRecvPacket receives incoming IBC packet +message MsgRecvPacket { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_commitment = 2; + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; + string signer = 4; +} + +// MsgRecvPacketResponse defines the Msg/RecvPacket response type. +message MsgRecvPacketResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgTimeout receives timed-out packet +message MsgTimeout { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_unreceived = 2; + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; + uint64 next_sequence_recv = 4; + string signer = 5; +} + +// MsgTimeoutResponse defines the Msg/Timeout response type. +message MsgTimeoutResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. +message MsgTimeoutOnClose { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_unreceived = 2; + bytes proof_close = 3; + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; + uint64 next_sequence_recv = 5; + string signer = 6; +} + +// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. +message MsgTimeoutOnCloseResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} + +// MsgAcknowledgement receives incoming IBC acknowledgement +message MsgAcknowledgement { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes acknowledgement = 2; + bytes proof_acked = 3; + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. +message MsgAcknowledgementResponse { + option (gogoproto.goproto_getters) = false; + + ResponseResultType result = 1; +} diff --git a/proto/rust-vendored/ibc/core/client/v1/client.proto b/proto/rust-vendored/ibc/core/client/v1/client.proto new file mode 100644 index 0000000..5da8f86 --- /dev/null +++ b/proto/rust-vendored/ibc/core/client/v1/client.proto @@ -0,0 +1,63 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// IdentifiedClientState defines a client state with an additional client +// identifier field. +message IdentifiedClientState { + // client identifier + string client_id = 1; + // client state + google.protobuf.Any client_state = 2; +} + +// ConsensusStateWithHeight defines a consensus state with an additional height +// field. +message ConsensusStateWithHeight { + // consensus state height + Height height = 1 [(gogoproto.nullable) = false]; + // consensus state + google.protobuf.Any consensus_state = 2; +} + +// ClientConsensusStates defines all the stored consensus states for a given +// client. +message ClientConsensusStates { + // client identifier + string client_id = 1; + // consensus states and their heights associated with the client + repeated ConsensusStateWithHeight consensus_states = 2 [(gogoproto.nullable) = false]; +} + +// Height is a monotonically increasing data type +// that can be compared against another Height for the purposes of updating and +// freezing clients +// +// Normally the RevisionHeight is incremented at each height while keeping +// RevisionNumber the same. However some consensus algorithms may choose to +// reset the height in certain conditions e.g. hard forks, state-machine +// breaking changes In these cases, the RevisionNumber is incremented so that +// height continues to be monitonically increasing even as the RevisionHeight +// gets reset +message Height { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // the revision that the client is currently on + uint64 revision_number = 1; + // the height within the given revision + uint64 revision_height = 2; +} + +// Params defines the set of IBC light client parameters. +message Params { + // allowed_clients defines the list of allowed client state types which can be created + // and interacted with. If a client type is removed from the allowed clients list, usage + // of this client will be disabled until it is added again to the list. + repeated string allowed_clients = 1; +} diff --git a/proto/rust-vendored/ibc/core/client/v1/genesis.proto b/proto/rust-vendored/ibc/core/client/v1/genesis.proto new file mode 100644 index 0000000..43610b0 --- /dev/null +++ b/proto/rust-vendored/ibc/core/client/v1/genesis.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"; + +import "ibc/core/client/v1/client.proto"; +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc client submodule's genesis state. +message GenesisState { + // client states with their corresponding identifiers + repeated IdentifiedClientState clients = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "IdentifiedClientStates"]; + // consensus states from each client + repeated ClientConsensusStates clients_consensus = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "ClientsConsensusStates"]; + // metadata from each client + repeated IdentifiedGenesisMetadata clients_metadata = 3 [(gogoproto.nullable) = false]; + Params params = 4 [(gogoproto.nullable) = false]; + // Deprecated: create_localhost has been deprecated. + // The localhost client is automatically created at genesis. + bool create_localhost = 5 [deprecated = true]; + // the sequence for the next generated client identifier + uint64 next_client_sequence = 6; +} + +// GenesisMetadata defines the genesis type for metadata that clients may return +// with ExportMetadata +message GenesisMetadata { + option (gogoproto.goproto_getters) = false; + + // store key of metadata without clientID-prefix + bytes key = 1; + // metadata value + bytes value = 2; +} + +// IdentifiedGenesisMetadata has the client metadata with the corresponding +// client id. +message IdentifiedGenesisMetadata { + string client_id = 1; + repeated GenesisMetadata client_metadata = 2 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/core/client/v1/query.proto b/proto/rust-vendored/ibc/core/client/v1/query.proto new file mode 100644 index 0000000..0032306 --- /dev/null +++ b/proto/rust-vendored/ibc/core/client/v1/query.proto @@ -0,0 +1,207 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/client/v1/client.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +// Query provides defines the gRPC querier service +service Query { + // ClientState queries an IBC light client. + rpc ClientState(QueryClientStateRequest) returns (QueryClientStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/client_states/{client_id}"; + } + + // ClientStates queries all the IBC light clients of a chain. + rpc ClientStates(QueryClientStatesRequest) returns (QueryClientStatesResponse) { + option (google.api.http).get = "/ibc/core/client/v1/client_states"; + } + + // ConsensusState queries a consensus state associated with a client state at + // a given height. + rpc ConsensusState(QueryConsensusStateRequest) returns (QueryConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/consensus_states/" + "{client_id}/revision/{revision_number}/" + "height/{revision_height}"; + } + + // ConsensusStates queries all the consensus state associated with a given + // client. + rpc ConsensusStates(QueryConsensusStatesRequest) returns (QueryConsensusStatesResponse) { + option (google.api.http).get = "/ibc/core/client/v1/consensus_states/{client_id}"; + } + + // ConsensusStateHeights queries the height of every consensus states associated with a given client. + rpc ConsensusStateHeights(QueryConsensusStateHeightsRequest) returns (QueryConsensusStateHeightsResponse) { + option (google.api.http).get = "/ibc/core/client/v1/consensus_states/{client_id}/heights"; + } + + // Status queries the status of an IBC client. + rpc ClientStatus(QueryClientStatusRequest) returns (QueryClientStatusResponse) { + option (google.api.http).get = "/ibc/core/client/v1/client_status/{client_id}"; + } + + // ClientParams queries all parameters of the ibc client submodule. + rpc ClientParams(QueryClientParamsRequest) returns (QueryClientParamsResponse) { + option (google.api.http).get = "/ibc/core/client/v1/params"; + } + + // UpgradedClientState queries an Upgraded IBC light client. + rpc UpgradedClientState(QueryUpgradedClientStateRequest) returns (QueryUpgradedClientStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/upgraded_client_states"; + } + + // UpgradedConsensusState queries an Upgraded IBC consensus state. + rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/upgraded_consensus_states"; + } +} + +// QueryClientStateRequest is the request type for the Query/ClientState RPC +// method +message QueryClientStateRequest { + // client state unique identifier + string client_id = 1; +} + +// QueryClientStateResponse is the response type for the Query/ClientState RPC +// method. Besides the client state, it includes a proof and the height from +// which the proof was retrieved. +message QueryClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryClientStatesRequest is the request type for the Query/ClientStates RPC +// method +message QueryClientStatesRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryClientStatesResponse is the response type for the Query/ClientStates RPC +// method. +message QueryClientStatesResponse { + // list of stored ClientStates of the chain. + repeated IdentifiedClientState client_states = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "IdentifiedClientStates"]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryConsensusStateRequest is the request type for the Query/ConsensusState +// RPC method. Besides the consensus state, it includes a proof and the height +// from which the proof was retrieved. +message QueryConsensusStateRequest { + // client identifier + string client_id = 1; + // consensus state revision number + uint64 revision_number = 2; + // consensus state revision height + uint64 revision_height = 3; + // latest_height overrrides the height field and queries the latest stored + // ConsensusState + bool latest_height = 4; +} + +// QueryConsensusStateResponse is the response type for the Query/ConsensusState +// RPC method +message QueryConsensusStateResponse { + // consensus state associated with the client identifier at the given height + google.protobuf.Any consensus_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConsensusStatesRequest is the request type for the Query/ConsensusStates +// RPC method. +message QueryConsensusStatesRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStatesResponse is the response type for the +// Query/ConsensusStates RPC method +message QueryConsensusStatesResponse { + // consensus states associated with the identifier + repeated ConsensusStateWithHeight consensus_states = 1 [(gogoproto.nullable) = false]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights +// RPC method. +message QueryConsensusStateHeightsRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStateHeightsResponse is the response type for the +// Query/ConsensusStateHeights RPC method +message QueryConsensusStateHeightsResponse { + // consensus state heights + repeated Height consensus_state_heights = 1 [(gogoproto.nullable) = false]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryClientStatusRequest is the request type for the Query/ClientStatus RPC +// method +message QueryClientStatusRequest { + // client unique identifier + string client_id = 1; +} + +// QueryClientStatusResponse is the response type for the Query/ClientStatus RPC +// method. It returns the current status of the IBC client. +message QueryClientStatusResponse { + string status = 1; +} + +// QueryClientParamsRequest is the request type for the Query/ClientParams RPC +// method. +message QueryClientParamsRequest {} + +// QueryClientParamsResponse is the response type for the Query/ClientParams RPC +// method. +message QueryClientParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} + +// QueryUpgradedClientStateRequest is the request type for the +// Query/UpgradedClientState RPC method +message QueryUpgradedClientStateRequest {} + +// QueryUpgradedClientStateResponse is the response type for the +// Query/UpgradedClientState RPC method. +message QueryUpgradedClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any upgraded_client_state = 1; +} + +// QueryUpgradedConsensusStateRequest is the request type for the +// Query/UpgradedConsensusState RPC method +message QueryUpgradedConsensusStateRequest {} + +// QueryUpgradedConsensusStateResponse is the response type for the +// Query/UpgradedConsensusState RPC method. +message QueryUpgradedConsensusStateResponse { + // Consensus state associated with the request identifier + google.protobuf.Any upgraded_consensus_state = 1; +} diff --git a/proto/rust-vendored/ibc/core/client/v1/tx.proto b/proto/rust-vendored/ibc/core/client/v1/tx.proto new file mode 100644 index 0000000..d7f8e2f --- /dev/null +++ b/proto/rust-vendored/ibc/core/client/v1/tx.proto @@ -0,0 +1,175 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"; + +import "cosmos/msg/v1/msg.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; + +// Msg defines the ibc/client Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // CreateClient defines a rpc handler method for MsgCreateClient. + rpc CreateClient(MsgCreateClient) returns (MsgCreateClientResponse); + + // UpdateClient defines a rpc handler method for MsgUpdateClient. + rpc UpdateClient(MsgUpdateClient) returns (MsgUpdateClientResponse); + + // UpgradeClient defines a rpc handler method for MsgUpgradeClient. + rpc UpgradeClient(MsgUpgradeClient) returns (MsgUpgradeClientResponse); + + // SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. + rpc SubmitMisbehaviour(MsgSubmitMisbehaviour) returns (MsgSubmitMisbehaviourResponse); + + // RecoverClient defines a rpc handler method for MsgRecoverClient. + rpc RecoverClient(MsgRecoverClient) returns (MsgRecoverClientResponse); + + // IBCSoftwareUpgrade defines a rpc handler method for MsgIBCSoftwareUpgrade. + rpc IBCSoftwareUpgrade(MsgIBCSoftwareUpgrade) returns (MsgIBCSoftwareUpgradeResponse); + + // UpdateClientParams defines a rpc handler method for MsgUpdateParams. + rpc UpdateClientParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgCreateClient defines a message to create an IBC client +message MsgCreateClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // light client state + google.protobuf.Any client_state = 1; + // consensus state associated with the client that corresponds to a given + // height. + google.protobuf.Any consensus_state = 2; + // signer address + string signer = 3; +} + +// MsgCreateClientResponse defines the Msg/CreateClient response type. +message MsgCreateClientResponse {} + +// MsgUpdateClient defines an sdk.Msg to update a IBC client state using +// the given client message. +message MsgUpdateClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // client message to update the light client + google.protobuf.Any client_message = 2; + // signer address + string signer = 3; +} + +// MsgUpdateClientResponse defines the Msg/UpdateClient response type. +message MsgUpdateClientResponse {} + +// MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client +// state +message MsgUpgradeClient { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // upgraded client state + google.protobuf.Any client_state = 2; + // upgraded consensus state, only contains enough information to serve as a + // basis of trust in update logic + google.protobuf.Any consensus_state = 3; + // proof that old chain committed to new client + bytes proof_upgrade_client = 4; + // proof that old chain committed to new consensus state + bytes proof_upgrade_consensus_state = 5; + // signer address + string signer = 6; +} + +// MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. +message MsgUpgradeClientResponse {} + +// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for +// light client misbehaviour. +// This message has been deprecated. Use MsgUpdateClient instead. +message MsgSubmitMisbehaviour { + option deprecated = true; + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1; + // misbehaviour used for freezing the light client + google.protobuf.Any misbehaviour = 2; + // signer address + string signer = 3; +} + +// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response +// type. +message MsgSubmitMisbehaviourResponse {} + +// MsgRecoverClient defines the message used to recover a frozen or expired client. +message MsgRecoverClient { + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "signer"; + + // the client identifier for the client to be updated if the proposal passes + string subject_client_id = 1; + // the substitute client identifier for the client which will replace the subject + // client + string substitute_client_id = 2; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 3; +} + +// MsgRecoverClientResponse defines the Msg/RecoverClient response type. +message MsgRecoverClientResponse {} + +// MsgIBCSoftwareUpgrade defines the message used to schedule an upgrade of an IBC client using a v1 governance proposal +message MsgIBCSoftwareUpgrade { + option (cosmos.msg.v1.signer) = "signer"; + cosmos.upgrade.v1beta1.Plan plan = 1 [(gogoproto.nullable) = false]; + // An UpgradedClientState must be provided to perform an IBC breaking upgrade. + // This will make the chain commit to the correct upgraded (self) client state + // before the upgrade occurs, so that connecting chains can verify that the + // new upgraded client is valid by verifying a proof on the previous version + // of the chain. This will allow IBC connections to persist smoothly across + // planned chain upgrades. Correspondingly, the UpgradedClientState field has been + // deprecated in the Cosmos SDK to allow for this logic to exist solely in + // the 02-client module. + google.protobuf.Any upgraded_client_state = 2; + // signer defaults to the governance account address unless otherwise specified. + string signer = 3; +} + +// MsgIBCSoftwareUpgradeResponse defines the Msg/IBCSoftwareUpgrade response type. +message MsgIBCSoftwareUpgradeResponse {} + +// MsgUpdateParams defines the sdk.Msg type to update the client parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 1; + + // params defines the client parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false]; +} + +// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +message MsgUpdateParamsResponse {} diff --git a/proto/rust-vendored/ibc/core/commitment/v1/commitment.proto b/proto/rust-vendored/ibc/core/commitment/v1/commitment.proto new file mode 100644 index 0000000..bbad400 --- /dev/null +++ b/proto/rust-vendored/ibc/core/commitment/v1/commitment.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; + +package ibc.core.commitment.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/ics23/v1/proofs.proto"; + +// MerkleRoot defines a merkle root hash. +// In the Cosmos SDK, the AppHash of a block header becomes the root. +message MerkleRoot { + option (gogoproto.goproto_getters) = false; + + bytes hash = 1; +} + +// MerklePrefix is merkle path prefixed to the key. +// The constructed key from the Path and the key will be append(Path.KeyPath, +// append(Path.KeyPrefix, key...)) +message MerklePrefix { + bytes key_prefix = 1; +} + +// MerklePath is the path used to verify commitment proofs, which can be an +// arbitrary structured object (defined by a commitment type). +// MerklePath is represented from root-to-leaf +message MerklePath { + option (gogoproto.goproto_stringer) = false; + + repeated string key_path = 1; +} + +// MerkleProof is a wrapper type over a chain of CommitmentProofs. +// It demonstrates membership or non-membership for an element or set of +// elements, verifiable in conjunction with a known commitment root. Proofs +// should be succinct. +// MerkleProofs are ordered from leaf-to-root +message MerkleProof { + repeated cosmos.ics23.v1.CommitmentProof proofs = 1; +} diff --git a/proto/rust-vendored/ibc/core/connection/v1/connection.proto b/proto/rust-vendored/ibc/core/connection/v1/connection.proto new file mode 100644 index 0000000..852f399 --- /dev/null +++ b/proto/rust-vendored/ibc/core/connection/v1/connection.proto @@ -0,0 +1,114 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/commitment/v1/commitment.proto"; + +// ICS03 - Connection Data Structures as defined in +// https://github.com/cosmos/ibc/blob/master/spec/core/ics-003-connection-semantics#data-structures + +// ConnectionEnd defines a stateful object on a chain connected to another +// separate one. +// NOTE: there must only be 2 defined ConnectionEnds to establish +// a connection between two chains. +message ConnectionEnd { + option (gogoproto.goproto_getters) = false; + // client associated with this connection. + string client_id = 1; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection. + repeated Version versions = 2; + // current state of the connection end. + State state = 3; + // counterparty chain associated with this connection. + Counterparty counterparty = 4 [(gogoproto.nullable) = false]; + // delay period that must pass before a consensus state can be used for + // packet-verification NOTE: delay period logic is only implemented by some + // clients. + uint64 delay_period = 5; +} + +// IdentifiedConnection defines a connection with additional connection +// identifier field. +message IdentifiedConnection { + option (gogoproto.goproto_getters) = false; + // connection identifier. + string id = 1; + // client associated with this connection. + string client_id = 2; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection + repeated Version versions = 3; + // current state of the connection end. + State state = 4; + // counterparty chain associated with this connection. + Counterparty counterparty = 5 [(gogoproto.nullable) = false]; + // delay period associated with this connection. + uint64 delay_period = 6; +} + +// State defines if a connection is in one of the following states: +// INIT, TRYOPEN, OPEN or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNINITIALIZED"]; + // A connection end has just started the opening handshake. + STATE_INIT = 1 [(gogoproto.enumvalue_customname) = "INIT"]; + // A connection end has acknowledged the handshake step on the counterparty + // chain. + STATE_TRYOPEN = 2 [(gogoproto.enumvalue_customname) = "TRYOPEN"]; + // A connection end has completed the handshake. + STATE_OPEN = 3 [(gogoproto.enumvalue_customname) = "OPEN"]; +} + +// Counterparty defines the counterparty chain associated with a connection end. +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // identifies the client on the counterparty chain associated with a given + // connection. + string client_id = 1; + // identifies the connection end on the counterparty chain associated with a + // given connection. + string connection_id = 2; + // commitment merkle prefix of the counterparty chain. + ibc.core.commitment.v1.MerklePrefix prefix = 3 [(gogoproto.nullable) = false]; +} + +// ClientPaths define all the connection paths for a client state. +message ClientPaths { + // list of connection paths + repeated string paths = 1; +} + +// ConnectionPaths define all the connection paths for a given client state. +message ConnectionPaths { + // client state unique identifier + string client_id = 1; + // list of connection paths + repeated string paths = 2; +} + +// Version defines the versioning scheme used to negotiate the IBC verison in +// the connection handshake. +message Version { + option (gogoproto.goproto_getters) = false; + + // unique version identifier + string identifier = 1; + // list of features compatible with the specified identifier + repeated string features = 2; +} + +// Params defines the set of Connection parameters. +message Params { + // maximum expected time per block (in nanoseconds), used to enforce block delay. This parameter should reflect the + // largest amount of time that the chain might reasonably take to produce the next block under normal operating + // conditions. A safe choice is 3-5x the expected time per block. + uint64 max_expected_time_per_block = 1; +} diff --git a/proto/rust-vendored/ibc/core/connection/v1/genesis.proto b/proto/rust-vendored/ibc/core/connection/v1/genesis.proto new file mode 100644 index 0000000..a5eb6b3 --- /dev/null +++ b/proto/rust-vendored/ibc/core/connection/v1/genesis.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// GenesisState defines the ibc connection submodule's genesis state. +message GenesisState { + repeated IdentifiedConnection connections = 1 [(gogoproto.nullable) = false]; + repeated ConnectionPaths client_connection_paths = 2 [(gogoproto.nullable) = false]; + // the sequence for the next generated connection identifier + uint64 next_connection_sequence = 3; + Params params = 4 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/core/connection/v1/query.proto b/proto/rust-vendored/ibc/core/connection/v1/query.proto new file mode 100644 index 0000000..c0f1a6f --- /dev/null +++ b/proto/rust-vendored/ibc/core/connection/v1/query.proto @@ -0,0 +1,152 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; + +// Query provides defines the gRPC querier service +service Query { + // Connection queries an IBC connection end. + rpc Connection(QueryConnectionRequest) returns (QueryConnectionResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/connections/{connection_id}"; + } + + // Connections queries all the IBC connections of a chain. + rpc Connections(QueryConnectionsRequest) returns (QueryConnectionsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/connections"; + } + + // ClientConnections queries the connection paths associated with a client + // state. + rpc ClientConnections(QueryClientConnectionsRequest) returns (QueryClientConnectionsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/client_connections/{client_id}"; + } + + // ConnectionClientState queries the client state associated with the + // connection. + rpc ConnectionClientState(QueryConnectionClientStateRequest) returns (QueryConnectionClientStateResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/connections/{connection_id}/client_state"; + } + + // ConnectionConsensusState queries the consensus state associated with the + // connection. + rpc ConnectionConsensusState(QueryConnectionConsensusStateRequest) returns (QueryConnectionConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/connections/{connection_id}/consensus_state/" + "revision/{revision_number}/height/{revision_height}"; + } + + // ConnectionParams queries all parameters of the ibc connection submodule. + rpc ConnectionParams(QueryConnectionParamsRequest) returns (QueryConnectionParamsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1/params"; + } +} + +// QueryConnectionRequest is the request type for the Query/Connection RPC +// method +message QueryConnectionRequest { + // connection unique identifier + string connection_id = 1; +} + +// QueryConnectionResponse is the response type for the Query/Connection RPC +// method. Besides the connection end, it includes a proof and the height from +// which the proof was retrieved. +message QueryConnectionResponse { + // connection associated with the request identifier + ibc.core.connection.v1.ConnectionEnd connection = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionsRequest is the request type for the Query/Connections RPC +// method +message QueryConnectionsRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryConnectionsResponse is the response type for the Query/Connections RPC +// method. +message QueryConnectionsResponse { + // list of stored connections of the chain. + repeated ibc.core.connection.v1.IdentifiedConnection connections = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryClientConnectionsRequest is the request type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsRequest { + // client identifier associated with a connection + string client_id = 1; +} + +// QueryClientConnectionsResponse is the response type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsResponse { + // slice of all the connection paths associated with a client. + repeated string connection_paths = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was generated + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionClientStateRequest is the request type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateRequest { + // connection identifier + string connection_id = 1; +} + +// QueryConnectionClientStateResponse is the response type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionConsensusStateRequest is the request type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateRequest { + // connection identifier + string connection_id = 1; + uint64 revision_number = 2; + uint64 revision_height = 3; +} + +// QueryConnectionConsensusStateResponse is the response type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} + +// QueryConnectionParamsRequest is the request type for the Query/ConnectionParams RPC method. +message QueryConnectionParamsRequest {} + +// QueryConnectionParamsResponse is the response type for the Query/ConnectionParams RPC method. +message QueryConnectionParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/core/connection/v1/tx.proto b/proto/rust-vendored/ibc/core/connection/v1/tx.proto new file mode 100644 index 0000000..d5465d8 --- /dev/null +++ b/proto/rust-vendored/ibc/core/connection/v1/tx.proto @@ -0,0 +1,146 @@ +syntax = "proto3"; + +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// Msg defines the ibc/connection Msg service. +service Msg { + option (cosmos.msg.v1.service) = true; + + // ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. + rpc ConnectionOpenInit(MsgConnectionOpenInit) returns (MsgConnectionOpenInitResponse); + + // ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. + rpc ConnectionOpenTry(MsgConnectionOpenTry) returns (MsgConnectionOpenTryResponse); + + // ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. + rpc ConnectionOpenAck(MsgConnectionOpenAck) returns (MsgConnectionOpenAckResponse); + + // ConnectionOpenConfirm defines a rpc handler method for + // MsgConnectionOpenConfirm. + rpc ConnectionOpenConfirm(MsgConnectionOpenConfirm) returns (MsgConnectionOpenConfirmResponse); + + // UpdateConnectionParams defines a rpc handler method for + // MsgUpdateParams. + rpc UpdateConnectionParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); +} + +// MsgConnectionOpenInit defines the msg sent by an account on Chain A to +// initialize a connection with Chain B. +message MsgConnectionOpenInit { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string client_id = 1; + Counterparty counterparty = 2 [(gogoproto.nullable) = false]; + Version version = 3; + uint64 delay_period = 4; + string signer = 5; +} + +// MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response +// type. +message MsgConnectionOpenInitResponse {} + +// MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a +// connection on Chain B. +message MsgConnectionOpenTry { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string client_id = 1; + // Deprecated: this field is unused. Crossing hellos are no longer supported in core IBC. + string previous_connection_id = 2 [deprecated = true]; + google.protobuf.Any client_state = 3; + Counterparty counterparty = 4 [(gogoproto.nullable) = false]; + uint64 delay_period = 5; + repeated Version counterparty_versions = 6; + ibc.core.client.v1.Height proof_height = 7 [(gogoproto.nullable) = false]; + // proof of the initialization the connection on Chain A: `UNITIALIZED -> + // INIT` + bytes proof_init = 8; + // proof of client state included in message + bytes proof_client = 9; + // proof of client consensus state + bytes proof_consensus = 10; + ibc.core.client.v1.Height consensus_height = 11 [(gogoproto.nullable) = false]; + string signer = 12; + // optional proof data for host state machines that are unable to introspect their own consensus state + bytes host_consensus_state_proof = 13; +} + +// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. +message MsgConnectionOpenTryResponse {} + +// MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to +// acknowledge the change of connection state to TRYOPEN on Chain B. +message MsgConnectionOpenAck { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string connection_id = 1; + string counterparty_connection_id = 2; + Version version = 3; + google.protobuf.Any client_state = 4; + ibc.core.client.v1.Height proof_height = 5 [(gogoproto.nullable) = false]; + // proof of the initialization the connection on Chain B: `UNITIALIZED -> + // TRYOPEN` + bytes proof_try = 6; + // proof of client state included in message + bytes proof_client = 7; + // proof of client consensus state + bytes proof_consensus = 8; + ibc.core.client.v1.Height consensus_height = 9 [(gogoproto.nullable) = false]; + string signer = 10; + // optional proof data for host state machines that are unable to introspect their own consensus state + bytes host_consensus_state_proof = 11; +} + +// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. +message MsgConnectionOpenAckResponse {} + +// MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of connection state to OPEN on Chain A. +message MsgConnectionOpenConfirm { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + string connection_id = 1; + // proof for the change of the connection state on Chain A: `INIT -> OPEN` + bytes proof_ack = 2; + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; + string signer = 4; +} + +// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm +// response type. +message MsgConnectionOpenConfirmResponse {} + +// MsgUpdateParams defines the sdk.Msg type to update the connection parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "signer"; + + option (gogoproto.goproto_getters) = false; + + // signer address (it may be the the address that controls the module, which defaults to x/gov unless overwritten). + string signer = 1; + + // params defines the connection parameters to update. + // + // NOTE: All parameters must be supplied. + Params params = 2 [(gogoproto.nullable) = false]; +} + +// MsgUpdateParamsResponse defines the MsgUpdateParams response type. +message MsgUpdateParamsResponse {} \ No newline at end of file diff --git a/proto/rust-vendored/ibc/core/types/v1/genesis.proto b/proto/rust-vendored/ibc/core/types/v1/genesis.proto new file mode 100644 index 0000000..4b34f68 --- /dev/null +++ b/proto/rust-vendored/ibc/core/types/v1/genesis.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package ibc.core.types.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/genesis.proto"; +import "ibc/core/connection/v1/genesis.proto"; +import "ibc/core/channel/v1/genesis.proto"; + +// GenesisState defines the ibc module's genesis state. +message GenesisState { + // ICS002 - Clients genesis state + ibc.core.client.v1.GenesisState client_genesis = 1 [(gogoproto.nullable) = false]; + // ICS003 - Connections genesis state + ibc.core.connection.v1.GenesisState connection_genesis = 2 [(gogoproto.nullable) = false]; + // ICS004 - Channel genesis state + ibc.core.channel.v1.GenesisState channel_genesis = 3 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/lightclients/localhost/v2/localhost.proto b/proto/rust-vendored/ibc/lightclients/localhost/v2/localhost.proto new file mode 100644 index 0000000..635db85 --- /dev/null +++ b/proto/rust-vendored/ibc/lightclients/localhost/v2/localhost.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +package ibc.lightclients.localhost.v2; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/light-clients/09-localhost;localhost"; + +import "ibc/core/client/v1/client.proto"; +import "gogoproto/gogo.proto"; + +// ClientState defines the 09-localhost client state +message ClientState { + option (gogoproto.goproto_getters) = false; + + // the latest block height + ibc.core.client.v1.Height latest_height = 1 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/ibc/lightclients/solomachine/v2/solomachine.proto b/proto/rust-vendored/ibc/lightclients/solomachine/v2/solomachine.proto new file mode 100644 index 0000000..9dc2690 --- /dev/null +++ b/proto/rust-vendored/ibc/lightclients/solomachine/v2/solomachine.proto @@ -0,0 +1,189 @@ +syntax = "proto3"; + +package ibc.lightclients.solomachine.v2; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/core/02-client/migrations/v7"; + +import "ibc/core/connection/v1/connection.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// ClientState defines a solo machine client that tracks the current consensus +// state and if the client is frozen. +message ClientState { + option (gogoproto.goproto_getters) = false; + // latest sequence of the client state + uint64 sequence = 1; + // frozen sequence of the solo machine + bool is_frozen = 2; + ConsensusState consensus_state = 3; + // when set to true, will allow governance to update a solo machine client. + // The client will be unfrozen if it is frozen. + bool allow_update_after_proposal = 4; +} + +// ConsensusState defines a solo machine consensus state. The sequence of a +// consensus state is contained in the "height" key used in storing the +// consensus state. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // public key of the solo machine + google.protobuf.Any public_key = 1; + // diversifier allows the same public key to be re-used across different solo + // machine clients (potentially on different chains) without being considered + // misbehaviour. + string diversifier = 2; + uint64 timestamp = 3; +} + +// Header defines a solo machine consensus header +message Header { + option (gogoproto.goproto_getters) = false; + // sequence to update solo machine public key at + uint64 sequence = 1; + uint64 timestamp = 2; + bytes signature = 3; + google.protobuf.Any new_public_key = 4; + string new_diversifier = 5; +} + +// Misbehaviour defines misbehaviour for a solo machine which consists +// of a sequence and two signatures over different messages at that sequence. +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + string client_id = 1; + uint64 sequence = 2; + SignatureAndData signature_one = 3; + SignatureAndData signature_two = 4; +} + +// SignatureAndData contains a signature and the data signed over to create that +// signature. +message SignatureAndData { + option (gogoproto.goproto_getters) = false; + bytes signature = 1; + DataType data_type = 2; + bytes data = 3; + uint64 timestamp = 4; +} + +// TimestampedSignatureData contains the signature data and the timestamp of the +// signature. +message TimestampedSignatureData { + option (gogoproto.goproto_getters) = false; + bytes signature_data = 1; + uint64 timestamp = 2; +} + +// SignBytes defines the signed bytes used for signature verification. +message SignBytes { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; + uint64 timestamp = 2; + string diversifier = 3; + // type of the data used + DataType data_type = 4; + // marshaled data + bytes data = 5; +} + +// DataType defines the type of solo machine proof being created. This is done +// to preserve uniqueness of different data sign byte encodings. +enum DataType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNSPECIFIED"]; + // Data type for client state verification + DATA_TYPE_CLIENT_STATE = 1 [(gogoproto.enumvalue_customname) = "CLIENT"]; + // Data type for consensus state verification + DATA_TYPE_CONSENSUS_STATE = 2 [(gogoproto.enumvalue_customname) = "CONSENSUS"]; + // Data type for connection state verification + DATA_TYPE_CONNECTION_STATE = 3 [(gogoproto.enumvalue_customname) = "CONNECTION"]; + // Data type for channel state verification + DATA_TYPE_CHANNEL_STATE = 4 [(gogoproto.enumvalue_customname) = "CHANNEL"]; + // Data type for packet commitment verification + DATA_TYPE_PACKET_COMMITMENT = 5 [(gogoproto.enumvalue_customname) = "PACKETCOMMITMENT"]; + // Data type for packet acknowledgement verification + DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6 [(gogoproto.enumvalue_customname) = "PACKETACKNOWLEDGEMENT"]; + // Data type for packet receipt absence verification + DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7 [(gogoproto.enumvalue_customname) = "PACKETRECEIPTABSENCE"]; + // Data type for next sequence recv verification + DATA_TYPE_NEXT_SEQUENCE_RECV = 8 [(gogoproto.enumvalue_customname) = "NEXTSEQUENCERECV"]; + // Data type for header verification + DATA_TYPE_HEADER = 9 [(gogoproto.enumvalue_customname) = "HEADER"]; +} + +// HeaderData returns the SignBytes data for update verification. +message HeaderData { + option (gogoproto.goproto_getters) = false; + + // header public key + google.protobuf.Any new_pub_key = 1; + // header diversifier + string new_diversifier = 2; +} + +// ClientStateData returns the SignBytes data for client state verification. +message ClientStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any client_state = 2; +} + +// ConsensusStateData returns the SignBytes data for consensus state +// verification. +message ConsensusStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any consensus_state = 2; +} + +// ConnectionStateData returns the SignBytes data for connection state +// verification. +message ConnectionStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.connection.v1.ConnectionEnd connection = 2; +} + +// ChannelStateData returns the SignBytes data for channel state +// verification. +message ChannelStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.channel.v1.Channel channel = 2; +} + +// PacketCommitmentData returns the SignBytes data for packet commitment +// verification. +message PacketCommitmentData { + bytes path = 1; + bytes commitment = 2; +} + +// PacketAcknowledgementData returns the SignBytes data for acknowledgement +// verification. +message PacketAcknowledgementData { + bytes path = 1; + bytes acknowledgement = 2; +} + +// PacketReceiptAbsenceData returns the SignBytes data for +// packet receipt absence verification. +message PacketReceiptAbsenceData { + bytes path = 1; +} + +// NextSequenceRecvData returns the SignBytes data for verification of the next +// sequence to be received. +message NextSequenceRecvData { + bytes path = 1; + uint64 next_seq_recv = 2; +} diff --git a/proto/rust-vendored/ibc/lightclients/solomachine/v3/solomachine.proto b/proto/rust-vendored/ibc/lightclients/solomachine/v3/solomachine.proto new file mode 100644 index 0000000..194905b --- /dev/null +++ b/proto/rust-vendored/ibc/lightclients/solomachine/v3/solomachine.proto @@ -0,0 +1,99 @@ +syntax = "proto3"; + +package ibc.lightclients.solomachine.v3; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine;solomachine"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// ClientState defines a solo machine client that tracks the current consensus +// state and if the client is frozen. +message ClientState { + option (gogoproto.goproto_getters) = false; + // latest sequence of the client state + uint64 sequence = 1; + // frozen sequence of the solo machine + bool is_frozen = 2; + ConsensusState consensus_state = 3; +} + +// ConsensusState defines a solo machine consensus state. The sequence of a +// consensus state is contained in the "height" key used in storing the +// consensus state. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // public key of the solo machine + google.protobuf.Any public_key = 1; + // diversifier allows the same public key to be re-used across different solo + // machine clients (potentially on different chains) without being considered + // misbehaviour. + string diversifier = 2; + uint64 timestamp = 3; +} + +// Header defines a solo machine consensus header +message Header { + option (gogoproto.goproto_getters) = false; + + uint64 timestamp = 1; + bytes signature = 2; + google.protobuf.Any new_public_key = 3; + string new_diversifier = 4; +} + +// Misbehaviour defines misbehaviour for a solo machine which consists +// of a sequence and two signatures over different messages at that sequence. +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; + SignatureAndData signature_one = 2; + SignatureAndData signature_two = 3; +} + +// SignatureAndData contains a signature and the data signed over to create that +// signature. +message SignatureAndData { + option (gogoproto.goproto_getters) = false; + + bytes signature = 1; + bytes path = 2; + bytes data = 3; + uint64 timestamp = 4; +} + +// TimestampedSignatureData contains the signature data and the timestamp of the +// signature. +message TimestampedSignatureData { + option (gogoproto.goproto_getters) = false; + + bytes signature_data = 1; + uint64 timestamp = 2; +} + +// SignBytes defines the signed bytes used for signature verification. +message SignBytes { + option (gogoproto.goproto_getters) = false; + + // the sequence number + uint64 sequence = 1; + // the proof timestamp + uint64 timestamp = 2; + // the public key diversifier + string diversifier = 3; + // the standardised path bytes + bytes path = 4; + // the marshaled data bytes + bytes data = 5; +} + +// HeaderData returns the SignBytes data for update verification. +message HeaderData { + option (gogoproto.goproto_getters) = false; + + // header public key + google.protobuf.Any new_pub_key = 1; + // header diversifier + string new_diversifier = 2; +} diff --git a/proto/rust-vendored/ibc/lightclients/tendermint/v1/tendermint.proto b/proto/rust-vendored/ibc/lightclients/tendermint/v1/tendermint.proto new file mode 100644 index 0000000..5053612 --- /dev/null +++ b/proto/rust-vendored/ibc/lightclients/tendermint/v1/tendermint.proto @@ -0,0 +1,101 @@ +syntax = "proto3"; + +package ibc.lightclients.tendermint.v1; + +option go_package = "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint;tendermint"; + +import "tendermint/types/validator.proto"; +import "tendermint/types/types.proto"; +import "cosmos/ics23/v1/proofs.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/commitment/v1/commitment.proto"; +import "gogoproto/gogo.proto"; + +// ClientState from Tendermint tracks the current validator set, latest height, +// and a possible frozen height. +message ClientState { + option (gogoproto.goproto_getters) = false; + + string chain_id = 1; + Fraction trust_level = 2 [(gogoproto.nullable) = false]; + // duration of the period since the LastestTimestamp during which the + // submitted headers are valid for upgrade + google.protobuf.Duration trusting_period = 3 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + // duration of the staking unbonding period + google.protobuf.Duration unbonding_period = 4 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + // defines how much new (untrusted) header's Time can drift into the future. + google.protobuf.Duration max_clock_drift = 5 [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + // Block height when the client was frozen due to a misbehaviour + ibc.core.client.v1.Height frozen_height = 6 [(gogoproto.nullable) = false]; + // Latest height the client was updated to + ibc.core.client.v1.Height latest_height = 7 [(gogoproto.nullable) = false]; + + // Proof specifications used in verifying counterparty state + repeated cosmos.ics23.v1.ProofSpec proof_specs = 8; + + // Path at which next upgraded client will be committed. + // Each element corresponds to the key for a single CommitmentProof in the + // chained proof. NOTE: ClientState must stored under + // `{upgradePath}/{upgradeHeight}/clientState` ConsensusState must be stored + // under `{upgradepath}/{upgradeHeight}/consensusState` For SDK chains using + // the default upgrade module, upgrade_path should be []string{"upgrade", + // "upgradedIBCState"}` + repeated string upgrade_path = 9; + + // allow_update_after_expiry is deprecated + bool allow_update_after_expiry = 10 [deprecated = true]; + // allow_update_after_misbehaviour is deprecated + bool allow_update_after_misbehaviour = 11 [deprecated = true]; +} + +// ConsensusState defines the consensus state from Tendermint. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + + // timestamp that corresponds to the block height in which the ConsensusState + // was stored. + google.protobuf.Timestamp timestamp = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + // commitment root (i.e app hash) + ibc.core.commitment.v1.MerkleRoot root = 2 [(gogoproto.nullable) = false]; + bytes next_validators_hash = 3 [(gogoproto.casttype) = "github.com/cometbft/cometbft/libs/bytes.HexBytes"]; +} + +// Misbehaviour is a wrapper over two conflicting Headers +// that implements Misbehaviour interface expected by ICS-02 +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + + // ClientID is deprecated + string client_id = 1 [deprecated = true]; + Header header_1 = 2 [(gogoproto.customname) = "Header1"]; + Header header_2 = 3 [(gogoproto.customname) = "Header2"]; +} + +// Header defines the Tendermint client consensus Header. +// It encapsulates all the information necessary to update from a trusted +// Tendermint ConsensusState. The inclusion of TrustedHeight and +// TrustedValidators allows this update to process correctly, so long as the +// ConsensusState for the TrustedHeight exists, this removes race conditions +// among relayers The SignedHeader and ValidatorSet are the new untrusted update +// fields for the client. The TrustedHeight is the height of a stored +// ConsensusState on the client that will be used to verify the new untrusted +// header. The Trusted ConsensusState must be within the unbonding period of +// current time in order to correctly verify, and the TrustedValidators must +// hash to TrustedConsensusState.NextValidatorsHash since that is the last +// trusted validator set at the TrustedHeight. +message Header { + .tendermint.types.SignedHeader signed_header = 1 [(gogoproto.embed) = true]; + + .tendermint.types.ValidatorSet validator_set = 2; + ibc.core.client.v1.Height trusted_height = 3 [(gogoproto.nullable) = false]; + .tendermint.types.ValidatorSet trusted_validators = 4; +} + +// Fraction defines the protobuf message type for tmmath.Fraction that only +// supports positive values. +message Fraction { + uint64 numerator = 1; + uint64 denominator = 2; +} diff --git a/proto/rust-vendored/tendermint/abci/types.proto b/proto/rust-vendored/tendermint/abci/types.proto new file mode 100644 index 0000000..cf9927d --- /dev/null +++ b/proto/rust-vendored/tendermint/abci/types.proto @@ -0,0 +1,444 @@ +syntax = "proto3"; +package tendermint.abci; + +option go_package = "github.com/cometbft/cometbft/abci/types"; + +// For more information on gogo.proto, see: +// https://github.com/cosmos/gogoproto/blob/master/extensions.md +import "tendermint/crypto/proof.proto"; +import "tendermint/types/types.proto"; +import "tendermint/crypto/keys.proto"; +import "tendermint/types/params.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; + +// This file is copied from http://github.com/tendermint/abci +// NOTE: When using custom types, mind the warnings. +// https://github.com/cosmos/gogoproto/blob/master/custom_types.md#warnings-and-issues + +//---------------------------------------- +// Request types + +message Request { + oneof value { + RequestEcho echo = 1; + RequestFlush flush = 2; + RequestInfo info = 3; + RequestInitChain init_chain = 5; + RequestQuery query = 6; + RequestBeginBlock begin_block = 7; + RequestCheckTx check_tx = 8; + RequestDeliverTx deliver_tx = 9; + RequestEndBlock end_block = 10; + RequestCommit commit = 11; + RequestListSnapshots list_snapshots = 12; + RequestOfferSnapshot offer_snapshot = 13; + RequestLoadSnapshotChunk load_snapshot_chunk = 14; + RequestApplySnapshotChunk apply_snapshot_chunk = 15; + RequestPrepareProposal prepare_proposal = 16; + RequestProcessProposal process_proposal = 17; + } + reserved 4; +} + +message RequestEcho { + string message = 1; +} + +message RequestFlush {} + +message RequestInfo { + string version = 1; + uint64 block_version = 2; + uint64 p2p_version = 3; + string abci_version = 4; +} + +message RequestInitChain { + google.protobuf.Timestamp time = 1 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + string chain_id = 2; + tendermint.types.ConsensusParams consensus_params = 3; + repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false]; + bytes app_state_bytes = 5; + int64 initial_height = 6; +} + +message RequestQuery { + bytes data = 1; + string path = 2; + int64 height = 3; + bool prove = 4; +} + +message RequestBeginBlock { + bytes hash = 1; + tendermint.types.Header header = 2 [(gogoproto.nullable) = false]; + CommitInfo last_commit_info = 3 [(gogoproto.nullable) = false]; + repeated Misbehavior byzantine_validators = 4 [(gogoproto.nullable) = false]; +} + +enum CheckTxType { + NEW = 0 [(gogoproto.enumvalue_customname) = "New"]; + RECHECK = 1 [(gogoproto.enumvalue_customname) = "Recheck"]; +} + +message RequestCheckTx { + bytes tx = 1; + CheckTxType type = 2; +} + +message RequestDeliverTx { + bytes tx = 1; +} + +message RequestEndBlock { + int64 height = 1; +} + +message RequestCommit {} + +// lists available snapshots +message RequestListSnapshots {} + +// offers a snapshot to the application +message RequestOfferSnapshot { + Snapshot snapshot = 1; // snapshot offered by peers + bytes app_hash = 2; // light client-verified app hash for snapshot height +} + +// loads a snapshot chunk +message RequestLoadSnapshotChunk { + uint64 height = 1; + uint32 format = 2; + uint32 chunk = 3; +} + +// Applies a snapshot chunk +message RequestApplySnapshotChunk { + uint32 index = 1; + bytes chunk = 2; + string sender = 3; +} + +message RequestPrepareProposal { + // the modified transactions cannot exceed this size. + int64 max_tx_bytes = 1; + // txs is an array of transactions that will be included in a block, + // sent to the app for possible modifications. + repeated bytes txs = 2; + ExtendedCommitInfo local_last_commit = 3 [(gogoproto.nullable) = false]; + repeated Misbehavior misbehavior = 4 [(gogoproto.nullable) = false]; + int64 height = 5; + google.protobuf.Timestamp time = 6 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes next_validators_hash = 7; + // address of the public key of the validator proposing the block. + bytes proposer_address = 8; +} + +message RequestProcessProposal { + repeated bytes txs = 1; + CommitInfo proposed_last_commit = 2 [(gogoproto.nullable) = false]; + repeated Misbehavior misbehavior = 3 [(gogoproto.nullable) = false]; + // hash is the merkle root hash of the fields of the proposed block. + bytes hash = 4; + int64 height = 5; + google.protobuf.Timestamp time = 6 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes next_validators_hash = 7; + // address of the public key of the original proposer of the block. + bytes proposer_address = 8; +} + +//---------------------------------------- +// Response types + +message Response { + oneof value { + ResponseException exception = 1; + ResponseEcho echo = 2; + ResponseFlush flush = 3; + ResponseInfo info = 4; + ResponseInitChain init_chain = 6; + ResponseQuery query = 7; + ResponseBeginBlock begin_block = 8; + ResponseCheckTx check_tx = 9; + ResponseDeliverTx deliver_tx = 10; + ResponseEndBlock end_block = 11; + ResponseCommit commit = 12; + ResponseListSnapshots list_snapshots = 13; + ResponseOfferSnapshot offer_snapshot = 14; + ResponseLoadSnapshotChunk load_snapshot_chunk = 15; + ResponseApplySnapshotChunk apply_snapshot_chunk = 16; + ResponsePrepareProposal prepare_proposal = 17; + ResponseProcessProposal process_proposal = 18; + } + reserved 5; +} + +// nondeterministic +message ResponseException { + string error = 1; +} + +message ResponseEcho { + string message = 1; +} + +message ResponseFlush {} + +message ResponseInfo { + string data = 1; + + string version = 2; + uint64 app_version = 3; + + int64 last_block_height = 4; + bytes last_block_app_hash = 5; +} + +message ResponseInitChain { + tendermint.types.ConsensusParams consensus_params = 1; + repeated ValidatorUpdate validators = 2 [(gogoproto.nullable) = false]; + bytes app_hash = 3; +} + +message ResponseQuery { + uint32 code = 1; + // bytes data = 2; // use "value" instead. + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 index = 5; + bytes key = 6; + bytes value = 7; + tendermint.crypto.ProofOps proof_ops = 8; + int64 height = 9; + string codespace = 10; +} + +message ResponseBeginBlock { + repeated Event events = 1 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; +} + +message ResponseCheckTx { + uint32 code = 1; + bytes data = 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 gas_wanted = 5 [json_name = "gas_wanted"]; + int64 gas_used = 6 [json_name = "gas_used"]; + repeated Event events = 7 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; + string codespace = 8; + string sender = 9; + int64 priority = 10; + + // mempool_error is set by CometBFT. + // ABCI applictions creating a ResponseCheckTX should not set mempool_error. + string mempool_error = 11; +} + +message ResponseDeliverTx { + uint32 code = 1; + bytes data = 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 gas_wanted = 5 [json_name = "gas_wanted"]; + int64 gas_used = 6 [json_name = "gas_used"]; + repeated Event events = 7 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "events,omitempty" + ]; // nondeterministic + string codespace = 8; +} + +message ResponseEndBlock { + repeated ValidatorUpdate validator_updates = 1 [(gogoproto.nullable) = false]; + tendermint.types.ConsensusParams consensus_param_updates = 2; + repeated Event events = 3 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; +} + +message ResponseCommit { + // reserve 1 + bytes data = 2; + int64 retain_height = 3; +} + +message ResponseListSnapshots { + repeated Snapshot snapshots = 1; +} + +message ResponseOfferSnapshot { + Result result = 1; + + enum Result { + UNKNOWN = 0; // Unknown result, abort all snapshot restoration + ACCEPT = 1; // Snapshot accepted, apply chunks + ABORT = 2; // Abort all snapshot restoration + REJECT = 3; // Reject this specific snapshot, try others + REJECT_FORMAT = 4; // Reject all snapshots of this format, try others + REJECT_SENDER = 5; // Reject all snapshots from the sender(s), try others + } +} + +message ResponseLoadSnapshotChunk { + bytes chunk = 1; +} + +message ResponseApplySnapshotChunk { + Result result = 1; + repeated uint32 refetch_chunks = 2; // Chunks to refetch and reapply + repeated string reject_senders = 3; // Chunk senders to reject and ban + + enum Result { + UNKNOWN = 0; // Unknown result, abort all snapshot restoration + ACCEPT = 1; // Chunk successfully accepted + ABORT = 2; // Abort all snapshot restoration + RETRY = 3; // Retry chunk (combine with refetch and reject) + RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject) + REJECT_SNAPSHOT = 5; // Reject this snapshot, try others + } +} + +message ResponsePrepareProposal { + repeated bytes txs = 1; +} + +message ResponseProcessProposal { + ProposalStatus status = 1; + + enum ProposalStatus { + UNKNOWN = 0; + ACCEPT = 1; + REJECT = 2; + } +} + +//---------------------------------------- +// Misc. + +message CommitInfo { + int32 round = 1; + repeated VoteInfo votes = 2 [(gogoproto.nullable) = false]; +} + +message ExtendedCommitInfo { + // The round at which the block proposer decided in the previous height. + int32 round = 1; + // List of validators' addresses in the last validator set with their voting + // information, including vote extensions. + repeated ExtendedVoteInfo votes = 2 [(gogoproto.nullable) = false]; +} + +// Event allows application developers to attach additional information to +// ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. +// Later, transactions may be queried using these events. +message Event { + string type = 1; + repeated EventAttribute attributes = 2 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "attributes,omitempty" + ]; +} + +// EventAttribute is a single key-value pair, associated with an event. +message EventAttribute { + string key = 1; + string value = 2; + bool index = 3; // nondeterministic +} + +// TxResult contains results of executing the transaction. +// +// One usage is indexing transaction results. +message TxResult { + int64 height = 1; + uint32 index = 2; + bytes tx = 3; + ResponseDeliverTx result = 4 [(gogoproto.nullable) = false]; +} + +//---------------------------------------- +// Blockchain Types + +// Validator +message Validator { + bytes address = 1; // The first 20 bytes of SHA256(public key) + // PubKey pub_key = 2 [(gogoproto.nullable)=false]; + int64 power = 3; // The voting power +} + +// ValidatorUpdate +message ValidatorUpdate { + tendermint.crypto.PublicKey pub_key = 1 [(gogoproto.nullable) = false]; + int64 power = 2; +} + +// VoteInfo +message VoteInfo { + Validator validator = 1 [(gogoproto.nullable) = false]; + bool signed_last_block = 2; +} + +message ExtendedVoteInfo { + Validator validator = 1 [(gogoproto.nullable) = false]; + bool signed_last_block = 2; + bytes vote_extension = 3; // Reserved for future use +} + +enum MisbehaviorType { + UNKNOWN = 0; + DUPLICATE_VOTE = 1; + LIGHT_CLIENT_ATTACK = 2; +} + +message Misbehavior { + MisbehaviorType type = 1; + // The offending validator + Validator validator = 2 [(gogoproto.nullable) = false]; + // The height when the offense occurred + int64 height = 3; + // The corresponding time where the offense occurred + google.protobuf.Timestamp time = 4 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + // Total voting power of the validator set in case the ABCI application does + // not store historical validators. + // https://github.com/tendermint/tendermint/issues/4581 + int64 total_voting_power = 5; +} + +//---------------------------------------- +// State Sync Types + +message Snapshot { + uint64 height = 1; // The height at which the snapshot was taken + uint32 format = 2; // The application-specific snapshot format + uint32 chunks = 3; // Number of chunks in the snapshot + bytes hash = 4; // Arbitrary snapshot hash, equal only if identical + bytes metadata = 5; // Arbitrary application metadata +} + +//---------------------------------------- +// Service Definition + +service ABCIApplication { + rpc Echo(RequestEcho) returns (ResponseEcho); + rpc Flush(RequestFlush) returns (ResponseFlush); + rpc Info(RequestInfo) returns (ResponseInfo); + rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); + rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); + rpc Query(RequestQuery) returns (ResponseQuery); + rpc Commit(RequestCommit) returns (ResponseCommit); + rpc InitChain(RequestInitChain) returns (ResponseInitChain); + rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); + rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); + rpc ListSnapshots(RequestListSnapshots) returns (ResponseListSnapshots); + rpc OfferSnapshot(RequestOfferSnapshot) returns (ResponseOfferSnapshot); + rpc LoadSnapshotChunk(RequestLoadSnapshotChunk) + returns (ResponseLoadSnapshotChunk); + rpc ApplySnapshotChunk(RequestApplySnapshotChunk) + returns (ResponseApplySnapshotChunk); + rpc PrepareProposal(RequestPrepareProposal) returns (ResponsePrepareProposal); + rpc ProcessProposal(RequestProcessProposal) returns (ResponseProcessProposal); +} diff --git a/proto/rust-vendored/tendermint/crypto/keys.proto b/proto/rust-vendored/tendermint/crypto/keys.proto new file mode 100644 index 0000000..8fa192f --- /dev/null +++ b/proto/rust-vendored/tendermint/crypto/keys.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package tendermint.crypto; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/crypto"; + +import "gogoproto/gogo.proto"; + +// PublicKey defines the keys available for use with Validators +message PublicKey { + option (gogoproto.compare) = true; + option (gogoproto.equal) = true; + + oneof sum { + bytes ed25519 = 1; + bytes secp256k1 = 2; + } +} diff --git a/proto/rust-vendored/tendermint/crypto/proof.proto b/proto/rust-vendored/tendermint/crypto/proof.proto new file mode 100644 index 0000000..ae72195 --- /dev/null +++ b/proto/rust-vendored/tendermint/crypto/proof.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +package tendermint.crypto; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/crypto"; + +import "gogoproto/gogo.proto"; + +message Proof { + int64 total = 1; + int64 index = 2; + bytes leaf_hash = 3; + repeated bytes aunts = 4; +} + +message ValueOp { + // Encoded in ProofOp.Key. + bytes key = 1; + + // To encode in ProofOp.Data + Proof proof = 2; +} + +message DominoOp { + string key = 1; + string input = 2; + string output = 3; +} + +// ProofOp defines an operation used for calculating Merkle root +// The data could be arbitrary format, providing nessecary data +// for example neighbouring node hash +message ProofOp { + string type = 1; + bytes key = 2; + bytes data = 3; +} + +// ProofOps is Merkle proof defined by the list of ProofOps +message ProofOps { + repeated ProofOp ops = 1 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/tendermint/libs/bits/types.proto b/proto/rust-vendored/tendermint/libs/bits/types.proto new file mode 100644 index 0000000..e6afc5e --- /dev/null +++ b/proto/rust-vendored/tendermint/libs/bits/types.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +package tendermint.libs.bits; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/libs/bits"; + +message BitArray { + int64 bits = 1; + repeated uint64 elems = 2; +} diff --git a/proto/rust-vendored/tendermint/p2p/types.proto b/proto/rust-vendored/tendermint/p2p/types.proto new file mode 100644 index 0000000..157d8ba --- /dev/null +++ b/proto/rust-vendored/tendermint/p2p/types.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +package tendermint.p2p; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/p2p"; + +import "gogoproto/gogo.proto"; + +message NetAddress { + string id = 1 [(gogoproto.customname) = "ID"]; + string ip = 2 [(gogoproto.customname) = "IP"]; + uint32 port = 3; +} + +message ProtocolVersion { + uint64 p2p = 1 [(gogoproto.customname) = "P2P"]; + uint64 block = 2; + uint64 app = 3; +} + +message DefaultNodeInfo { + ProtocolVersion protocol_version = 1 [(gogoproto.nullable) = false]; + string default_node_id = 2 [(gogoproto.customname) = "DefaultNodeID"]; + string listen_addr = 3; + string network = 4; + string version = 5; + bytes channels = 6; + string moniker = 7; + DefaultNodeInfoOther other = 8 [(gogoproto.nullable) = false]; +} + +message DefaultNodeInfoOther { + string tx_index = 1; + string rpc_address = 2 [(gogoproto.customname) = "RPCAddress"]; +} diff --git a/proto/rust-vendored/tendermint/types/block.proto b/proto/rust-vendored/tendermint/types/block.proto new file mode 100644 index 0000000..d531c06 --- /dev/null +++ b/proto/rust-vendored/tendermint/types/block.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/evidence.proto"; + +message Block { + Header header = 1 [(gogoproto.nullable) = false]; + Data data = 2 [(gogoproto.nullable) = false]; + tendermint.types.EvidenceList evidence = 3 [(gogoproto.nullable) = false]; + Commit last_commit = 4; +} diff --git a/proto/rust-vendored/tendermint/types/evidence.proto b/proto/rust-vendored/tendermint/types/evidence.proto new file mode 100644 index 0000000..1f35049 --- /dev/null +++ b/proto/rust-vendored/tendermint/types/evidence.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/validator.proto"; + +message Evidence { + oneof sum { + DuplicateVoteEvidence duplicate_vote_evidence = 1; + LightClientAttackEvidence light_client_attack_evidence = 2; + } +} + +// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. +message DuplicateVoteEvidence { + tendermint.types.Vote vote_a = 1; + tendermint.types.Vote vote_b = 2; + int64 total_voting_power = 3; + int64 validator_power = 4; + google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. +message LightClientAttackEvidence { + tendermint.types.LightBlock conflicting_block = 1; + int64 common_height = 2; + repeated tendermint.types.Validator byzantine_validators = 3; + int64 total_voting_power = 4; + google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +message EvidenceList { + repeated Evidence evidence = 1 [(gogoproto.nullable) = false]; +} diff --git a/proto/rust-vendored/tendermint/types/params.proto b/proto/rust-vendored/tendermint/types/params.proto new file mode 100644 index 0000000..66963ee --- /dev/null +++ b/proto/rust-vendored/tendermint/types/params.proto @@ -0,0 +1,77 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; + +option (gogoproto.equal_all) = true; + +// ConsensusParams contains consensus critical parameters that determine the +// validity of blocks. +message ConsensusParams { + BlockParams block = 1; + EvidenceParams evidence = 2; + ValidatorParams validator = 3; + VersionParams version = 4; +} + +// BlockParams contains limits on the block size. +message BlockParams { + // Max block size, in bytes. + // Note: must be greater than 0 + int64 max_bytes = 1; + // Max gas per block. + // Note: must be greater or equal to -1 + int64 max_gas = 2; + + reserved 3; // was TimeIotaMs see https://github.com/cometbft/cometbft/pull/5792 +} + +// EvidenceParams determine how we handle evidence of malfeasance. +message EvidenceParams { + // Max age of evidence, in blocks. + // + // The basic formula for calculating this is: MaxAgeDuration / {average block + // time}. + int64 max_age_num_blocks = 1; + + // Max age of evidence, in time. + // + // It should correspond with an app's "unbonding period" or other similar + // mechanism for handling [Nothing-At-Stake + // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + google.protobuf.Duration max_age_duration = 2 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + + // This sets the maximum size of total evidence in bytes that can be committed in a single block. + // and should fall comfortably under the max block bytes. + // Default is 1048576 or 1MB + int64 max_bytes = 3; +} + +// ValidatorParams restrict the public key types validators can use. +// NOTE: uses ABCI pubkey naming, not Amino names. +message ValidatorParams { + option (gogoproto.populate) = true; + option (gogoproto.equal) = true; + + repeated string pub_key_types = 1; +} + +// VersionParams contains the ABCI application version. +message VersionParams { + option (gogoproto.populate) = true; + option (gogoproto.equal) = true; + + uint64 app = 1; +} + +// HashedParams is a subset of ConsensusParams. +// +// It is hashed into the Header.ConsensusHash. +message HashedParams { + int64 block_max_bytes = 1; + int64 block_max_gas = 2; +} diff --git a/proto/rust-vendored/tendermint/types/types.proto b/proto/rust-vendored/tendermint/types/types.proto new file mode 100644 index 0000000..425f041 --- /dev/null +++ b/proto/rust-vendored/tendermint/types/types.proto @@ -0,0 +1,157 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "tendermint/crypto/proof.proto"; +import "tendermint/version/types.proto"; +import "tendermint/types/validator.proto"; + +// BlockIdFlag indicates which BlcokID the signature is for +enum BlockIDFlag { + option (gogoproto.goproto_enum_stringer) = true; + option (gogoproto.goproto_enum_prefix) = false; + + BLOCK_ID_FLAG_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "BlockIDFlagUnknown"]; + BLOCK_ID_FLAG_ABSENT = 1 [(gogoproto.enumvalue_customname) = "BlockIDFlagAbsent"]; + BLOCK_ID_FLAG_COMMIT = 2 [(gogoproto.enumvalue_customname) = "BlockIDFlagCommit"]; + BLOCK_ID_FLAG_NIL = 3 [(gogoproto.enumvalue_customname) = "BlockIDFlagNil"]; +} + +// SignedMsgType is a type of signed message in the consensus. +enum SignedMsgType { + option (gogoproto.goproto_enum_stringer) = true; + option (gogoproto.goproto_enum_prefix) = false; + + SIGNED_MSG_TYPE_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "UnknownType"]; + // Votes + SIGNED_MSG_TYPE_PREVOTE = 1 [(gogoproto.enumvalue_customname) = "PrevoteType"]; + SIGNED_MSG_TYPE_PRECOMMIT = 2 [(gogoproto.enumvalue_customname) = "PrecommitType"]; + + // Proposals + SIGNED_MSG_TYPE_PROPOSAL = 32 [(gogoproto.enumvalue_customname) = "ProposalType"]; +} + +// PartsetHeader +message PartSetHeader { + uint32 total = 1; + bytes hash = 2; +} + +message Part { + uint32 index = 1; + bytes bytes = 2; + tendermint.crypto.Proof proof = 3 [(gogoproto.nullable) = false]; +} + +// BlockID +message BlockID { + bytes hash = 1; + PartSetHeader part_set_header = 2 [(gogoproto.nullable) = false]; +} + +// -------------------------------- + +// Header defines the structure of a block header. +message Header { + // basic block info + tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false]; + string chain_id = 2 [(gogoproto.customname) = "ChainID"]; + int64 height = 3; + google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + + // prev block info + BlockID last_block_id = 5 [(gogoproto.nullable) = false]; + + // hashes of block data + bytes last_commit_hash = 6; // commit from validators from the last block + bytes data_hash = 7; // transactions + + // hashes from the app output from the prev block + bytes validators_hash = 8; // validators for the current block + bytes next_validators_hash = 9; // validators for the next block + bytes consensus_hash = 10; // consensus params for current block + bytes app_hash = 11; // state after txs from the previous block + bytes last_results_hash = 12; // root hash of all results from the txs from the previous block + + // consensus info + bytes evidence_hash = 13; // evidence included in the block + bytes proposer_address = 14; // original proposer of the block +} + +// Data contains the set of transactions included in the block +message Data { + // Txs that will be applied by state @ block.Height+1. + // NOTE: not all txs here are valid. We're just agreeing on the order first. + // This means that block.AppHash does not include these txs. + repeated bytes txs = 1; +} + +// Vote represents a prevote, precommit, or commit vote from validators for +// consensus. +message Vote { + SignedMsgType type = 1; + int64 height = 2; + int32 round = 3; + BlockID block_id = 4 + [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; // zero if vote is nil. + google.protobuf.Timestamp timestamp = 5 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes validator_address = 6; + int32 validator_index = 7; + bytes signature = 8; +} + +// Commit contains the evidence that a block was committed by a set of validators. +message Commit { + int64 height = 1; + int32 round = 2; + BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; + repeated CommitSig signatures = 4 [(gogoproto.nullable) = false]; +} + +// CommitSig is a part of the Vote included in a Commit. +message CommitSig { + BlockIDFlag block_id_flag = 1; + bytes validator_address = 2; + google.protobuf.Timestamp timestamp = 3 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes signature = 4; +} + +message Proposal { + SignedMsgType type = 1; + int64 height = 2; + int32 round = 3; + int32 pol_round = 4; + BlockID block_id = 5 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; + google.protobuf.Timestamp timestamp = 6 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes signature = 7; +} + +message SignedHeader { + Header header = 1; + Commit commit = 2; +} + +message LightBlock { + SignedHeader signed_header = 1; + tendermint.types.ValidatorSet validator_set = 2; +} + +message BlockMeta { + BlockID block_id = 1 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; + int64 block_size = 2; + Header header = 3 [(gogoproto.nullable) = false]; + int64 num_txs = 4; +} + +// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. +message TxProof { + bytes root_hash = 1; + bytes data = 2; + tendermint.crypto.Proof proof = 3; +} diff --git a/proto/rust-vendored/tendermint/types/validator.proto b/proto/rust-vendored/tendermint/types/validator.proto new file mode 100644 index 0000000..3e17026 --- /dev/null +++ b/proto/rust-vendored/tendermint/types/validator.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "tendermint/crypto/keys.proto"; + +message ValidatorSet { + repeated Validator validators = 1; + Validator proposer = 2; + int64 total_voting_power = 3; +} + +message Validator { + bytes address = 1; + tendermint.crypto.PublicKey pub_key = 2 [(gogoproto.nullable) = false]; + int64 voting_power = 3; + int64 proposer_priority = 4; +} + +message SimpleValidator { + tendermint.crypto.PublicKey pub_key = 1; + int64 voting_power = 2; +} diff --git a/proto/rust-vendored/tendermint/version/types.proto b/proto/rust-vendored/tendermint/version/types.proto new file mode 100644 index 0000000..3b6ef45 --- /dev/null +++ b/proto/rust-vendored/tendermint/version/types.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package tendermint.version; + +option go_package = "github.com/cometbft/cometbft/proto/tendermint/version"; + +import "gogoproto/gogo.proto"; + +// App includes the protocol and software version for the application. +// This information is included in ResponseInfo. The App.Protocol can be +// updated in ResponseEndBlock. +message App { + uint64 protocol = 1; + string software = 2; +} + +// Consensus captures the consensus rules for processing a block in the blockchain, +// including all blockchain data structures and the rules of the application's +// state transition machine. +message Consensus { + option (gogoproto.equal) = true; + + uint64 block = 1; + uint64 app = 2; +} diff --git a/tests/parser_impl.cpp b/tests/parser_impl.cpp new file mode 100644 index 0000000..7cb00e4 --- /dev/null +++ b/tests/parser_impl.cpp @@ -0,0 +1,69 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ + +// #{TODO} --> Apply tests that check this app's encoding/libraries + +#include "parser_impl.h" + +#include + +#include +#include + +#include "gmock/gmock.h" +#include "parser.h" +#include "parser_txdef.h" + +using namespace std; + +TEST(SCALE, ReadBytes) { + parser_context_t ctx; + parser_tx_t tx_obj; + parser_error_t err; + uint8_t buffer[6000]; + auto bufferLen = parseHexString( + buffer, sizeof(buffer), + "0aaf020aac020aa1010a290a0308904e12220a2029ea9c2f3371f6a487e7e95c247041f4a356f983eb064e5d2b3bcf322ca96a1012207fa50bf" + "e8946e53b33e8328672a0c6300ad9333c04707475f2d6cc502ec8513a1a520a50e0783360338067fc2ba548f460b3f06f33d3e756ebefa8a8c0" + "8c5e12a1e667df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891d691a208" + "d0887fd0d20bd002c336054772d56b8f9704a80ac8da45533e72f155f7145032220d1241d9d9f051c437455998e7c1eff33cd085ba9a9092d85" + "2d0381278bb6b1012a205e3505d5b6b1b99a8284f054bd650e8d4b64a23f6322c05a0ccee46bb481cb0932208c6abfdd0dd9111868fbed6a30c" + "9dd5477b123f7aefd15bc73b68185f0a036110ab2020aaf020aa2010a2a0a0408a09c0112220a2029ea9c2f3371f6a487e7e95c247041f4a356" + "f983eb064e5d2b3bcf322ca96a10122079ce0fe2f6695ebe61c22edb8de45e1290448500e0058156cb4e29f4d7234f091a520a50e0783360338" + "067fc2ba548f460b3f06f33d3e756ebefa8a8c08c5e12a1e667df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef" + "543454673bb61a4f2a3d861114d6891d6910011a20c3021eb39eed577b5d609f5436d9128ff6c8bcc13e326a4fcab5c749e2f489002220c05b9" + "ffb6512d40cc8cf03eb1e2b47f3fcc323a0f2db077362b2300eb77658022a20a45a2fc5a64032c3a68ce4ec9c542b564cfaa9b14d3af386bd14" + "2a645212540f32208cb5d93be25ba643ee760f56624cd051e53ca0e7047e4a95a5faf82f0636f60d0a8b021288020a2a0a0408b0ea0112220a2" + "029ea9c2f3371f6a487e7e95c247041f4a356f983eb064e5d2b3bcf322ca96a1012520a50e0783360338067fc2ba548f460b3f06f33d3e756eb" + "efa8a8c08c5e12a1e667df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891" + "d691a20cde64106162059a6800918036eb3c0e9b2872f56d4902259fba9b52d18dbd7c52220a1417029703aa865b08f19acc96eba15928a2178" + "956f6c9c538ea5577a03ef032a20df5538e38602a2bd15119182c50d0f1b22fd8deba0a728a8fbbfb7e9b8c6fc0932207dee2a1d6d9c85ba685" + "60cfa514b73897e77fe0355d92c9cc2bb3b522b5f3d110abc021ab9020ad0010a480a220a20116d0cd6de9349c686f5802f7c98179e70d4898a" + "38e1cc3df93705c94e941d0c12220a2029ea9c2f3371f6a487e7e95c247041f4a356f983eb064e5d2b3bcf322ca96a10120408a08d061a02080" + "122040a0208032a520a50e0783360338067fc2ba548f460b3f06f33d3e756ebefa8a8c08c5e12a1e667df228df0720fb9bd963894183bc447e1" + "c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891d69322057798bc1a097c26b47e61a9870ca98eb8cbe48e9cba4d" + "b86f5d8b67c12086afb1220fbf22b3005fdd84a03bdf0950c851a9c6e0618b0eea1004ca75e53ce3deef1031a205f9ddbd8093a028de6597d03" + "d785302d8336e20a2148e15ae016bad0536d7e0122200d358f3968b24d5e612504b211cadb44ace485ceb3ad38821aa96b926279e6001213120" + "d70656e756d6272612d746573741a020a0022f4012a780a520a50e0783360338067fc2ba548f460b3f06f33d3e756ebefa8a8c08c5e12a1e667" + "df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891d691220361218d216cfe" + "90f77f54f045ff21b464795517c05057c595fd59e4958e3941718032a780a520a50e0783360338067fc2ba548f460b3f06f33d3e756ebefa8a8" + "c08c5e12a1e667df228df0720fb9bd963894183bc447e1c7ef591fa9625d4a66b7703eec2ec1ef543454673bb61a4f2a3d861114d6891d69122" + "013296da8c9dfdf969be7c7bd74e67e80977cd91635eb32038619f62c732dc46a18022a780a540a520a506ece16f387e0b932082cb0cf682359" + "0fc287d068d6f684a36d1fb19bfd6dce8b22850f535824aeb66cb8c41309e6f5b2d58ff7b651ef4e09a09c7e48d770d190880e1827b47823a1d" + "01f0c4b438a7b43122018bd5cedd0eb952244a296c1e3fba4f417ebdcc1cfec04cb9441a394316a58bd"); + + parser_parse(&ctx, buffer, bufferLen, &tx_obj); +} diff --git a/tests/parser_test.txt b/tests/parser_test.txt new file mode 100644 index 0000000..5b5e319 --- /dev/null +++ b/tests/parser_test.txt @@ -0,0 +1,46 @@ +/******************************************************************************* +* (c) 2018 - 2023 Zondax AG +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +// #{TODO} --> Apply tests that check this app's encoding/libraries + +#include "gmock/gmock.h" + +#include +#include +#include +#include "parser_txdef.h" +#include "parser.h" +#include "parser_impl.h" +#include "keys_def.h" +#include "crypto_helper.h" +#include "zxformat.h" + +using namespace std; + +TEST(SCALE, skvTest) { + const std::string spending_key = "5614d258049853afbf1ca97bec7ccf8e64e0d90a3d417ef0f3c6f7431685e5c1"; + const std::string expected_fvk = "3cd58bbb8725bfe4566504b04d7a31b67bb67fd5d09a28364ac7ac2c2fd8710e4fb0d8c51486fc24938ca96564842a84201d266c92b72761e4e99a16b3405103"; + + keys_t keys; + parseHexString(keys.skb, KEY_LEN, spending_key.c_str()); + compute_effect_hash(); + + char hexstr[200]; + array_to_hexstr(hexstr, 200, keys.fvk, sizeof(keys.fvk)); + std::string str(hexstr); + + EXPECT_EQ(str, expected_fvk); +} diff --git a/tests/testcases.json b/tests/testcases.json new file mode 100644 index 0000000..bc16c98 --- /dev/null +++ b/tests/testcases.json @@ -0,0 +1,74 @@ +[ + { + "index": 0, + "name": "Asset_Freeze", + "blob": "8ba466616464c4204b2a4ad9d4d900ea16f9dcee534b9c0189daa1acbccace73d794bf168b8a73e3a466616964ce000b6717a3666565ce001e163fa26676ce000153c8a367656eac6d61696e6e65742d76312e30a26768c420c061c4d8fc1dbdded2d7604be4568e3f6d041987ac37bde4b620b5ab39248adfa26c76ce00018b66a46e6f7465c41c48656c6c6f2074686572652c20746869732069732061206e6f746521a572656b6579c4206a08f935de3bb9eb65b9d206598f5d34419257491c4024ca5f88ea73749de231a3736e64c4209fa4543b7caf05ad7334a5a74033acdc130137d7afa1f6733509f6d4377c30d7a474797065a46166727a", + "output": [ + "0 | Txn type : Asset Freeze", + "1 | Sender [1/2] : T6SFIO34V4C224ZUUWTUAM5M3QJQCN6XV6Q7M4", + "1 | Sender [2/2] : ZVBH3NIN34GDLSK2ETKM", + "2 | Rekey to [1/2] : WARNING: NIEPSNO6HO46WZNZ2IDFTD25GRAZE", + "2 | Rekey to [2/2] : V2JDRACJSS7RDVHG5E54IYZOIA3MI", + "3 | Fee : ALGO 1.971775", + "4 | Genesis ID : mainnet-v1.0", + "5 | Genesis hash [1/2] : wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qz", + "5 | Genesis hash [2/2] : kkit8=", + "6 | Note : 28 bytes", + "7 | Asset ID : 747287", + "8 | Asset account [1/2] : JMVEVWOU3EAOUFXZ3TXFGS44AGE5VINMXTFM44", + "8 | Asset account [2/2] : 6XSS7RNC4KOPR5HR537U", + "9 | Freeze flag : Unfrozen" + ], + "output_expert": [ + "0 | Txn type : Asset Freeze", + "1 | Sender [1/2] : T6SFIO34V4C224ZUUWTUAM5M3QJQCN6XV6Q7M4", + "1 | Sender [2/2] : ZVBH3NIN34GDLSK2ETKM", + "2 | Rekey to [1/2] : WARNING: NIEPSNO6HO46WZNZ2IDFTD25GRAZE", + "2 | Rekey to [2/2] : V2JDRACJSS7RDVHG5E54IYZOIA3MI", + "3 | Fee : ALGO 1.971775", + "4 | Genesis ID : mainnet-v1.0", + "5 | Genesis hash [1/2] : wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qz", + "5 | Genesis hash [2/2] : kkit8=", + "6 | Note : 28 bytes", + "7 | Asset ID : 747287", + "8 | Asset account [1/2] : JMVEVWOU3EAOUFXZ3TXFGS44AGE5VINMXTFM44", + "8 | Asset account [2/2] : 6XSS7RNC4KOPR5HR537U", + "9 | Freeze flag : Unfrozen" + ] + }, + { + "index": 1, + "name": "Asset_Freeze", + "blob": "8aa466616464c4204b2a4ad9d4d900ea16f9dcee534b9c0189daa1acbccace73d794bf168b8a73e3a466616964ce00038ce6a3666565ce00272460a26676cd6584a367656eac6d61696e6e65742d76312e30a26768c420c061c4d8fc1dbdded2d7604be4568e3f6d041987ac37bde4b620b5ab39248adfa26c76ce0001cd3ca572656b6579c42075895bccedfa0c747cea13601babff1de5cecf4dd7a3fe86eaeccb74b60124dea3736e64c420aba83eaca22287f68cad3906661fc72b1c3537dbbae4ba2c6e35a51c03c87f80a474797065a46166727a", + "output": [ + "0 | Txn type : Asset Freeze", + "1 | Sender [1/2] : VOUD5LFCEKD7NDFNHEDGMH6HFMODKN63XLSLUL", + "1 | Sender [2/2] : DOGWSRYA6IP6ADQBWT6Y", + "2 | Rekey to [1/2] : WARNING: OWEVXTHN7IGHI7HKCNQBXK77DXS45", + "2 | Rekey to [2/2] : T2N26R75BXK5TFXJNQBETPAS7VK74", + "3 | Fee : ALGO 2.565216", + "4 | Genesis ID : mainnet-v1.0", + "5 | Genesis hash [1/2] : wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qz", + "5 | Genesis hash [2/2] : kkit8=", + "6 | Asset ID : 232678", + "7 | Asset account [1/2] : JMVEVWOU3EAOUFXZ3TXFGS44AGE5VINMXTFM44", + "7 | Asset account [2/2] : 6XSS7RNC4KOPR5HR537U", + "8 | Freeze flag : Unfrozen" + ], + "output_expert": [ + "0 | Txn type : Asset Freeze", + "1 | Sender [1/2] : VOUD5LFCEKD7NDFNHEDGMH6HFMODKN63XLSLUL", + "1 | Sender [2/2] : DOGWSRYA6IP6ADQBWT6Y", + "2 | Rekey to [1/2] : WARNING: OWEVXTHN7IGHI7HKCNQBXK77DXS45", + "2 | Rekey to [2/2] : T2N26R75BXK5TFXJNQBETPAS7VK74", + "3 | Fee : ALGO 2.565216", + "4 | Genesis ID : mainnet-v1.0", + "5 | Genesis hash [1/2] : wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qz", + "5 | Genesis hash [2/2] : kkit8=", + "6 | Asset ID : 232678", + "7 | Asset account [1/2] : JMVEVWOU3EAOUFXZ3TXFGS44AGE5VINMXTFM44", + "7 | Asset account [2/2] : 6XSS7RNC4KOPR5HR537U", + "8 | Freeze flag : Unfrozen" + ] + } +] \ No newline at end of file diff --git a/tests/ui_tests.txt b/tests/ui_tests.txt new file mode 100644 index 0000000..14336d0 --- /dev/null +++ b/tests/ui_tests.txt @@ -0,0 +1,139 @@ +/******************************************************************************* +* (c) 2018 - 2023 Zondax AG +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +********************************************************************************/ + +#include "gmock/gmock.h" + +#include +#include +#include +#include +#include +#include "parser.h" +#include "app_mode.h" +#include "utils/common.h" + +using ::testing::TestWithParam; + +typedef struct { + uint64_t index; + std::string name; + std::string blob; + std::vector expected; + std::vector expected_expert; +} testcase_t; + +class JsonTestsA : public ::testing::TestWithParam { +public: + struct PrintToStringParamName { + template + std::string operator()(const testing::TestParamInfo &info) const { + auto p = static_cast(info.param); + std::stringstream ss; + ss << p.index << "_" << p.name; + return ss.str(); + } + }; +}; + +// Retrieve testcases from json file +std::vector GetJsonTestCases(std::string jsonFile) { + auto answer = std::vector(); + + Json::CharReaderBuilder builder; + Json::Value obj; + + std::string fullPathJsonFile = std::string(TESTVECTORS_DIR) + jsonFile; + + std::ifstream inFile(fullPathJsonFile); + if (!inFile.is_open()) { + return answer; + } + + // Retrieve all test cases + JSONCPP_STRING errs; + Json::parseFromStream(builder, inFile, &obj, &errs); + std::cout << "Number of testcases: " << obj.size() << std::endl; + + for (int i = 0; i < obj.size(); i++) { + + auto outputs = std::vector(); + for (auto s : obj[i]["output"]) { + outputs.push_back(s.asString()); + } + + auto outputs_expert = std::vector(); + for (auto s : obj[i]["output_expert"]) { + outputs_expert.push_back(s.asString()); + } + + answer.push_back(testcase_t{ + obj[i]["index"].asUInt64(), + obj[i]["name"].asString(), + obj[i]["blob"].asString(), + outputs, + outputs_expert + }); + } + + return answer; +} + +void check_testcase(const testcase_t &tc, bool expert_mode) { + + app_mode_set_expert(expert_mode); + + parser_context_t ctx; + parser_error_t err; + + uint8_t buffer[5000]; + uint16_t bufferLen = parseHexString(buffer, sizeof(buffer), tc.blob.c_str()); + + parser_tx_t tx_obj; + memset(&tx_obj, 0, sizeof(tx_obj)); + + err = parser_parse(&ctx, buffer, bufferLen, &tx_obj); + ASSERT_EQ(err, parser_ok) << parser_getErrorDescription(err); + + auto output = dumpUI(&ctx, 39, 39); + + std::cout << std::endl; + for (const auto &i : output) { + std::cout << i << std::endl; + } + std::cout << std::endl << std::endl; + + std::vector expected = app_mode_expert() ? tc.expected_expert : tc.expected; + + // #{TODO} --> After updating testvector, enable this part + #if 0 + EXPECT_EQ(output.size(), expected.size()); + for (size_t i = 0; i < expected.size(); i++) { + if (i < output.size()) { + EXPECT_THAT(output[i], testing::Eq(expected[i])); + } + } + #endif +} + +INSTANTIATE_TEST_SUITE_P + +( + JsonTestCasesCurrentTxVer, + JsonTestsA, + ::testing::ValuesIn(GetJsonTestCases("testcases.json")), + JsonTestsA::PrintToStringParamName() +); +//TEST_P(JsonTestsA, CheckUIOutput_CurrentTX_Expert) { check_testcase(GetParam(), true); } diff --git a/tests/utils/common.cpp b/tests/utils/common.cpp new file mode 100644 index 0000000..1822116 --- /dev/null +++ b/tests/utils/common.cpp @@ -0,0 +1,62 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#include "common.h" + +#include + +#include +#include + +std::vector dumpUI(parser_context_t *ctx, uint16_t maxKeyLen, uint16_t maxValueLen) { + auto answer = std::vector(); + + uint8_t numItems; + parser_error_t err = parser_getNumItems(ctx, &numItems); + if (err != parser_ok) { + return answer; + } + + for (uint16_t idx = 0; idx < numItems; idx++) { + char keyBuffer[1000]; + char valueBuffer[1000]; + uint8_t pageIdx = 0; + uint8_t pageCount = 1; + + while (pageIdx < pageCount) { + std::stringstream ss; + + err = parser_getItem(ctx, idx, keyBuffer, maxKeyLen, valueBuffer, maxValueLen, pageIdx, &pageCount); + + ss << idx << " | " << keyBuffer; + if (pageCount > 1) { + ss << " [" << (int)pageIdx + 1 << "/" << (int)pageCount << "]"; + } + ss << " : "; + + if (err == parser_ok) { + ss << valueBuffer; + } else { + ss << parser_getErrorDescription(err); + } + + answer.push_back(ss.str()); + + pageIdx++; + } + } + + return answer; +} diff --git a/tests/utils/common.h b/tests/utils/common.h new file mode 100644 index 0000000..23f20f9 --- /dev/null +++ b/tests/utils/common.h @@ -0,0 +1,21 @@ +/******************************************************************************* + * (c) 2018 - 2023 Zondax AG + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ********************************************************************************/ +#include +#include + +#include "parser_common.h" + +std::vector dumpUI(parser_context_t *ctx, uint16_t maxKeyLen, uint16_t maxValueLen); diff --git a/tests_zemu/.editorconfig b/tests_zemu/.editorconfig new file mode 100644 index 0000000..4a7ea30 --- /dev/null +++ b/tests_zemu/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false diff --git a/tests_zemu/.eslintrc.js b/tests_zemu/.eslintrc.js new file mode 100644 index 0000000..caf9805 --- /dev/null +++ b/tests_zemu/.eslintrc.js @@ -0,0 +1,24 @@ +module.exports = { + root: true, + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint', 'jest'], + extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:jest/recommended', 'prettier'], + env: { + browser: true, + es6: true, + node: true, + }, + settings: {}, + globals: { + Atomics: 'readonly', + SharedArrayBuffer: 'readonly', + }, + parserOptions: {}, + rules: { + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-var-requires': 0, + '@typescript-eslint/ban-ts-comment': 'off', + }, +} diff --git a/tests_zemu/.gitignore b/tests_zemu/.gitignore new file mode 100644 index 0000000..8474aa6 --- /dev/null +++ b/tests_zemu/.gitignore @@ -0,0 +1,71 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ +/docs/.vuepress/dist + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# next.js build output +.next + +\.idea/ + +.vscode + +TODO\.md + +\dist +snapshots-tmp diff --git a/tests_zemu/.npmignore b/tests_zemu/.npmignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/tests_zemu/.npmignore @@ -0,0 +1 @@ +node_modules diff --git a/tests_zemu/.prettierignore b/tests_zemu/.prettierignore new file mode 100644 index 0000000..de4d1f0 --- /dev/null +++ b/tests_zemu/.prettierignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/tests_zemu/.prettierrc b/tests_zemu/.prettierrc new file mode 100644 index 0000000..6523ceb --- /dev/null +++ b/tests_zemu/.prettierrc @@ -0,0 +1,9 @@ +{ + "trailingComma": "all", + "singleQuote": true, + "arrowParens": "avoid", + "semi": false, + "useTabs": false, + "printWidth": 140, + "tabWidth": 2 +} diff --git a/tests_zemu/globalsetup.js b/tests_zemu/globalsetup.js new file mode 100644 index 0000000..a7875ea --- /dev/null +++ b/tests_zemu/globalsetup.js @@ -0,0 +1,16 @@ +import Zemu from '@zondax/zemu' + +const catchExit = async () => { + process.on('SIGINT', () => { + Zemu.stopAllEmuContainers(function () { + process.exit() + }) + }) +} + +module.exports = async () => { + await catchExit() + await Zemu.checkAndPullImage() + await Zemu.stopAllEmuContainers() +} +// diff --git a/tests_zemu/jest.config.js b/tests_zemu/jest.config.js new file mode 100644 index 0000000..c4a20eb --- /dev/null +++ b/tests_zemu/jest.config.js @@ -0,0 +1,5 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', + transformIgnorePatterns: ['^.+\\.js$'], +} diff --git a/tests_zemu/jest.js b/tests_zemu/jest.js new file mode 100644 index 0000000..e69de29 diff --git a/tests_zemu/package.json b/tests_zemu/package.json new file mode 100644 index 0000000..8b1ea4b --- /dev/null +++ b/tests_zemu/package.json @@ -0,0 +1,48 @@ +{ + "name": "integration-tests", + "author": "Zondax AG", + "license": "Apache-2.0", + "version": "1.0.0", + "description": "", + "types": "./dist/index.d.ts", + "repository": { + "type": "git", + "url": "git+https://github.com/Zondax/ledger-penumbra" + }, + "keywords": [ + "Zondax", + "Ledger" + ], + "scripts": { + "clean": "ts-node tests/pullImageKillOld.ts", + "test": "yarn clean && jest --maxConcurrency 3", + "test_dev": "jest", + "try": "node try.mjs" + }, + "dependencies": { + "@zondax/ledger-penumbra": "^0.1.0", + "@zondax/zemu": "^0.50.3" + }, + "devDependencies": { + "@ledgerhq/hw-transport-node-hid": "^6.29.5", + "@matteoh2o1999/github-actions-jest-reporter": "^3.0.0", + "@types/jest": "^29.5.13", + "@types/ledgerhq__hw-transport": "^4.21.8", + "@typescript-eslint/eslint-plugin": "^8.8.0", + "@typescript-eslint/parser": "^8.8.0", + "blakejs": "^1.2.1", + "crypto-js": "4.2.0", + "ed25519-supercop": "^2.0.1", + "eslint": "^9.11.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-prettier": "^5.2.1", + "jest": "29.7.0", + "jssha": "^3.3.1", + "prettier": "^3.3.3", + "ts-jest": "^29.2.5", + "ts-node": "^10.9.2", + "typescript": "^5.6.2" + } +} diff --git a/tests_zemu/snapshots/fl-mainmenu/00000.png b/tests_zemu/snapshots/fl-mainmenu/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..bea51873c61ea32509a84828853c8259940e4356 GIT binary patch literal 12808 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-mainmenu/00002.png b/tests_zemu/snapshots/fl-mainmenu/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..6ebca3b276af5c311621d4a61b25a60ba602c5d5 GIT binary patch literal 5918 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-mainmenu/00003.png b/tests_zemu/snapshots/fl-mainmenu/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..27f3935bc96aa9847ed8cc7f6969cf8be5ca500d GIT binary patch literal 6025 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-mainmenu/00004.png b/tests_zemu/snapshots/fl-mainmenu/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..d0efa07258861c70a61bc22d225d6caa7d8b6952 GIT binary patch literal 8979 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-mainmenu/00005.png b/tests_zemu/snapshots/fl-mainmenu/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..f15374c3d10144e0c492725663ccbf6c74dcd216 GIT binary patch literal 9966 zcmeI2X*`te`|!t-$WpnLox4cfk&2jPyAzUZNt%R^-HauSZP0>}rKk~;C6kenCCg04 zGBRaCV=!f6Foec7b|!}LT<+iVym+4f=kvUHUi^N~i~sfN{2b?Xo$GO($MHRm^Rd0H zrT9L%eIO7>-0ITBs~`~HCAyA31AILuSKU%o#Y^rZl8+iz1Dr(Nx%wXdfY%Z5Oc!&>l zs7`PdhCiQg+y0U?)`MdYe&$&91c5!NI}HOxkp~p%Q6$ z5Xa`m%Lw^DAcq>p=$=pP!|b+tJ4+Sa8(b(kQmK&qdLecpu|0SGIi?KpW`V1o+NZlF zai-RPM(RyZE+g4v&xEvbh8OpdGhb{gGtT<3%HbBPFRp(l&7H`?OgqEXyUu(qQ?=@5 z)#82W5s@h?8$%KKoKK68dB+Sg8g9x#7tazFH6mQ;5p45{UbvO(J9WSb>yWt1nCX?vy)$^v-2bS^BWw;%~9US;GQsq12xpyw2$NHpx z2$faa=)bC=FIaaPQyJJuL?t>%xt^46?4bB@%sz`k@ZlWBgT{{XM0yKSac*tNwzJ|$ zx?fyeoMvctPxA?NVxCF!QAvFz;^$LhrL^e~@DIzmy-+8obs^Uu+4fRNL(Z@A(CSd% z1>$-RuwP}2H1{m;T*h_E%22;Ak=gh<&QOV+-c#1sOw&wlb9-3k1Za>r_v%kD@<2{3 zc3usi%#1j=*n<@I)6a^HDn=6RwbC_qcfK+)3${E=fKuE$t4!XfN8H z*V$r=VLRvReHF;K9IpUfR8&T83c6w1I0}*7$5IP9QkJPDd0;}hRYcTseG#Myr5@$Sor{(6B}#E z4FQLkOuQbjpXVBHiGt5;k-Ae`a#1m3iBHRp95wM+)g9hayFqLwoc`Mn;$AWyYQ7P#!l6V3aUSF*JH{&hjUL`yIpnC>rWoYPF2fW;|RoVI-bh9Y7 zwAbZ~f50PDqeSo2l?zo;!Llmw>{xYpHX?+`v^$&KY(^>k^;I@^N2nQoW6O4S%ly!$ zL4jETi?tFR-runl^-6g-w7GJ&3Hcj133+yV6*4WWJ39L=RCaR z3p#M~X3za_A&|ARsQ^fmUk>#AXc3>O#(%7^>6KQ74PXa=Kye9aryA5tE3+`%xDX0~Ak*i^`&nTP56?@PFKHdZ?d@3E z`t{)J+u2Q8_MXHO+fmXf4EqY~Uqc^f#jCZvbGR2Nl&c)>Jr}Bn43D?MDSGWaaCVxO&&r)@eLcsSBZ4}6^bj3_Ep>o9#t}njx&PgA%-*-AuLjH@} zofJN{v3Fg{%@^Q|6+`;a*S(AC@mp%IH#|iLWoVpchV!Vg_e{4N1BYPlCmk^F{Z{cM z_jukcOnx1q%>~T3d9UBTM)*avy4bV%}Eu@IH*2~;s?jo55t;y$d(1>$cRMB1H7-3 z6N9a%`B`RnX$FFPE;o!AvG_;NY0>US%4fm4di7+U6o-)C4k!-oZN?(K{q;YG-jXth zAk7^u%R`F~!o2e-kds_zc)Za3a4H7H__hbp9uD-5|n(Fn4CUb2e1g(d1k z${;%u@Re2*IUiPlftFA553*S=ir#A|2-VG<(rN7;@t@=JjxBC(%FR#9DK`G1Y}dvP z-V`VO3E$)H=B9_Dz?0VUf#ri}N%x$=I>#gZBwWbzwW5KXh_fbiv!DbO9x z-yDcHgkbco80sQ2i^tbgE(kjI~45fw6?yk=bjP`FAz=it@kr+-0-A}Ew|}Y?{>hf zNQ;l#)*U{$9-zy+W_2J!>K^9<2Hm=a!B(Y}W3wJ7xK||qYr5vrbNd@#+w{Oac4l!` zNk3{bzpMrZ&+a-39k$~V>Be38VxA_Fn=QdWugi>mAGVb^;l@MJCqV`Mo}{^pGWBD| zZn5VSy24z3MFQKR0S z?hJ{&ZOqPjRD9{MZC1^$Z;=*C=X}^zu!1B`9^;t zGnQ86n|gP}U_x)P^k$FpPJZywCfO7J`hBJodB1}q2(z4ntd(;?t!h?3C($7So8v@U zWBO_TJlhI+eL|jVma5yAZoySD*%E@BPye(?g(0SQwK}Ipv(RfI@!jhn3>{K%)aa0N z#_d4Hb)lfRda14v+gH(>6hJd_4ed+?TC*YHFBL(fF@m}vb#qgJ#H;_N!kRC8pJ6S= zKkc+t)zVnQ!h8?ke3f*<^4LQk7ab~NmKoH?q$`35w0nRx@$DwRma-2<@~wp zs#uoC7%DZtw9a}nOBi2Lm!>gx!Wz;d-=*XfR|XD99Yz=zmfA*NcBPNKP3yH@DseZz z?P|TZZtJP471Dd2K`OV%!@#OL6WFM@_}P>{ESAj_$k7FjHdsSyvs?kyxAAOOjUlyG zGuyIQeR+h1`{j60bJDhCWUAlqzL8DvPL1Z|l6q>>tgN{MJz_=sZ>0B#b%=3cbLkx5 zeVW2|RIO5rg#`$+1}+|DSuPiW>ZN0yr04jOG`Hrb%~I=4K{v>ubIp-j>r#EtXSXb zFT1 zPJX_&9n1wfeIIU`;(iXgay-s#M7GDnK-3=*yFe=22DYPsG$AA^M!8n|o^DDrH7)mOP;v|(fQm?OG*jNfM040|;AYY@qu?1y1ekbp zUW2(_F8t23H&KE(5f4Umj>&U*hgYZmfJ&FjH#&-h32cB~8hqQjPQT{T=k~sgZrgG! zYQSJc@`tFWXpM%+cWV{tgqeMIY?DpT4z;qEb@f#XL%)A>It(H-W(e!HV>n<_4?U5n zm2XxFj@2R}F0OpjJpfmIfUpl+2?4*dEj=H2bo?|XS@3Ic1f0Q+Y@fE`WZcHs*(<@R z-Es(#xh3{v#!<{n^mby3hs@lc2R7&`?0zhEgvsq-NlA2~s2MeSu@{=A(L4 zLx~ul_j{rf2n%Mim8Zl=Fg%ybS@5YHU`L{5^{L%sN?M5c^0Q(Oz7``HFGj9EZpdBo zT^~i?i%QSs3-R<3bYXG;NMy6209Q0MZEbVmjl*7upWv|rw_xNon9yw&WmRYHz;2i+uLWfCa5%6CE-^!dCcsMc23tuoUu~oas_1Y z8{N0=P2V*oO7NlGNJPh2M$YdnuGcK>k+PO&?Z6k2c@CFQSz^fzYk2N`j``(9x55$j z)B^VSVo$-jBHv%X2HJRtNPt6QE9`yQX%NPu>X!-7gYzN$SHC znB>9l+$Bq*frIAwM?ZS4cezo$55_Q_p&H>~UAQ@Oz~?Pnws1O5**lg2_)KX(Kg1uR z*=c{C4kzqXYF8uo3Qujo>0kRjWGtjrUK|KNei#P@wu}iZQ3$K7-_Oa(gJk3BiM?k? z{J!PVwv$)sd+y8Bz<^L$zEYUHhNo^3lgT7?8Pi_Y7e0DT8vE1Q_sd=n2dS{~NL@6P z707SvUGGy@oN{j$LpX64Y#VOGR1jK9J6WO3(OAo4(6IW-q# z*kFT;^@(C0=n30&ORW2TxyJJxaEVi6voE{UywZqH!ifKkBMbQ@>td{p4;6oJ2$lAvhXb; zU$KAvE}0n5UpKsyC(3J%-@FR4zUljsSG9b2WUKG`3bTque;&d3of4c|9EP$hRXZ8C zRalwXU3@Q?144t9E-*O=rdA>Ay-&W!hPH|z zMrwg>pG`n&V6cB}9LX40wfY5DO7^H7xMV<&$j3})()WW_A?if{CQYPhc6HXgVm3fs z7?H;Lwt~8eOe-&GO9k?}Z=Y;yRlU9Fru9$oJfYG*51b+52O=Wd6ZL>7?JL&CU_B`D ztcLg$#(yG3)v8#1AAD-(@lLKu(Q4o>Av$EKI&$&Qz^?ktFAuD;zA{JVxNespkAqW- z?HD}g>mscSPRL0zwf3_&WPQ5Zl|HbYNk-%AD`!usXRDUY#;p2zLo((Qj0=4`jS8u* z^k_Q;ME|uH|D4R-fARgMC}|e4xJGTdK-f`-8_Sx1aenPx8rp$4Sj7YRj#(1%MXAKbHV_ylO^=r}F0}EIl=Lah)*!Lb6zg16N*#PJq z=^eRKtPZP`Ok~bI;~z}FpnZd_#`&$c*5>nWcw&BGPo2x^MqH%+0C|`yR+VXf#vrvg z7ArWaPXkNDT%+ldPJN-eW$R>kF+A(x(&gBiTGuwWN5$%MF!X0DM)VAE{R{5$2=$k{ z@8`*|_a#ioF%XeL60DPV@vy6dvfWNfM}Nv7%P5YIt>64%N2 zro?su`oc%QOvL4a4Q5W>VPFBY5Oi~QCmFeVXrLzv=^PIkz;*&$+|||PQ!7H+++8xL zl3Eee$Mu}s@6EIof?5k!vn%Ab1p_D9A9*nASh?WnIraRvlBwf29zZzzyMf@fh zySgqonmb6DI{-M1v!Q(uX8~q;WaJIMHL!<&L;+(k5(B0iWE8x&>M;}^5_=^68qynA zw0jii>plcHZ2Eqevq-C1?8}o9`n|xYnk#^5tnEG#wF6PyF0r8C9S<4X((J~{Y3MG3 z0g4+uWe&ubi7BdUXPo#K4Ux)w5xKYFyl{oOjfEmF_^Gf0)_N%Z^9+R-GR~ugB{4KS zSa%x94VXt&z_5aG;nJ2re$*Meb`dqZfM}sfFx~}n`%7Rtf!$xDS@QQVXM1)w5b2$j zIUhB#@t9r+K>2#O9?GVGwXAV;yLY__`A#yC^*%&2COQ9aeOgvN^EG6Vs)s^LD6d>t>ZDHi9(62 z_1mrrpvBk&J)j~fK5@|Hga5|DHl%zMi%mNns&L$@=DH#bNT-|`{#|sy~RPxv2w{rQj2$kM?38?{2yE)NaZJuw@%{tyK>@>cT5(m_hU^VNC&Ct zDlaMX2-k!)`;bn;#>`Rf#=u`%es~uZtE|ZrA(@9%x3f11_JH0JO9nx(+6&StP3&ydjv7rXNvl*~R|&NjqZP=K zvU)?~VBTuu)+sT)?WzGF{lq~qaAA#_Hni$;cwO?69AACQ@?n5sRQ)8&`S z2B7Tz3_-%u`wk?s;g&@?z>|Q+9eAEQ8;v-qW2xR%GfU{L2t!oP#XigTJ^AQbrkliV za{#%*17*BaUl1x$`}yU2mLG`m-<2=$2o3_WPvv#Ak}{Y;DCT<2gQ2+Wo%YbVJ#WSR zHa^B5dP()eKhm{fJ^7ISYVC#gTPY)*n`Rk$*`uKN!9G4MaTk1tX0KizN_nTxzOBvr z5AN`gyqiyLU+mC&ag>%l_sG~;pAu*NcPR0GRjVO0AUVL*_?e&N@{s!h>R9S;5VJ|o zUO4)T;PGVLXZ(r)#I0;`Wq+$DQevt){am4@p136=X4z<1^b?`7R#RS4%1~}K>!JrX zUXYEby6jO)pI<--T{5zC{1GoUM9aNx0;-&2f(xmRrMEj+%=wrIYr+-Un48P0=kS$TyliClRfm~(FXNZh8 zYD)LuD*n=WVVQ4RTE^GAG87Jc!)8-Ny=B7{k|SQuF}wTO4A%Hu_{}@lH{O1aF;FU0V`L zrDXoB_WCv#a=K%w?7r%WWj>bPT5#(pmOXsWnx^riVUwXScUvIE=yPDyf8?pZPa!Z!|XSx%~U zBE;{rf*{cM>-X|#eHNz!e^|9g!ttUQdI9cdo5_vzWSzmB9?jV|*N%)1t zNWas0f{X(%DJnhm&Px2g9c9W`pFXRI0b0=)Z`QS{Qszudzyyl4DsI9g)B!KtCv8t*H!IU;X!u|=6_O~oM+GQRF z8>*(@M&cdoFGMwa=Dh0Hv1oIH}n9?<)?!X|#u ztq1?>GQ#Cp<+^tvpR$ZV@kiKvY}-?OiS9}N?X3T&^JxE-5dK^8|B~D+GiiT`#r9VU zfm%6anQZTY!S5i@@2Q`l{~zw;07=OLdzx;bGaoY%C{kc}1`NNjun_2c5#6#-4)|&D z?9^LHKvn1eenF?#TSlls4azXSXz@o+>q_->P?|>SQLC(oS+tFm`Fft=Kl1FwzGxz| z%0)T1<8!C*%rN!G?xVE=<~p8w!KO$$vo zfwa-|3bB8Ay{#nm)C=)o1qn^gmf20tAAB z5Nd)14J3q!ln5aN41^K_cjDRSJp0^z{-6Ea=kjYZGv`-E#y7_MzGLLYT?-T5Vt`<;nv2T6fNoAO+veXW28W|qR4r`#-4-|Uy=$(FHpCY~F; z!#iqh6?4}N_|$>o`ej;@yjzy%CZ-mf8}UFpv_821VdjJKqrBgZX2eHRTgZO5F!3B~ z$LM#D$#{C?-f*`rh~-!dF5v9&M0v1@d<^omaDS~{!R^6v$0Z`{Yh{y?%)M7%j;O`D ze~Dt&Ww)jPvx54NZ=3G^zPkYR(B{zX6`paMPUv+m50>HW_w7{CHJ^HENlmRgN6U6%+`I$CLU=R~1 zlxEWztqQDUczbBEDGXZ)7)$)u5ASD*y-qE*%)P_E_xEdiXV(fg5er`D0dqOO@r=+e zUhc>_s3Y$NYrpl}ow3s8XXSm2c%WWN?ns+^xIaVPVlW-{^~CtV;I1;32EQ9Li$7Q- z%Ie9ZZc;IkC7~ekbI3tjr~Gh7Jq%CTjDUKxmd3|&l-e){*2LA{ZrE|G*;m-e5_reLxI52=PJzwIa#inX&>zG z-xpYFct`F~O-@HTmykm23-?c;X;H*b`z;a)8BnB|rr%r|8_S`DRE=JO*I&8*6EH&2 zIjxGNSFQQ4&&}nk8Ve=ZD>9KmU9-_0&1}u*|L8R5}DCNA$520 z#Q6?i%QLyd3t^zuEynOdV7r|(q_##S-RcyU3>Kd{f6!rDr?=W33iwc{wisW4*lllY zh&{JsWPC@x`QIgIQh!E@B$q;N@*V*N3>u?XYAz8hhE$A<-nam`Ce_92>lTx|iHmN{ zTuSGQFQW~bAgG0CJhR71NWjQRWw%M>(8)uyTAPBsgXt&ntOVEz%==Zb{n?Jy&4^d{ z&$(T;+djY}Xr+ugiO@|yX~45}Oj}DVE`~P-MY3UZl>HB2DGUA)z9KITC95!lJI!(z zfx~Ql#^_h#@mJ)P8#(&(%u5uRyiX8|2L_~YghRtI`MhDJInQ5ZhNY;iBl`792mc(Z^J}!hPu~? zJvAQBQP#J1y2$)upiRzr=xq3m!7T+w@X~K@Q(ojo)syK2tI4&atiL@y2O6&mMCoMZ z+)V-QpRPpzZGq!W>`Is)*rEHiuUs~$)P|Ju+WkwzR`sVLs5XZNd*GYJZb8w%XtX)a zG;#+F|FrrK#LBVP*Co_gbhD&0;TF;l@qCHb85Y@?B^PaFkzVTO#Iz4Vhu)1Ount#Y zs!x8h$>G)iu@j}2-d_Ihw7nS1Vq`y+2||a$?JK%3m|F+&Ckt=-5MzWAoX!|k>c2TW z=ULJ=tv(GaME}Eq%ugJlD9lN6&HGXhV@6%DabYkWq-dIjj<6yK9Xf)4yWKp6;A(RV zmar7D|5>mn%}_!ucBdo&9V&sQjhyWP7AGFD)!0f)W@v~3?!x(^+@qUVs0pzT?Iy;2 zlPbA5d*OVnNf*L%C&F*a*mjI1XT2aT4fc8_E;hL}@8yro|gX3}{NgL8kg8d3adx@zHC|BNUwYZl_Y>TXxz^}}c` z7;Jo{eKR4Jnl1j5#i1YJwmrk=$PoR*U5y9W zj>8b&XPDYseVO8OhyPLS&6oI-+zbua!_pyUI_SYsV;!bcxec(0nd$)5;doQRs{T%y zhXAmYE${T+!Y?Zn@|XQKJ9Xd)CvBwWl>}(52L(+XMzx9OSY=k`(HGMO2JG7`L_vhJ z5}ydm%L`?!2AA0WoiBEYa2^&lAkj@1FK%sxj(0j&QVTi41OWs66PkgJ-F5dm_$9?e z#kw{Bw>|Bay|yK4E+{im){IKlryhpvu~tXaSmcZhfQt>o>%}I!#f&w1zNicTG9oE6 znxqUJ0wuGT#tZ!CE5F~BP@4#M?N)UzeJu<`^1Df~94v1Eo8L{+^LR&JiFPmPV;%h; zW-57Y*sY4-{+Cy115KK{l~qLH(&zv8Joh5|X~p5{YI;Zi=76WetfzVB&*ec9Y>R+r%u>u>8 zE*km6jbeE!2gs;XMwUVe(B9#pMzt5E(l5+pC5Dosi2U)7!?-;Q3PN@eL@gUJm3b}M&Uc1Ly5qH-TMBPi3ytoISz zE_8YX<rF=1ddTk)lD-DGp2@+Ky@Y3jII z{hca|TT?qcC+<^JfLLM9FWL$Oj;hlvwn*i~DoL4f5u8((m5a=IqNUfcJ^&e4Z)YR zN5*8x4BQn~9rcBIYh;N2^-}*$cTYf3M?Hmmh05JNa-~qp{*IeH054W#qxd^C5&hc= ze37@RHlN}42Z{TXC^%t-TZG9%PY*=~fY5M)Fa1brvzKDbCj~x|qv8$6*|+5)GR=|A z_*a;B+Q@)%IWIHJPeb23WA$%`7slK3=`V{J6ADiqyHD#0vNCo1IhzTur=Bb6oZPk8 zjyrp;yebn)@f7hsu-7ibt2!tMM#iJk7UTGKjSaTG20344$4@@sXzGwQ?NRcH$!xCu zvHBNhl-O?BK~eAQ;{y&qJ7^>0FGh!=9rhY8EG~K(vC0!U@o7yci}M<;r(C(MoObLr z!E)@UzsJwo3&Pb;_Oap|7|B`uRzp46*fLnJG`ajInMdXAIfcu5C!u3RQ|;%X68FJh z+rCXidu5r9pn_FbxU!>X=xXe9BX8i}+PAj5I0=*t%I*Gj-F9}oP{QkKiu~|yrP#wB zA(ds+9&@0)>;x;bWpyTQ9C2>iH$JsHZUL=6osfu_TI#-c_G^fJj;m|<@|_c%=UAC0 zlr07wO*202<6?~QC%b6$O1v+xso_g}c7xWt&~x#8S@(U$791cFq`|zuQ8xQNkHSi@ zpt=Kp&Erwl2~IctW0cu;b#@T?puN`YVod~)lgCn$S7E(*l0m18@Rt05AgCKJaPI>3{(~G6prFtDI z8(!4R4?VQWVNdml{5aAn(A>pCXXq~Nah@F8=8ue}8So9Ml1fg#ge000d$k?bPNZjY zl*Bp-{#w82yJgg=JHkgyjO~w^v^<3jaObfUCj!3f*0i&;W7Eo#`iY++uUBjl!DcJ& zg4?$%`EovrSc;7oSLOTca1z1KntHGXCHmg*gW-)?1``)!5~=R_pF-^6RGl>E@WssL zDS#Z!`rqBWSq8w{tuw=?U#{$@W@2seE2BO!R|m0gvS!3V+=AR+fWxbPo(rE`YBI9Chiw4`G&eLzC6$}hx2$eOX72}xm0Db!I=Lut zmOCIq3vu?UM{t{+Lh7d=ih?I`OEmq6Z4#A{isYV3Lspc;K}odmG9}A1ygma$sj06D zH=E>D89kk?9F8wyjXAL)$>le*-l#&Q4LHS#v^KdUAgDC!9x}rx>lUv#&l-I}aL5rI z_$!-i5aCzvJDji$t1Pn`moX{MdhYgK zOY)yj7i%mn&#-6b4@&~eg?=tK{mvK_Cl}}r=fwitc@fl1o(*gduI!(nTx&YMS0ZF1o$U*) zo|q|wKKg=mXkoT{MsgUg4MbFZD>-~wuaxq=C4{W8IxTcFgV1jYgB}bI>ih9( ze9J)fx+~XDPgcT|tO~Ql+4dzguJI-6vC8Ny%0}D!FWAWC-#cA_u!FWqC;dz81ohj@$2I9{UTe={HyxMY_Br-q@sgeXhLSg3@^ZDF?1*zOaaaGT^5sGgkqH^FPN)5uQ7Py&eBaz9Y zmCa!AsN4=q^~ai;Z{$sbDe*myz#Ki>RRPa_$ki~fC|3MMXM$h5f>trI}}_&gom%^&}f2ExpEmL|=OdWfR(T#YAnJtL8k zGm5@V=NGN!e+V>mDR;*$KE=-c_7~#d-t$_rZAqLka-C2ywlQYkfHmF8BZU)t_eLm? zbaY_u%kZdPFFM`g>bSwZ{21F#mP)qLX3r*XzcTgyD0|&Dd%$SaUZWlj4+-M9e?~X8 z)x#{&lk{5Of2q=Mu<}Yf^o38qd}zMS$k(0(HFL`FjV4&=rwfB5^v~nh1b+xjWwe@j zHBcSjswXJUqww{dcT%a>4Z82yz;r z0$vgO)Q$a_YN_tmwW!cGdf@UE|XT@dyTuHFc+AFyGyvY3O& zCu-t3>ico*khwmG=OEA5ia>s-&{AHxVq}3Ou&TO!C~bMVdTOOsBS_IEa*(2Pyvmo_ z@QP1X3Rn0|A*)Mq#U8WMS@M=GqD|dc`~f?;*fw&}Mr`rnE8O3L;}88v^`#yEh*Qxa z1_uz`#^DfxT$1d$c+)Jk4#9afQNEv!wVs#aC4Y800pD8pfv#oZm05s|M0B;n|JI>0 z3p={pb|AW;zBs~#L7@iJg{wki#kCOIr|2ni@x4eoW<^A`qaF`?hJ!~hLzoJ|UQyYl zw4D)n%uIQ`H%3*Hv1|=b8EFlB>S270%yjF6)C^ zT(p>L`0U%q6Lp;jVA}G-^M2vN{*eWZ^2MLFmVg9~$&<+wteE0?xmA<@pd-H>gjV(I zM!;vPdGak$i15)E8YovEpdpF{-Y@UhPXaJ~`>G>0#3pC)>|apVlCFGb$j^zM$(kA! zDv~F@40_Y7?i~Vr5BxPuCnVBH@m)D9TEX4YgI1cGTd|IS8a{RWSzuP1#y`W z&H48nfbL;LR?ymoc{)$}Gf6<%{M8?Z4Z#naX1!VO_c-Kd-reMmpe}1cm5QRL(A=i^ zg;B^S6saj36Yd<3r+k}Q$L&;-gbTHz6D_W$0AQA)$<;gNu)m$O3@TE{y&ZX4q&Cdv zEN>V@OH}r&SL9XHW2@AuI*H|H>>YB)PCxw5{C*)9OL@US$pv*iM1)kxsocJq^?8Z= z=iIu7!s)-9JS5Cga|ij4Y;6BEBIjNu$+eR6e6Qi0yOns8!eKcgz5M1rpj;Fj+k$pm zt|%QBtu5@x&px!y-u`|G+MTh&+dEeDwS+V^EMa3w=^cFk$Bg|`!NEf`usd{FWNjr7 zBH~yJpn}I1cZ~7yYh3YhgxwchfeKn>kWbfY~3A^H6q`r7-?v;k62ja-r zn$*gjB+HPBF2-7%H<`zq!{0upG))v;P8G=J-sqRN)(9HsE4IxeZ+hL=u2gcqT=U@( zpoJVRQK`)41V`D-tm6wZ!+661@TFg%eWpJyQJ~)geUJiG{D-%)4g=!3G3YxE12^inUhBgBt zKIGe-V;&eJ4hCdc+=uPm%Ms>UoYQq*Q7w5-@bJN?$xyGGQT%qGLNzC<;1 z_v5uAG`szua5e=KuPT(y$kxF?Pm0}u)Iw1ewI-sfqaHW`wUlCwrL=}x&d{F*P9w32 zh)1_Y2oV=wVNb2z^47+o{%j1|Y_fa)9<7xy7q;PbRL~;k7fZ>fSP{KOFE>0took$+7 zyQkd!-&EKzq|gOnYk4s?T8`Ht!C)|1Jg~cbpI3Md7(TafG%TS}9-~I^QLp`a*&G9J z8lE|)X$3yooDg^)+%o0!jT|C|w8_a2c%OQk(qxW%oqeog7SUn^!8}9m4S?kviv*Ph zA8m&DtqZJAY19lzHc6Yh%y)u#Z{q|}UBvyx6VyV3UK@(XWs+M{W(dIUCAok=QCCOs zg$?izuImI_IjQ}LvVt#VI!7OuNn{GSr5BRbh@>WVTn3}8T&{*30Vm|R0*GMklb3HV zIr3fnQeC8?%z|2R36{KB4L$lK?C|WG(I#YHy?^rk(a;{oszqZiFXpyZDYA%fH(49c z85*EzPoyvQ^O9!zSc5Fz(LULN!I!u_fKi~i#TR?6T!q>JXXv*(q56PFbX=_%I`wq^ z@;nX6h!@vdEEde69UZBDJ%10HaEJG2qx^%~uMu6Vdlz@+R<~-@G%TvDBRPlpjb%zK zQPoarV_X2KS||1a2RNnYrqVgSM7qAKjldy(E7rf;?^p1?oECXc`+^u*VN_T^Ytiv8 zN?Bm(X69`^ivt_U++z$xl3q_0M>8q>S8WUoKcxegzpcg1S+e&euj&y{2&F)-jK1rg z{oA(g7sxSc8|O2eV=ZFhSzxhzE$7=Udu(dTZA>tnU~$=?%2X%V*y&B`r3ZVWQfm-+ zG3MHekC)M)Zx(VVwEmA(d-0}s7Rh2XMLE*n;fanC?dFv=mzU<1ONTE8RN#fWv9@K{^5~Z6*RfG)}(2ya2P<;>fcRkQkN!M15*R*isJ9URqo)kNkSZYQ@ z)y5HUT1@wy34!K0%|O3e;bdQNNnxW*rgX7WJ=sAaw_MIeDHhZP=(c)c_?{mE@>Kxt z!SwWR5znQYU~)9hiYL5g{)C&D;a;mAlj1+f-fm5FGBt0lDz&sUJaNY8d~F7)Y)Dot z-GrfK(sVU&q`Rz$-Ay7Ix(li8N-ZUe&X{_LKVOlL2$&1jKF7!TfEh`0%e9VHM7Oc| zT0G0_uC4;22I;KvqL)V7?vQFlxoq8&nxpAERXIT)S9<+ocPe*Qe0hg8j%-MAIM|&* z1{72po|x=@J+ojv#QoS%V!Cg=4TN5}-%QsZ)cu^6wr*T%Wx+DMOJ=plw%G0FN|>b0 z-2;bc7posK@OrXW82et;%hMlw^q7}P&o}}{L+o|$WHDa`vOOFt^#!QCRBqiU#{I^L zBLH~seD}w*JC`oT9%XJO|H)GJ&Cw4iUD*Ct>EeIB*pyLB{rbM929;|vz%G8R(|`BX zyi8IF$ushYI&S{F5|kSK`O4n9dqC&MHRqHl;(;~Xz^iwQ87g>Wi?{p75k&(*BzgP5 zb%vu6PtkUCOHyni_{Ky>YZJd63ocKdGn&s2O64DJOqpwwAI2XNZ(U4c+bhIo^V1r>~DNXr_;2vsxUvq0F;_MMaQixG_MmHho0?!Iu%zeMb z&l43x9Dg$NSP?@CcL0Oopb-1vS8wCWamyV*(f!u=menU?%O?5k(4W_${Rf8cESN)8 z75=cO``F*vt8-I8=3o>E+5Ywqw8Izrs*4Nt*LptAhH?+R^_+5L_wyFBffWzuma>7C z>FxUyXKP>?!%u)>tNG&&JwQXBD+M3{V}qv`I7`@8drAZuVmyY?<2~b|4<>~@@zft<7bV9vZ){Su+Tw!XA7dC;)sI-kD!W?gm ziGO!W@@lnrQ*Lob<0sdYjwjMb+0SZva$Z}$v5&onnDAn7eIT+;PZAdMJfnj0E|~V= z3cq*w!jCH1!HQYUwYyKTGJ`|eaYgs&rXHw|#-HOZvo*o*uF_7B!fP{;t<2&tLo|NaxtP{^KHcuLnm_ugBa3bmTeI&Ap_K_o5WIOy3$eZ|2*^S%;4K z#TXpWo564QPGM3FR#wg~finJ_GEW5`$3CsNxA;-A*fGIU%+F1MA2%w~KC$@F{+K!~ z(ng_S3Q*l0`Be1l7uax8xZL3p;hEK=;tqbK%6vqcnmJ>?x+{maGaY{J&XBrit;zlG zE9WLmDsx>6LcWGj!b{$le~`-`uMcWBUVg|ttB$74vykPj90|Cg#+MHUOe|dxChI;a zKf*FQ>gP0D^_6q?&mmuw5AbFi!(4p*{Ii38OIcl?r}CPa2N*j5dz&dFp%#- z_hlkB`pq+PlwM>BY|3YzJSOh=yy`;PHI>w27-(_*=qNpIy6B~pXTi`01@B(6EUa_W zSMC*J5pvP^#F0vV4gF7J!D4G}5RA-?1CB9hbS7?qabkkXORaE;zDY{J+KS7D^ z&TSFnOT>yvO9JbGVp8KI`hk9*2JD+s3>Jv zhy&D7I8wLq8OJS|VNkKfucFh8N5~@^2As|LUCcY-CAXc#eRgg+COU7*&sKAJynWN# zQBwn`oUr@zr)fXSr-n7$w*jTM@%0m z%NV`N!k1Qgb`X38uLfdL&PgBOHNK7Rz^t|5c`^+$ry1fIFQs3QJ5;1m^^@|$0HUB# z?{DXe?xnZ$nsChgo_(HGH*Ib{95Lnd#)wX%H90iA<#olW(DJIB23$+OdbQZr0f6bm zkvT;-l{aR0alS0Rx929G z;QxR0&)paQ?^t6~9~san9~r95!eV|9BzEz5Z>S(U%h-*7PoKCB2cc_gB0?|4YHS1D zHL?6aOC%VaRdQIH`p(#oA8sH6?QjFX6mxH%IKrbKHkKaS?-FAFnOZ7Mv+@ zEyI6ycu%0Ro{Jai z{wX!wSe5J3d?@ROxM#k>L_KcagutKf)dnLAWoZ|hSa^d29-q;9yq_T;6_z45%9X^#coZ+Y~Io`UL*n?c3+6;1iVfNng( zbrolUGIo10q2ATDw#bp2^cQja$M6FRd;vgX3CTG^-Nmx#)yZ8E-(l zqw2<*@TD(qkYiWF*kUb0fx)Q~%9V9Z*UT{hdulDnyfoGR zfu0y*uc02)FK-~qnrbP+stfwC!wrb+B|^6_8~&Qj*KHCW=r_&_H(}!Yg$}I(-*ite z%iu)S0lGoNRcG}TQPYj-f=p7oaNlf)uTTO&p{7}OzW2CCaWC!6!~<<%$~nTI2ViiH ztID>axFg`BV#p~9#K>}hOV!CSrb()rz!3w1wd`00*u&(KOmmfWIC*e$)%e?mhim5% zah{T*{LoYvcIiL!01PBPvx5X6pKz(`l;J~@L5!T7IJnO$-!}_P^A{;g@T;!;~Z?j91PkK@|NrxGoIARJE9s@z*qR>x^ zHp288^EOVyvB@Z)oANRsO&^ykQ?{8iPPc#tOzn{MxZ;NwR4$d_AJA84tR}G^9=nIS z8ytf878l>>eBIyfX_g~xYI%mj()g%?&L4%}jCk5yvBl^rMo9s>r+zd}I3WLnTvC6< z%KUnuGr|v-ZDa}5TR9@K50|?KRJ2i?N^H(~g+J`DuYLjXC6)TfmL%E9zVGW`ic$z!!eEdxijZ|MjLI@(8JTJ@ zjUk1>7z{HQGoGu@_j&H)evbS31McH{-1Ezv$2G@wUf21a*ZX|GUa$9=cFXbx?@_U% zEG#U%rhi?#&BAhMmW74&9v3TcCVnsN(YS@{$FpI%87f17bXx zgQbegm*rOa17PsR_$t(KWjOmQ^w6lUG24UN>>4a`CYOQ1*NT_Z_l$n)L@hc7U><0; z{I5LmAHTJj(@7B-`1wJ$@-Q#U&12&%6+(xAfpto%E->5T*L=|ow(?}*|C#RZd3nW_ zyPDR_2|m8px&Jx$Dmi$+l{v?FEAaj64^gK@ucmaWGtd7YZ_ubc0IObmW_9gfXH!M0 zdt9Bj`PbFzw9Y!N^nWefNc-RG{l~)ptq0p^gcgg{R}Bl1R6E()nwlU-H06^@sk*@f ztYk%lZ}EUWQod`gEbN#CCQ!4aekFlm1hw=Ke-87rFL1^}d@AL1p_b?w{ar(mc{-9z zN6)18luZq-qWPosPlHvIxRUj#w$50pWzw=RUz4B?Pj4+o;5qCqet@QLC1xKc(c_olt)Awe$qNvdCrSU?`E$j)9DPPk+FTjLSsv@a^djr@GsFy zKQu=DTcuuYK)IGKCJ^9ehoUjD<`|9hw~{4e%}O-VD=E7Py3nyjiksj}0_KssFY<~@ z`Ix&%87K?&su^>)_FIM)&-jA}NTp#liZ+^3i@EqVWCwZ19>aE zXdjRoVu(NC2AiYE$l4B3!;&P(YR!$QfCSJEN$wk-dT?$MbCgi9WT5fu(!LE zQ0>^V!o?2AKz=jlX!$1JnB9C|K74Hm=4bx%3?C=Nye$93V|NjgFI&e)v>K;+6TJx> z#%|^5Q{wLl7TYt3yIMFySBDMkEiBLbANng^~HVfx*V4oCSg_jYxJN?Cm<&? z5O-HMp2Jwc1tJp&S5`oC%Ji&-R{Gmjb7?j2QzUe*AonBvatzP-=h*coCa-2N3Z^dW4eD?c$2B(ZT#cC3Op8O-P;Vc{L=A%;sU*uX{IgG%OZl8oF@N zh*JqC;>w0i(f+MsAV@^KRDqZLFtLPSP^$U_IA z$BCW(liQgpJe=sP5?G_z(TTJx_utf9h?vG{j0VHS1GZxi3}OmGyBs8FiLTSvsKgGM zrvG!_yFhOIPxWeZH218V-YRi}`xCmeS; z2JuunDzz=Bwx)>^564Z(#$~ky!EtpoN6d2>4GWK+0a7$BL{d*&o`1kFgi3qlM0`{ilXsO%y{_!U^d0|Y%YFU?)5|!Q3VY{%$E$!8TlD4?A-sh<+)oCi-EBa`& z+&;*_TS=O1JDH-nQ#S3WcQ@wBnL~+e^ZBhw-{Im znP6&*-q;YfSWiV)^-qm?(SCi?s_iK(;9X)q8+$63Lf*diaOTKTBV+ZQ*Uw8?K`Hk5 zxzMNc?FS|kgcEkk`X4Gd5>tpcBx!Hp9;YX$zA-PDK(mPOsO-GJ+1th2^Ca?B0V)N4 z%MgKV#F18Qwe89a@OddA1&m4<{kgvHd#8o3TbzUdgt3bAtQgK@!lr*;C#>6jkFr2d z%9TdVH`cE-Iy|46hQQ}Pz2Zm|q!-B#Pw3PyM1nO@yR)i(lbkb?&tEFHA3mSu5z$xR zMeLHJG&F|1(s_M(Re!3jE}~98%R{!pwOQ8UEb}d`*i~^bOJ;um=2~CCv-!zYQj-D- zmatAa-@P_6e?xfNmTO6TFm&iRuLVY%v+LA&3N&*ywRazQr_e6ZGrg}kD8GW{<5R?x2rNMBxQ zyD73rsHD9cXJ`o&jU`9`h#YbYQr1y+Vw?*9lJX~2su2Xfy*`88>llJh#<%=8Wa*05H%1B%)ODH5p z*E*juk3>R?}o=dare!_H7P9K z!MVhkbq7-P}v8J{~?kl<-)Bmgog z%6@=+@=O~8X8Kyd1H0}6%)AB~)xeM7M~rhRhN&&&v`lH0 z0NaesCFybR=EjTtYRS3Igrc~*R&)}C(IB&1d?#FYCr%_|-jESnZ1m}J&zwB`gOl^@ z$i|s^OC28tz8gJ1^fiBdvenAuG$2iZCbG(y;0CHuqihjy)AGGL9-txS_b`sn?_-+w zqd#uJs5fpF_Y@|@pVJ!hji%z~CZfXc``i~$T+-WSi%$|K0ek(~3FX(R?n^wL6qm7M z%s~>KJDyy|)BE1&c5NepydAl!cRE{8JWqP4j~mh(*BIWM1eD}%6(h%#5`poU<&&!m zu5KHNJ@qTSb1JbTgYHJEOCyfju78E>zTHH^$wShn%bn4d%E^*%Rvb*@KEGM%Jg6Un zV^fHM1tCeo!}k4?R>Si(MvU@y)Ws-gStI;HT-knnNsUw6R1adq1Nz|N2Gu~m&SaEa zp%O#NX2AMVe$m*w2*ZP)X{q7t8s2`z16y`+`_Du^NaSm)WZ-iOLLz4`arrs{Wi?Tq zZ~NNpC6NraR~+C~$WM-SwU!Fi!1b9Qj3g_HXsoEixX8l((j5WzXDMu5B8M{F?F&q- zrMthE;y$o+aU9CDjt_psh7`Q?KkWD)G`an+r&!ffwTXlt5D(Num^Fc&RZMxJjpW~& ziwcuClZ}c|WZx0W*Jk;@L}h%~tkHCvV)~TZ$Ir9ZsvE&*pbTxf{Xevyr;rqDTs_dpbMoWm#2+o6@i# zUFdm^-Hb}#4bhDtF5i9N15BdBmTt-ZJ+l3YyS8k_8K0FC@vzmBq>PY#Y(_j8<*QTDQ+hi4lbvu-RO+7P5A&>=+>}X*@K_ z8LMFt(AYfWzPKHE-g3*^(eo^2NO>+@A5AX0m^H6q@jDFHRx)}$KI6$B`gaXngz)K$ z0fG+xy8;{^)f&AN@i}eF9=K1ZwgmEp>VzbhTUL*HdmO;!j#8?(#ED?&4})_^K^eZ- zvPDuf;+wyWR@?T0H~=Bf(lYOb*}V(}&tkkV(ox7{krKDcFk}7=_eT64w216&G;}Fr;r;vo@qXjrl_VxE!{g^bBq$1_6+w7e zA5i_wuo*spSO2MeJ#8L06$Dop_U23XoHXK@)EK?SjjeAn^f*hIQe5h%TR(D-)rGF& zeFs9~C!XzO03ZQ-Y`Y>#oXhcR;)vPrQTRw9rKab*=HyP8-}${a8WuJ}CSX?in?fe4 zZ3Z6rL*zeyg4hP#5>UGQZrhazi8-lHp1%|k}A;k?*&hnsKdJZEJBbQy1 zRy%{cT}q6=Ndd-Gek_NviuR+onBVgsMK`+N822*uwW}O`{yO@_HQ6BZk8qjUUjY)K zP$jm6FwYIKPZ6dnUbyY@{$PdY>T-S!DWp{{y|knasy9ZOtNI%e4+gR$w44Rl!z6I$ zP@Kjp22ZoqzvdjVr=y80pbUjyum{XtvRyJ)Z|J(I&j9l;On8rJ&o?s9&6qzR1c08D zTKPGxzc$5g>qbd4i3UQD`z9}o@+2r64I(XYZ=kdrQJ;@pSq}N>q=JjZ)v!1g@{q<$l??jn& zDf`W2^`G1fozvM)+Ntir#qY_tJ6;egXTM%|>3O~jWKp^MmcCU|S{O3`4(ixJ8Xa6G z0nja!{Noqgl=yE~;2-wDztP~U5qai8!}qozTR`x}l>s3TV7C@B2#G@A>w|D|>ABKz zGY;$8GxA)ldj>T%7lvZ7iBE4gCxhf zV51h^uXZX8H+k8KrM@K7ow1MI+gEeXY>Zm;H)884&`*v6;|<@VpsynY*zF5UbxXj% z<7V1|FdDYDiY{wFW;tW00uuCeo-CD{CZwcc>(_x>LUY!?rB^=Z1i+@lnn=*HDn3tb z(q1q+Ocv627;lh`dY0CV)y{%O78v~=f%mku1*J%GCC@JR6vH;&Reqk$v%nPjENIMC zxm_6TmP=nirN1+o&JLfLWw^+btP}(zolmlVoJ}f1EBG&Ppq*OHJ761<3sb=l&dtqc_ws1`XEP@Ys> zU;n8rY25>(VNteNws?w~3=6cOz~j}?;aDsKIH%F5U6iIC+kqRN#f0|B|rPO;DP^k=no_ zgU5W&B*D~M$#mE)--F>2XTtixs~`Fyn|}!_RV_CbE*Si1o$7kjcyTgikvGMh0uHo> z9p2li;anM{(m_!H4e=8fTqtcn?|!Wyj3~tvW!X$*wb`6Ymx`OnPa$cB3$WjoZ*#;@ zly&3sx`R_B-}i`&kWQpHAM1L&W}s@fc)soCY3-<8J>l&xTk!Kg0XcD~?s3cf$g$f6 zRTw63@2%rM_$YTCxTQa^yew-fH7^Ir zAX>UQbWHjdqqPoW`ub%SUA-Hv3=lmI8yc53YD>ZbHX=XT)_wycT>mW8NjgEE*yNw> zjrAdXncW|DG9|~Dg|2}+wpGNrmzXEinz~9|=X}5h_17y{oyo#*7`PAq;-)E7jJ-RzlPMywrL2t=gf7iYM8iTyp965qQfx z&n+4}8?dTld|QoYpPb)8h6Mj52zZSM5HvFfDW&!>@lA<%@?y4EAToR}=PV67l+|?Z zdhiWu5@$tGb3vL3B&0&NF8)(rfa{~(qeB#@;KTWdLlpfp`>_f;ZTIEBR=6sf9`7Ju zUArzG2-h`;;5D85_<)+Ehl`7OajaJ*|9G39S+UJLP-LTqMxTeiSrZanMe-&eq79cTr6qxy#`}o%QOjCQVYJBEyiR zkMI*_FAp;~>yu05^Jm_C`~1yR4|FOn+g%4XJG zckgI#CK4ilY(}GOD!DXAaa6H~LVs8^_u`Ds!3*u8NjAZAu7u_9CW`IL#=uS?Rl6SC z^}b^em(F=?oDdwknF=U+4)P}G*YtU&PC2b7A7nE792sO6|i(2m*M+wyZ;}8 z=0Agf?t=U$8vh&(=7xTQ!f;Fo2g`@;?8P|1!w0Fazx~|wi^8UVv{U)cC`3 zab<8E$x!Om5#Rma=DMJ=lc{qct?Or}j9fRroiMS^mEPPrr?yuf6Y>G*T@<6Alj+t% zjBQRwYoSfabU@Y4AXLwMHuYg38do}NYV^?=m4h@!b$zX0aiyHOpCL~#AZNxd%AAAP zW!+%V?@I7-l4-NK-?#Sd81ZKW#ywmk|0rfy+@fJ+5Dw6O8*`y5uJj`E{6vS`QBxl@ z1!!>i3%(9=TzsEi={xq!8T&hK?GB~3=4i584?(#j&5B|yTBlo40-Fld^f*aC{An}T z+CnX>PlkwW(ceV|#YD;AKB@o1l0RGOEonUuB)iwguA)`)kyHe!wEYFL!3W`2F8_?s>BR{qIlHCB|MMNPP=43nhW!@wy zy4~(*6iJ1rp@4N%-eo-?e(w+aCUuU{5*bG}?SXgAlr|Mk^N!nf#yT@v%)ZV{_nS}` zXI*%E#|>KY?NQ|^zgC284+FZdt2R+ zz0UeX0s&aoRY{&+fXeP{ya;|_S$meJ7wDVBb^(kHOmlKJ4Bkv5N~F$B%I=@HwSD15 z{N?e7$xo@`H8Sy*`4^Kmcb2`cS#SO1UE7eYmTp zW;@;)yFGiq1g4rOyDE!a+1^cv_BO?Qb@B^?5dcYDf6`;|R@46ch6rk7eWj15yl8AD z(amGeLo!Xm~+4hhj^{YebW+b_(UG$pRj&!{GUaUS-&I6nWm@;|= zZeTPjOyNa<9uwe~f8 zg1^m$wtL8SrRJj1y9tKOrkHt@PB}VE0u|(wW zlazPE%n`5zeaG1!t^bz?_w-s|BnpejPx;+=s@Pg62=3_TTa+6Hjs^+);fhgIPaNs) zX@E7rQOyeKnY2o|5xd94(qH*sn-v`E?lyfy;Dd9T@gbC#L5o#IWhX4PJpDLVqY<)E z_0OrW7R+z91L7rt$0XnGZtcEPoQ?wQ6R7|c$DT|uBi^Imwm?x#jpm}^DVGLuKLK{w z+u%Jj;D1~o-FUB4zjq?SY5O-(p^7Kum!@C@d{|xA?ym#E2zM3JTq~lRma$_GAL$T- zt6D;{TFa&9=&Dm}K4)|;)hHh(71rVOOEe;uhr03JZo|GiUt?z>lKSrYhsnb{yO9R3 zA|6ME9!-V@`YQJ@_dgqy*48}A(qYweGqEe?*OW=;5;TOftk z%qbl~I3qCA+{!eDZ^Y+%uSm&<1i#F0TWj9s%o0Os1b)pX`20SXnBzEgXgX2xbEO=U zL31T~`yBP02`?-P>1H)N5T5C&IJ9{`8XJ`gS_4_Y)8*2o8>(g)$(IbX@p>zyR~f#6 z#yE>XBF+VX-l8O(;o|+S=5yo=_4%12L>AhPFo&@uK|)>dqdD1mCFmw)_wME?KYrT& zWO zUK?6G>CH+%E>*BODyn#XFuzWRy1TW2+u#F(BP2w^?+%LYom>5=)8lVdoc;aY$%@0|Gp3kGfP*?| zAshs-=I**6f41q+wnnbZwlxTfe?hI_pVT1 zlQSFt(G7vu-N*s75Nu^TzSV)Zehu_<;h1a5m(4F?3LM1`eT9i-f&5CkjrCUgiC-XN zWz!F+?~0qAm&fl@7STNiOoU4VDf<;ha4JFA>%&B)TzcgoC85hUE61;VgV2tVrkeLJlCT)7i*!Z#hmldD$zza>w6q^Yy6%U@KwO+18zAh zptLa)#wGn>H<~-*h!@m__L@tqsj=hg)jiv-OB!EL3*AVn@VcW>dW<>^JhT&M<&0Hd zvhuNtOY03oajtn?h5v}xPq1?78b0}5w~xEhKEYQhBl|BOD{vZHI}W&}f~tPqd;=)? z*RS_(7!y|kyKqHElrfX}5i|vt2d2t?FrcL(I(kdi)v^;2dnR{m#>ZKjeT~{==5q@; zCm?#6gcn!iR`g{d{I;2x`g2Z9@!#W|*xQ4{>pxk%T%)fw0%zk`Oie7W)n9Q-{x8+F Bi5UO@ literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-show_address/00001.png b/tests_zemu/snapshots/fl-show_address/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0acf89441e10011d1dcf673627b88d6f7d7263 GIT binary patch literal 31748 zcmeGDWmr_*A3u!J-Q9?!bmx#tNh<>k-67rGrL>@=Gz=l#ol;Ummy}31LnCmu_wRqM z6VLU$J+IC?_8w-h*lX7JQ|ptax*{$X6&3;l0Pvf4i1jfIgql`UbD zjI$a1EBo}jkvzu8AH{T4mSCsmm7wlK5_zpJJ-6MB*m-O*1&dmtIwbO#B&4>$U77#? z#sAkF+)e6}cdeglkuWPKL-#jQ1l8WBS|u|aY%5L^ZRQ)?*6Tu<8wM*rRDqwrNQLzz@ma9NB^zhilIojknS~mvofJa+F!oECcoclhZC|oKh|8T`& zc32^MYfHBzh#Qb)MM-lS*0ww&__gG#%7TE4m8R9x8|7p}Zt~kCObf|itnL^ZBg#ixkIi2Qn`wBz@tvh z?8wpah-4p3wO5)d^QO{9QHzC@i70lP9An>#k7yLIeaJ+^`?w{Vu*IZoTdVc@JmM^6 zX8%p2P)tEv6;B#A-8bl~Z{?0F{hPcyrt(@rq$-JdvL9s;3!STxI#vx#4qOAWnMUpc zpt)HVe|n{R>jqo{Ky+n-idwURxC)N-#C_@aZmqD%sp!|yJ&r43UrefX#gk4wYYN!9 zV~Q1F8|!%|rZB4o5W^hLy>F@&ckV?X@Vynz zx+ng*<@;Yhw*z3JO+sI}N9!IQ6E^LS49vz3??3ct7|LXr{ZyAikQSp$bm8UXh`t-- z9IYT)|6kWeF$EJGPjA}oeQzFvN)V@z6~3h4%biC&*(7YWu*Do+VV$B76e0!NKn7oS z{rBRl&Ba1baJ+;QDG5+Pz8kzbN#g`wPgn&!GLBhLL`7jxv1Nbw{_;MkU3!)tMO&M>G}_-Es8|gf9b`R1p%h}QoLNWzW?DKYk_D6R61QMTRWr&~ z6eS2F)QJVUjCcD9M_u^(?SZ8f!^YaC^L4@hCKVqWQ_yJbxR0tDjb2~=Cvz`y(8~}N zETbTJ|E7y5&Dly@Rd-icg+PoR6HVNW_`m)P5+TL^X69+{k+CSROb?w*vci0d;`C0EKXnmJN1quP{O^^nqz9tJ zbDRet`B#p1!9gV)2wERd&#BIcGdM?GNJVinHr*d=p-s?Dg7ZlF9cf{OH63 zn%6zw^=gNZ^Pyu5=3XtoY&z8t5B*4D=Exv-^D_PV-x@>CWr6`)KzEGiHIp{5`-=bn zYMX_a&*)iEx(rol{KEcreA(h;M#43z0jyq z#3q}^XltdG30*q&a-jE?*FvC`<@oN}YABo)UtV9(0wZjwL)z&PQzim`kT=`I(1#$F zPbepY=n_Gb3tY(sC?ByJ>R5K+cXt8SkR~r#66QB#ZmwUfe7n~-Pq)r7T(!^4W(3t{ zn3R*5FoU+;>5!fXcl?gCgqrdv$UPhSJG=pyKEtl=1X2Lw4eJPeWh>m$6T7) zs?O2sIf0GW?=KTrur4iQJ5=ShV+f*weUMuuX5`B8bxv*p+gVKF(AHy6yPtK=?nPO7 zx!YAdTTH@`g$-hPxnHMol^1(V0UW2wV(nCfE`{lnX2>qwt`nQH`w-!_)pvE_FcSUf z=HcccP%5`lT4Uz&F2HMTYwNtUJmzt}V=t(?*;u}+6n^Ir^z!*b-#xu`=nR=mslkVg z`KGQ_Cm)$i=)5_I4nIFj@6>gfooarx<}57E8X~N?*>6cpj!rAeTeWcL)a?Fv=GW=e zY(PVlX~>;+?6m?3IrcitOctlX!~U@u6c`9O{q5HJO}&II26(}T!jXN9HxINE7Vj1s zZH^)gQyf?ReYr_bj0SJsyag>PmTwWMM6T4JTxdSYOTSpVg0KZOKTAeBSw*xfChDrL zj&pl>w2o6GD?VU#p2B@Mo>8VkT5x3s^8iTfO2PVhK>x z9@+JvZk~TN(w*YguQNg*jz*>z#-cW}b*@JeS*D{$2MURgGL2KsXS4;0s?EUf0@_z6 zb_LoM4~JvPh@yFwlSAwyjlLwfZfu{Q`+#ya>ZOd3y?!P$?wOH^njwlGrus$e;TMxy zb$#quKONeVb!JM~0!{W#WXyar^7wE1N-6v2dP{q%N=ItHYZUMz)`iI!j8A~j*50#e z7md+f_;v0f9<3&2gOrJ^X;dG_;Tnt5jD^lMeTrINpszR>W?bRd5Zo-5VbHJ}dTiGg zM@92Uj>ryTLj!j=v6XTt+P(fp11iD6^(@g1EtesE(IetW$92y45jHu{iBx~;LZy6!ox%r4&~v2o(2WK>+F`@OQ|cX| zP5(OE!Dp10bG%&qTf z->;|Tgf^e&Q$@5uD47EKB~#c}?8ZNsfuB!7KFXnV)}h2?J@rmgJ6obboyH!w`+l!W zR^QYhx|AQ?_@~JvRu`CcR=_d;m6_pajm zvN&>}A^h}-P_9q%T__p!R$-9E!b4lo-3re%9hF-L0Y$#Vab;#df;h^Rrd`eh1~f=k zg_HwvnZRSq*C53`w3@w${3MkDtUfs%y#uZ{&u_FE)=z8ad8dh=KNeshb4lcP--Czq zog1D?$_ttt85YS1E&B$3r|+Fp+z~4X383Q8ah* z<{_I5nao}fA6m)F&v2^`CK)>4I?pq6slmZ|j?5#6gh`hMNS z^tT9B4&52<_#VQ~t2cY8{KT{O{Bbz@Bhz4lYWbbwy2KR&2-t?$dZlX8t%lsbIg^iP z2F)=qaAmYeT6D6+V$Jxlv6U}4jWv%~MzD~KQj0g3ig%Ry5zbyKvGAIl2O-q;ht8jE z)S`iH+)>|b03!t3uB58t6x0O-24-*!6b36YG43KDmAzbEI&725Rxh1RiWy=@4J8R8 z(s6Me7AUziptAmR2e)#Oj6lwy{C=oU!2%nOH$!`ywc!KeuAX2#3=Tn6H$c#^RbXoS z-B4w3e~Y^s`;Hqkd!mt!w=0H)6~N!A^Q7SRYGb!UV9_`Vhf_$xu7ttZ}Di2^zerl31IfpBIt2v5ju7HHIk7EAhV2b zBx~M#&78Qe3@Ue9amE^_>3QLm+F&r46lzZB)LVjZc~XH6qe{{xLK4iFfZtgb;=328 z+HiF~8zl@R2*P9ZI8vrslg}iL9=8w!xm=u(Yv$1m1Q%O%l6=4IH5ylwKME&o*?qSS z;IXJzb7&OdU>Nt}RenGl#zGpedj~;xtpev*PXhJ#KHm^QSIjE3X<|%s50L{)kn_*i z*yRjDJu*Uf4@{NlTCNw;ZJHT4^r1O5PtlN#UuX!hZ#p%@D_4~&R%3Lst20&Ran%Lq zonsYdzbr!nxh?Cd3wiTv)oBDP)!?*uUhS=G9b<>hw)&u2QL zZ*!QG!QlMXhB0HRK<|*x2XVX2PA^a-n#N`kq2(?@VU^F80PJu1O7xOt8&7gbjbD!I`Ue5yD2D{Ct!iY$QP|RhIn;|oSZI6K^SnE zEAS!!_`BEb{6;uOS(JO11#z|2FSDs${dE*UuTSqB(QSshJt;Rh#)f|aw^0+6I`X8{ z1cN$-izsl^{wOIYTh?adR-k^|N_R?pX)1JbE;J}yAv-PjNJ4xtz<<3HX1%?BdV_5e z$Y-bk3@vBZp(JcOmN3lmyUcUi!r>gHREE{kpM_$Nod}iWH%j)zQ}!FTuf=Iz3kkU_M1E69mgdj?j`%JE`q;aQuaiL;rm+9s0+ zqhHe3g~Kbq&cO~wdOUP@9&H@~0K;7vnSZ5^v(x^ESQQlO99RA!t7gXZY6>merb@=W zn{Mjg8EZKAj+dwE749T2_}5P964AkWW-k(lTD*jgMvuKLZW2%hnmcbv3@&69VenpI zI!oG^-iTTZ#D8faIeE@1Zo}+1d53V$b zRG-*(>(xVANGKiJB9zYUu>L}iDMYlOkZ|d~u~$bCi-pj!o(rmTW3ZM@{Nv_oSHvY{>X zHSGF3O^&kF`zHec%xt!eEx;HG*AzGtak}#ZXkmoMQIz6zc9B}bP+=qXls%@6Xtp{9 zp^|rgBN?ew#6e_gqmv;urKDyJ$1`Ik?4|rVp*|p!2VEXe);FYq>#6 zVX2kUU(ozIE~c<-tBkRPm&yGCW+6UGVITaw^0gxI_@*0rGF{r+%=^iarymO` ze!g}6G#1dV`WkfW6YjmzMHAqlXn1{>r0INQOy1nDvd%sg0GRtow-lUTIw>L|lWH))rqAl6{cM)v$H-Gpg5iIHDQ)56e&P!YS1vbuMU-#@D`03v$K$ z1`s|S{&m;7Ska#S@zH?}VljG)!jgrP8T*QH2q}tq9aoF#oMWa@iPpQ|6uX(p-4wcz zCqxaDuVz;DR5XngGlqL3+aZWzixaFd{SFwqU|7y|Q1|u?U2lvni7*&zVYjNlYrbQt zBHI{mvz23o`mt%jfG}41R8aenZwob({qxoNYkX6SvCs2(FlZ>|*)ANji}o799k+Jq zSD$uMC&D2{gQsY}!ct$eTeNFu+7yEq&k%7SL!CI8Ni}&KZBMAJ+JJM!u@uM@aL5DeTpI-8dg_p)OSWoiixXV8w>~o%NW8Rd$eY-5Hq&3p`AUkS z&-==(O;rjxNa(nY5jqim7&CFFrxs&`LA#eY6u#qJ5XNtuXXTCMzaL&3tALu$jG`3 za;db)_OR!t$JpolwGon*usi4G73=y?mJkWg%F7WrjZ@4T723e)FyFw#BV9PyE_seE z<^nXN&o!EiS7v+byY46kfXAFByUbN5^z&|liPH~M!LPG<)>$g)4Krbfx;wgomDyLE zAD`4`1QRTj8vI)gH)4_=qi{`Fx+6a~N%BaWqDU^ba`x=t2B<#-NZmYiCOTn}dzO*n zobTmLUdF0Pgh89whFIctq|dYX~+=SLNI zq1xE@xLU6dXx!nhsGMqU*eNU50ekP9u|17~0|PgG&^vH1G}KFGfFY7v?KI~=aq77V zWYBz%Ud)%2v+u23{&8n@EkR91PjBGCEM#q=UBI^*{KZLXEB;|n*4w5}nd5(i!?}9l z(5s!)jsE8~ugMk`vU2dCoP2v**I)@W^V1Yj7CXTp0?MFa; zH}F^+k59+5D^G@f-J5{CvzliVs3g)gf52F$IN&BeS?&8^+Wekca0i*By zu~{$6rp;jY`2*KBMU68CaB{_k>ZsMeh9*f4>D~cZ5yuqNOm(aDb$-t%dHZbLl5ptO zxoBQ9ptFsO$XSz#%N$CS2_f7s7P?u>jUG|OPsb_AYi-z;R@vYE*-B-S1&gK z+6?KPPY51uR(1|Gvj4-SYP(VoM=lUuQ`jpO;szUQjjv_>b&fY)CjB~+)479~4PWl_ z6SG`qOStKtB2-S+gA-{oyQzINa9^HEF$lLD1MklpKv~I8J~Eq-PuLk}XQwu`9O6_J zI~|od3u&{QSii4ReX(OC(9Frfq!MX{E9k|1N9}y<@VS{|33cTpf>wBkYz&@Qd)#`b z6dHwPRcQ{z>Z@Kv6W*ahymkQPPKpqc$!@outPEqCb~ZLMC_qwW-^~Mpr4LB&+)!Au zRi-;$FR+a(Y4-!iGD8Nz=;(p!Gm!z2Tl=cGuBkppv~a_r4^XYP4D}*yo5-^&3#@=z z2yN8MnpPzNco`U+{`zedC6xrC6y-hF=;la7y0Le9fbih`UpjZ}9v`4q zB@)`&qg#~l$A|kp8g^fNLxtAxablCcO-3R6GQ<3wEhaCy-WVxw?~ZY~qUW{U$L{6P zW5rGNCAy%ZRMpjQ4#%{s0IL<*%3pw0IOSB0VR0AQqIYvOE26Wo;lNp#lhn z_)GXh2JIOH>~0=ld&I$YB>ussv`q_?dq+J5OMhOki5$-^{CiVz%0HMWP4OXz*H-Zf zTYB?(87OV=lb6kfaZfP6xTL!{F73}HC;?-O0cxKU(~ie&V)`1pM#?oYaJJ7(COdSG za89cNVDnSl{o9fh&d2lKsKmaZi|Gbu9cg>y*7ek!Fc&&9ODD-e{r!i>wF8>;H+k!) z&7P;sN?lLa>Zk9(U&XM(XKAv1f9w+PH6It_6S(bQwHIqv&>b{8GBd24Qm*t#+wnZ+ zPacn6Tc13tsxWtxbQ@Q1oex`5<@V-0JZH|!&Af%-M^bxmji(*j5ZQOHI?ZQ@@cL*} z_iY&D4eZ&k#QqcOxd`fo#0bXO>1A%13^_Mwws38KJ=MSk)sRmEzblTu&(kRkF6rCd z@ar_+z-oMF3*ikJV41h_FLcFrrMW35i?gJ#C?<&Bz%t)2ax_@f=Do+Oy#Y-|%;Q=0 zpf&_f^4^lM#V$2T=d#0oCJr&fVlMn|8C?Ha0MhvXw?6Ba+$1OMyUzfdjQgU`su5pM z5s%eC#O6w4Z<~EFszn|Rn1gwxG8{1lC^1+K|F4UmZYdESCItiB2L+reN-oHh9|A5q zHkwq!1^Utj)%q{$aY||Yc#@<`oiX!q^x|Cj2W|zrh;~FrhDqeYLunM!#fCGPeJSNi zaW%q-N}p>3+NM0=-!qki5Zz61u(*P4%zfw=6Y!NXp*dHKf7%2^(p_Y4(2AIp>zo99 z`IVVf-I8xKXEMoB=}FBDnmJ`K8aF351UuZ}u_*U|s4Ycp)aj}pdh!b-uY~B3IuvO? zD!Osy=ZQvsvz+DXJE+^I%}QyZPdsg>tDMaFA|Z5Efk!(}m&~@Qoo)I1UH+U03yG~g z4}UC!ZA00sss+8?*@}$QadVXKQz_bgOstf4`tQwz*}nAtA~x;f?+7o8?<$q4=7fy} zl)2WRcX>X1DnrRU2CLqb37Rxik`7$+*knniv(_f0FOn@B$vMPkkcwEk^ZjoewlkS1 z^Og?J*?>lDZotT*%#VT1vvB= zd9Muven`)oL$pFIl14}D_yocr-<&Pn-$A;N)Y>ANEe^Bf6jgKm2C3Qt)fu-rvo}ZV zF)z)~Eiryav=iWP)-|f6S}npBxht-Q76vJ1+6=iDW!ywArTHIPi0GE_E>Cw@bZb|AM;)#<>OLPaFU-}A)$l$KV)}ab2U5oa;AiZ@Atb1W z2RoBx;}8w?{1UgX^cpSyhfE!5Lqn&#LjAm@a?6G&jd3KfU%>%O!CL38SEbLw)_?1}8Pvs{aQiLkA_rjUn(^DJ! zmiUg&HK_*v5iV07gL0u|hrJ(J z`A9p`R$CMhE28ycWw{mwU(mc_RW|>S^eOnV_G;Ia2Hy#CKT86AsC>+y8C4G678m z7fU{v=vY*~?mj3{gNJDT7E}1AA*Jo_Gd(}4TtG?XGKJ$f#o|m0(jKv%2Yjf@irKoo z^1DMh^Htco_HqlHANiDN8GZ7AoD-c&|(v7UF3_Y5`sktnt?rTR(5{m+4lEdaQzAU&BRGO_Jn!zS^3BbGAULt5X= zc>@~8ne)cG7=j9!>LmR8pzc#I34Pkmrkrq>Q9yqZ&+h8#YFatAt|v?|;rGo8R%Onj zd*jqhO-7OY*(>MZZv5Cwf-X@ns;vs};%Ls_mL2-FuTB$rH35L&_P1}Rac#p`Xe>tk%<7AZPTPiC)??4szZjWQ8LhYg3IiNrFhLo=8vaZuZO?s(0E1h9U=PN5 zkSME-N;7HMrYV02pB`->(Dh*p{FBu^P1um~@Cf)!+ZO*LHjUt&<~o;|>cy7+AAV2D zc>_uG8?(s)3NRJ`QN!~bS4OvA(wi(?Ei90)Np#Tq8)K8XPix%c1sRpl`bKqq<=tRP z$(kQ-kAir79190|5wt+Sq)NP8{WbQO-I;~LXz67C@gYP{n|JehK;|cfDW3=kGN3Sv zXR9|@FexJ;4kr#F=Ol6JB+5otWpfzrgZ~)pVK+M5{Yf#*#Os$h^{WvFw%zV^$jVf4 z!-Z$0Gpp~rd)>a8|7Jbgqns{jSFD1_r_;Db2Vqp%ASNbzbk*$T<;;k^MY`RT<0s9$ zeS))kFKm6qyxd9F@iqeasfC5KL(}pJd99FG-bwdK+E0Jci|YN#Z22r1v)*Ktl47ws zta!Dr;^_cc9X1`zcu+P1Sha{>RgM*|i(xw7{zzuaJ&1KCVRl+wHvs5s#rco_Ib{*A zXVjd1pO~8Ma%KUW%YdfQ!n}WxB<{3P>jbCL9Mf0c5oHz;E=ZnHlxwH4$U25iNIcf2 z^LsKo4H7|p(dUN7sf7kZ=Fo8I*=|C4dsY>5LN};?j=Bksx~UTN*w-)}V{87P9L6qzl=T5`2nGB`L(FHVh!nFg8)Fz@bb`Vv2$EA8^ z->NT4>*Yb{5650wVxhn1){W#X>1h0m^*D=`TS4y>kbum9OU z5G47@F7$Hl$Nl2r?E1M%CuhCa9zWo4AQq1)A+jeScP;1<{9Ul-YLo>w0pg!nK$HoLb7))BFQJ_Tppr>EMV;JIR^ zlz4;Zh3=U03~#F^KLjD#JH`Q;-CYs6K8$^j0jKyiq3seSmv<2Wu<%{J<_nZHj2@rm zXy-{d4}s-La@U5v@Z<-v1-ZH#OWlHcy>HEy%PFc>`pqljmrR{w9f&=VHz>|IUZ(a~)LNLeu7Iv4Tg2}Ak0B8(SoM8|#}wGR90JpFQN z#@EkC$d^-2F0vE%*#^VaF2;)nj%1A%(%H@QFalSaJdL*S;yKnvc`Jlqg1At<^G_2% z(PI%)Hkk=4qC68hj%(mW4wK5qsVVs#!7|ls)VFWj8S=rTodhs*5FM!wU;kcs1vAoIDC$El)<)Uk3*ml$2voi-ZDO(hGu?6{KrIyG5Bp z7jHw+kpIpm#Q}CNa_W$xPQ{u+67Qi1g|c(1vdB*t`BodqP6nCLFv{LfcZ#9fB-G%$ zmAi9o@b-aqV7&?2#0A<$O7}wa+{#{nlz~47OU~mqCl_pTw;mpP`m<+LIID(kCgYG> zIT>@@Y3%r~gE;lege`g)@&bQ|GK$}-Fc1OC-oKAJPQ6Rf)6T0j;L;-|(s#_j(Zl{;RauwK`V$qX|3Xz^oOEgQ`a<)VMQ#v1;Xr zOwS}|MBt8)lNIJrFLd}MISYMo!T^FFt7}p5-UeLOvsP z`cY4n*I&Q6$G8J;Q4hMUhA&6h2lF<0Ry>cCbpkr_@&P0IRQ=k7;_G#7!yyl+Wm>7j z|JrPhw-q6oP_@4;G%~Z$V;f7bjv#ERe4EVl&lciTSyu8iG652&4?du2R?zC6?67tg z^c72|(EC^BVHBd$IKe<*i|*5-WAX|gj~ZkAv>*^tg}y#>Yc&n{DpaPo(o`~o`P@i{ zydSuE3W&ZVddp3n#?^xN?4$fRx;>7U$xLQ^I0VZSpB~Vr9{6ug^Kj$q|5oshAr!E& zk0$SMM&W8y>Xz*C#322|q?h|5>0<#XuZLuV)Ci74@H@`gug{-xO8IUjM)~!J&mB#X3ejU2dNll{&Nxwqp&;KsZ#NVR`CwMok5%%#G}w9VgAJI4WC#Vdi}6 zpHQd0JNiU)_{@}mhMR;>i0SJc-rUr6@e0$dLW9SvY*tsvKfGuPEw7H?VW;otUQb1p zmLJ>&=(l5u;~Jv3oFrtgi!Y$JL=A4?hRoM&SQNM0D*ix{P=s9~2)Nk=P+z@WoOG%w zFJBRnQzGp|u~(c2uQ$C?oSfgEdq}m({~B?b@rrfQVsd0eMQ-J_@fVC(^9of@iJHlz z8dO6_YRe~nnZ`MN=}W6VPn<{Cm!?%G#i5NaP`joTu7vK2n!vKkA)kc&km_olLtpMR z>@V*1OD)`Q1Yqq13I9@HuD^Yd^Srrmlnu&{-0SwYf>-Kv_0S3?JEtErk$7lTUTHIh8 ztsB}p2Xe=gtOoY|Kb5gxnQ+%t?&U8C4PiJ~egQJV)E)Nuc ztVmZp0BY87i7yf9EI$-Ov+KoJ{}!^vtQ_l*pmK!R6^Hw;_i-}8p140YuehKV7KLLk z*uQ##vcd<9Tr#zl_K>9ekiBna*kd%ExrjC$%vi5KBM8|G8x1J?*>4^V$ccWPIg_mZ z2p(-OUcNR1Y@d`3K{bdZFKybSvmb(B;VN+~(P;NF)kZo0y6CEQ;Enf#W;K+@yTWU_B z2mvWsTAA|O9Ah7~PQR+KSXSy8iV??V$qjAHvsYDUr;wQ3SZn45vb>e!6XEE93TeU6 z^2#_&2D?=X+D2>E_AbiH0h;K;mH9j5$}vCHmKIAMa5g`}p0{(>#oB!R1rY=BFyE`n zy~ZX5M%&SD=-$_CZDM+Gv{a4W{26h}XrDgLXl0tA(xM~X`5JaVoNPjV)@<7_L9r)g zZZo3=Aj|rAfA6NoDrere>cl!JqCi)+Y!`6W67FcOSGq|Pw5FM2?L+cPzESBv7pQs3VIzOK45PGCZN~ID|2OvMjx!MTps-g)9i0Kr1=A`hwr=D^L{I@RGAFA0votgA1y8!P| z?xk3(o*I1F4uoYpOLC*}JP__~hNzL)w%sG;?qs zKDx=uIRyxx)GD9%Vob>B1?vylETOnzb)wv;9^?vHjMLyU8*!6!g8VhE@~aMk4X6!E+Xsmc?dErH zr?WB{k?r#~>+CP|ZlxVxJgs;FVQmsrvXFa3G>J^sj%+67jov38&|-`psC(|MrdhrP zkSe*3XYIAf8=CePLCqx7IEn8=qJNGg)h1v3oq3i4LwNCs@YhkwzOYKy2P6P)0AgL1 z)N`I{y22xj?^Bu_(Z9RTUWI(=rv3FmX2B3@{Yof;@zKb+zXv{3*3>oTDnVe4Py7?e z8;#(;N8MXGXoHq9xTuD*BI-7F2s;pkUVB?Um~hKLg%HHEvBRdl5gFo8_V0k;yCJ&9 zio(th(`u)=CN86qCEe`8Ds(1CT3@ht^;$Cp2S&r+CwaA*;0XW!xKbk~HEG|v#cc4& zit-Ez-Tpj0-KJ3ZP4K{P$(qs~7PMQjzoDNjDo`Z0J1J(U5FTj~PPf-(uA-FEu073H^lNR@`284d`)?B{Y5Gm_sI|5}S@i6gxl|lQWg;J~&*q zi0h{H(T9Dpz_}xo8%W#cDvaKAtW$NKcb{HwE7zjagvrMIaxbmoBKRX9M!YNlcY|e~ z*S@>2C_X_=6Y%R32GqVwH2>BdHP4enYQ(+Le^0ORX(&**?gBCw^n#=D_Gr=dMdmwL zsJ;hH?&kV>I+i&m3BM_VB`$ZXlpZFosOCMxk0=g*J1<;b-WIPpAl7ndM1JFW`4=#b zNUl}QB;q#ctF|J$V688_l7;=KN4+1al=HvNc=zVF>aByK=A<3>l>OHEIoonksqui5 zEw` z++85W4t>w&hCmkhu222oa(>Jgu7OjJtU!ejDM^LM5F7c6d~a{kZ~xr!M~=qBY6Jh*E5d02vR>HiIpcg%}?uqZn)lx!@( zA(;33eT1G<{k^|Ia-W4wjgN$pi1t7l2Lrk z$nJ!f#AmU5CF!8*@sj~Rd+Qjs{2nb5Qu)mTIRbHZ#T*vpcVN=2B)gS)9G|dTk5=AL zfqY4U5}Vx%C(0#C$*%Z5%#Kf6>0Si&rT`UdxC5pb34p~LaC3agKRzHY{SH+v63(}1 z)mgh@D^)%qMrZW3%7|C(<>i(SdEK4^)-?v#8IK4h)MHl2K(NDDS0b1?@Fv)P=wsJP z0eoI64D&c6qjy-DUD(P-LE*VbILtNNm+`FiJIl~b7wYX+imnw4@5#$M1*x19;?4IC zqGBB_Tm-DJ8?OrK=xzW|n@bC#tIcev6HC3u`Pdhg34wCym=z&bjM_AQR>3k2Pj7PE z5kYbR2UFt)N$IeOQ=6KzD3ktqT~E zFw@Mz5Z{452ItCGc4rRiG%% zSm$>L!|BZfK5TED69znBZ0v&y){W+jnut*MRzppL z6eh9U$p%`Uw9$Q!ux{WSiXk_Y$M!F!4x{SiXakI9ZHv~7n5Y6j)6vmt75*hbYJNE_ zC$;yN`2FMQQxVigm`%Krq`UECl^Z@KW&0s!UI*IFqHo~)mva91ZoB9KkYlsSgwC8O z-@eZevRR1o*ZyG?bN~UO+oCbjxs&r+yXQVXCK(1TS}(5hXWrWVRd|vAYE&kRbJBf5 zn>Vo2q7w9k!%-Iz8}7wqk0t0sJrGiyVI{+7;sAA!%dFW3miWR zy+}f1&P&?nX1OTToV8JOWHaIZ3=UP zW$rri+LGr?g4=>ex`*Y&zj|b==C;oF_L+f7uW+%XC{KE$ZaXtq-YM+reT0;8|_4j)k6OCjOS;u_|W zU9ClSKf8)0Hv^>F)i3-y&v*|H6FHm%lbKw2{^k5Gqoug<4x3n%QmuA0K$5IgSp}~x zbWH0Vq?&cWa{xSvciHq=K>S?TYF9WMdD%-^JcKo3dU`s$i17SBofkFVqQMVt_+9O3x4O#F|;+NS5N>kuTbq%00A>b{TOEq09z6Wfhhi zzkS=?*k#qe#;$L2w3Qfip?K=-1sRI$NPoU)ms?F7B<+cX`ZcOG-YiV`2}ht- z(+(xFQQRdXU-R%X;NgrW-6LVVERydThpW}za8j@>O~$*+9Sr`uD;9VAS0ffkyzqp2 z;Wk4i1%rn_46@^D(<}|+b-zviaUW-+7igcI*mKiO)`#idG|fS}fuUq+YFdn?sY>jTcio(-wr5cz)V^s#n|yEq!JCCmp+`|TxoumcZF3|5MvTj>BTJM=nz}S~yG_u@P%909ZB!-}3UH1I zfk=Xs`X^rKe=ldh9P3;A1O`tH3hDY6+KtpEHc(VyEFo6@8hz_}lFt?cWFk{&Txo_} zaZ-r2u_8McL;q74o>p2WgAYDLGB!ER zjdICM^l8_I%<9>=)65|1M@n^ z;AoJ(SLF5ApN(a7UbX$2WlauT7T_E#XceuA&ktQ`8W1nwOFl!Vz&+NI0#5iaKmCw~ zqg_$toog+`_}Z}()G5UqF61&{;z$DLopW|~Xw`BUr?&0+A$+nZfkz{0UV$o;NzncN zMCG-xXh<1;4!$lg``;TEQ4jt75Gj6i$CZTH`Ewh+Wciu+lN)~r{a=~DX27Ie(+vB< zEcoippWP5T5bsDG4jrbCeC9!K$E7)vn##w4(!+ZX@u@VNR4j`>k+83?$a4~k$gbDT z{N;_VPVZBjUR182rrX`pJaYW(`%c}mYRmn(y1IH|j3Mx0_)mi)z;ys;W*Atc1&p@K z5gr8@T{N{m_(u^y$&8~+PlwY9ilkhz>Zy;J{bBzK*czdP^j!5~&3G+QT45K{4_{4! z_T|adiEXdaA^BGt!SdsFBN!QoI{K;G*VL`@rL=AL*l(wgy$XeYwU+b(17%P(sOO|E zn?RnZ0Rbn-NljA4W9g#2dWf<-bArcuBAj@Ev@YbWz@dh1t!qNo6y+HcAoYU^3~gL+ z^~-Qt@9Td}?pIFf7sCt;tP$k%sRQRdxj@c)*>!TinTi6?hVew_vS0`tYRN@U3bvxl zCJ{S%eQLYx64_J8_ru!h%Lge?>t%t8{=P%1O0toJTJ>sgw4}sbG8+!$O?)%Eu?m&W z{RilGoT`Br6{b5!tr>C=v^{HH<3c13kyYPH%oF}4@UVOIV(25J`p3T4L?BI;xW zo_^+Ad~4@uP|YlokrZ3F;5XbAXj#sNx06WpcF!CDH)eLB|47nyf5JILMkzXe>wVP= zxtM|GW8airF^7&>5eShIPNTZ@yFRMQVLeR8t}ohPR28uejwb%`4k2L{ak@lJgyGql zJ2)!J{iE|xlqy(HMT!G+iMhx1O}CZr?V`JFhzx$yJAr1*rd!}d6SiZ34$(V3A*_MD z6-5?8TkA1EUSlyAzPuHv7{JPqU94zpM1Xb;?|x%1pAFzUiu?J+7d1? zP%Q-{l+jfS>UL*D`G`Ue8vMtr9W%BS5Qing_mhQJ%n=wX zwY#tpRI9v4?nMjHFA1%9IWT~=r0an8-qQC-rer{IP^A_-C0IO`L^wz?(P^$x?2#CPLYys zknTo6Iu#@oNu?WU1O%i(lmTX7Xhcd{y3>8}f1bV8e%Jf#FZC^^UvB7X}$!}gyj{^jjbPV+;RjIT4pMd((j=w%zWIg&2?V&q%!K)3a1Y2a*yhTI#583b zC?VIcgyQqhUKmqKc&w7n4EjgbVF=f?=2JhZ=75g1By%w9P^#F{{k^I}jyVy`bO~sj z?fy;pmAS8wKWN>lk&k2OIo=-gkWuI*)*Q&K`85mb(EU()*goo$WxWkir0(-Lmur-g zOo<&6#^JppP~0*5)a%dk>^z5qTVKuRI%rolz-lokwy)b3F|We zbJV}`sjh_qu;r2P{HG+V0#`q~)Y{3*AkXaE!r#azwYur78s5KC_1Vj5Bk(?Db~xHr zCdwXY!6Gj_p8dQ$))c@ey>Z^looueILw;1$D8Ps-^3FND2W~++c$m$pFXLW-GyfY! z4dFZRvcP(@@60C)Vpv?+`UscxBdu4-qr}yVB11KJRqox>(__tHJI*Nx2I&gJGhTi^ zkTV!WMLeyPW+i@ho!!36(-(*B>u|;sDE#UYOJ(}kev1}Kh#?bd>)X*-&3DBfkN$6?)4YGn ze0__RPe>0?qkLVs`1!|Qatf{;dX=r#=*q1NNCKsEUw`Hy)6;$fY7Alf@2LthoKWwU z`PNa-4hzCK)Z6}Tt#&iMqi-9CV@_trho1TKQQ7=#&_z8)R9H*B9fTK;*7$|HMaxiP z-TP;Oxrnz%z)vegH~Pz~BOpi?KiADl{Ah#EqBdg^A#sjH<0hnm7`+w>8zuQu-w7N3 zu??}Ypqq)o>=IqG1O780!mZ?)x>cCgi2l-6gX}uU{7DXxEn+!q&_!$#y7RDzM^0ay zRzM3k1Ww@i3R&hwYuY-6<5#%AUl!iVNh*nRl~S?2C(g>r#^Ym$Ae$eU_IbG;bG^IW zh5>iqnp4b5q?~El`GwWd22_0JdkUCiLMIrQfBrsR+Bg{_xON6hk+01)a<9t1o+_2v zbxZ}`Nk>oFM^qDA0rluvP!IJL&Ve~FSq=EHtRtShQ_MUDJ2PLGv-vb2vB2;Y>Hr1g zP$a;9-TS`Bp(%Yg;1tGR|*I%p$Fd^ zcqG}4Zai#lO%eT0@>i~}Dx>p0@OIjo61r4qD(~H&p^=`d!62l;KtR%nObI9zwr54i zZ-#L2>u8B!DyEhKHqHkch`Q3jQsQCJB!GY^_`I64{@BP0ZTHb#39S5;)X?TeR3jIn zz*t`&wt=Ae6bJJJ*_Vy0JAst>`gkC24SkFkZjEleT#6_5^7pr5LJieUlxZ%nE7@tc zU<*@IA4+_i-wz-4IW!7|D8o}{q(ldhJzVPwBpJWNI;rD_wtN%r_mcX9r@+@1F8kst z9BJ;?XQeIQIOEn_f|pZHF*AOfEj1qIY|uCQ^r<*!T*;038||YCi@dg`W$f0xLPyHV z%}rghxLT2|^E6b5XF|9y^D3aY&_}ZQYm@{T?D4tL7T-l##qmsZ2;%YwU-PF-1h6NzI2;9Y>s>$c2kJ6q#Wkt*pTFCs{0Jy)~@bgXhbI^|i% z3x@tlln(S;-Q$!B8ZFL)I-WLKq4Zoe2Z#DlqbEETNKETEg+}S_2;TLNGC^SjqVvG}1C zQ4=ytgC^nPNg2t3rhLPip)bih?P~BYm|;GfhD52b?Abrw6PadXQYUy*sGEpf^T=FF ztPL`e3E^hL0IxlO-H_sop!a9qCw3bdb=^%}pZLfK_xXH!k$!af1EtSlnQ6i>-|m#m z`Ge^BVF0KM|0{{oWeic^nzb1Z3lb0tR}$%{k;aDdo|aO;($&W=1cbfF@cScXaw;p~ zhUnLK`ua*R{@Sy>H|t)HCm;8PM~jIDVWjsYeA~n7iyuw-f=%tuJoc(Nsqhs+V0P){ z^*KM!AwTrUyA^D*ub7Uj;vUTfm8Nq+Nn8N?qBYDSowa7$zl8cor4w?S9;4K2%Q)-_ z3=GGYcm~Lie$Ti=Pv|B8(e?lLd%tqk;kRg*3Yp1#>lRM?#KMDW*KQLtuCGA(KmJ{ zPHw7pI{f&Mz0>1nH!mXQTHXW2DQSvoSZ54%s3DPR?#AbUlZWV;5{MtB44d(nz<@JF zAk<+?@%4!{&XcowG)&%Q_kY% zwx_43!`rF8Nubc(&g;~VS3geoN4*qO-4z-pJ_(4`7GqUbbl0&|Ucb}B7o>3FHrM(5QD3D^7A;1azthdt8?vEN z347)8hMPb`y;(S+;uNA&=*FLHoDNYNiE|B$tSfbTLg|T%BkmniP1rY=&Ghwh9P{8^ zXyDLN`g83U2X)InwRw$pKMkr2c>P+ci7q56WMU$a=Sf7#48*K8nvac47hxK|VP zjt^MCGkzU$!F&Sd`aXC-26Ohm8mAYuepl|Q`x`1>{$$7|Y?;21r*D)kuQ&q{CV)CO z#~?+HS2Osrk}~x(na%Pr?Pn|L*~F08c{^jASVeAUBO9I9loMH+D;l3h$GQ~a2a4^t zqHjM(6eRm~9*+kVJpLIiJtgh3A(0+$LFI*&>~7NHJySDZY6%7|blc$MJg}0ZYa^vJ^M-KaUK(`0$n%z5zNh-%`m6Q50 z1=Q4;pzJm3QgwHV;_M-|LX53+xp9F!J08*7g~k}w>&}(JrU@*oy0PV5QSLP9mb86B zJF5)6T1HRPM4x~3r}d#G5Bb=ZE`=?FxoK8cr>$g!_XPLHl;Z{3WaC(2>rF(ASmr14 z8F{xy)_?103-BCW<|3*S(r z1M?7o9#KZ-zZ&%mLg1W)H`^~rLmMh9Eo!HaFGVuajhk%1ny)qSY(H%J2;WEogf1w3 z-d-$f@(FSoY>M<}6!(O5#Kd^Uc;7cv#WZ@q`Ph3Yv{nRA0^QZi| zNu3rOnO2vU17DIA`jyk400!z`d{-xMr4* z+q+~xz(W6?9eq?fFgss-t-p3_PGK|t5Z@}tyu&!vDB~s@>-8kD(WP*u=MM6xnJh2F z7V$LKlh}_3{8#>@yuxFG`PJ2d8k}B`7weU|X=*0Uf&0h7{a#N`=kUD2o>g;pwAHx2 zUF=j*IpkmjB(C$#0q(%mY(RNOdRP|`IeEgwaMJ5@m6}>wF==4s)wt2fo@Ddg!zyiQ z^>C(QiBzbnI-#)c3TH(;Hr679B*0dEY%_re`VGwk@8S{?9-GY?0bBD2k!_8Q)mB)o zT9>t~P>K|+`U-b^_*pVvcOIZM6%-mwi`v^?ROL%(Rf)}ri~uWSSIC3Mf*ie~atzYi zp{n_$_LuBV70IaH#odc~%5%-tJ2Vd#F{K{mw=VCCXc!u^J@K$!uxLDyPs3J2oTzLI z3H`tiE$7hf?TTUWi0_~(g{oqWJU*ge1Mnqa)QKN|{eN0?{;OXHQ^o5>lcZrDv7NdQ z-<|AH0r(4oo)P_0H&W8#1OU{q=1}w>pbKMay^EU0=_yyT)7;!LQEfG0Z&?5GMSL?K zSRd_eB^oM}bTt%qQ2(Q4o7{`cEmSxFjl7@ANoC z{;i$EO5{Pf&97{tk%UKc?0jPRV+lNqu5-KWR3cuxpARPyVz$@n>VeeE%LE< z*n*_jZO?kS-%RhY{;8Jwq#uTMqQ>w0*l_XnePxaH`0xb)D?G-<@^$d`x@=pAS>H6h zamo%+K%c|Ri!Q0*J(Wii%gL^7m3%Q1^ztM}JgHAdiF|V_%QU~5!afK)S{*TM4H4xp z8lCEp0kTlR$wx^xJD+=mYUM%-+I7zsrY9NNMl$_`EgScXowDt+j1#Bw_>*x?PKLSQ zt}m?H0&6bscAU+ea}X3->!(4+<|SNkptVpy3=KLN@%^9;|8wn9&I#@ZsEw0j@^s z&uIt&l+E&PH)+-z4H_M;iIpuPHd(4QsCgt+7B%wLoRB7)qJl@=HRPh;l6%wg^JN2% z0$6kDc`IjsO6xSAu-l8)bPM$bT+Lt-zJ(^4>p~E@$YzilGP9Z%)&3@ENOmcx=noD6 z6MuBBYY1jB|LYvq_hIfa5(|#z*r}QUZ(P1X3VJcqv}C+m#f?%08J?3VO)-C}1Wt~c zXjh3|L@3)H2ph8VSx^wA&3! zmZc9L=4WV(O7JBC@>!4s9RX&Z%I$?PNK2==@fK=ke(&ty#ul>qneY3zkE&5Pl}RGgZ*6mHRwjvOz(KBu91`{q zfarT}yxJ%dZ-hfW|EUg{d9C41{B4Q_$Gt)1uw*~9YufMj^py2y=zQ~M)V>7TPNCIm zQ4Jq)$mXl?GaN{-Y#@B@Km!h01yoQ6n-|-p=8_~;DdI^l@z*#`sww6MCUrns&2u)= zzylbjP6th5SJTOaC2}9g8>xCzM2r-uo}f_hSeYSRsZf8vr+NmT1t6C@?eQ zg_q)QeRS(IyH0LiPmHrY`_8304naf+Xl~8w_DIE2^hwNXLS<#j)=|#6zw+RYY?BTM z79>P*35C4a+gS@d?t z2=&o^d(qKiNrrjcn?(m7R)9kX4)3OEtmTG|FVR|9XeDlH#2u%;O>rm%y{U3J&WSJy z=al%2ZBE=j96S76+uB>nW&K`6x3kP4sP-)LaEF<<>&R8+ zRb_<_M&tWO_bW+*bf3mzw6v4EBoLaSs8r8!<*c^s#yT8f3y_o4aB46r{$(1U5~Ltmq~w zUprBF<6K`PX)XSZ&pt(xNU_ydf$_s$wbclHS&*zn0h)5gj~}JCR>kSrI;&K3#?JW; zOU$*(A8bcZGr~P|ilUxvoO7i{N5z!Rex4y=tNMPjk|VI2-7q{IO0xD0o~X zM>e*ObexkV|CV>bjf?wC z47hH-*3qiTa;d-e&p*k?-J%B_e4?8C39_u(4=LKT23eqe2zfc_x7(QR?5>v|2j}cL zf;IBI1nZHK3s^WUK!bhAf~*-pPJe-^KUMSl(!@pI+ybeuzmm>GGjAe~NWoZP z%6#aIlA*QHEf7HmJFW%p1u^Q#!0IwSI9-}cR=$bYF8b*z{fpaZ&x{Pc=E_dNJm5#6 z4WDy{Fuq`EB>v;7=W<2Q0Z;cmb!5f{-!IkQXK7t@@V&c_Fo%g3%OkIqua$K^57SHJ zT%6Zh+Yr!H@oq!_s;rR=;1eypz$JIIESDa_nAoWRxZsdaz_;YvpL{K!d_ve3iwTs&-7^Dszc(r?Qnid^$w^ z4-UJpQjwL+=@I-9;nOI0v9s)FpOAOyL&U^Pi#+7Jnxttr<+qW{VG{=Cq`n71f=j)hA|FQVTjs$gkbym3kNSbIU{62-SF0e;v_Ao1zjak7VE4P4ej`4*VMpVo&c&)^(eZbKc=sj6PMvJ!m9Ay{EtoY{^_AV=;gc}&ffN08?B?e&!OHKLTTD7MgigZ4n|oByXKhPJ?1L`=D#! z8~eA@{p_vFkf-7O)eI^FB_Zrrnz~A#1YyUgiNTj8zk0{5t+P&_JLIRk)dV-~RSrrQ zAXe7LjeLHi?36xj^eHJi70DKC6|Y*eg`@tSgc)4%ou>OBT|!=CemN?K3)a?6v~%Fh zp-rs|7;+`MzW6J~BuqFlpVKjiqn;tvxr014gMDnjMw9^1(4D6i>K!9y_G4W>>hEJ( zc6y$&{3IGAEx?RB_-KYMNlNFhJr6W{HR044&q( z6o2{GI?>3hP$Tsnv8zcRrR?DlV2o}YuO3n{G~iFUghVPY z{wf{?GTD2|`gYO*EN1jIp^xF%s|QBjbLV(|=7{QDjQ2gqTyKf94qoO3TZ^c}5%!G}0Y6z~dSev#T*=nEa;CW3? z0ZmA)&^fF0+s?K(Z(PrNrt#4-Hm2jS7ev2=`c;x@Cf$2zu+hIiXqa_HBQN!O@`q`# z8Jb-bjazhY`H2jVeWV~yqHAl6B%Ol`cu$f3VgG2t(2(7aXhS5kned3sh=`)JRHj5` zR$+NECwfP@V+_&vDNTX4KDqfmGtVE2XR-1_-L3Ioc(ws3j+JahoZ^{1D!{eK7Mz;S zTXI=y5>)X(L!bU7q*l$M3yE`EA`mjzI07DF(P3ZSe-r7-^!W(ZC^37d;7xx{j z#D^6-G!L%@x*~aE7+8EnG^Rtl2;HFKN;(wwIt(Ybw2v6lIKMD9l*$5t+o$)a(>s2R zv)^B8a{{me)SGz|)VjL(dyI*1KU7z8;20U8Rd{S!$Mr?*nr4?eK?YN}GAt&3D$4<$ zUa0PoYFSVi|+##-ti`m9ysb;~(7?{sgoE@01Rj!h%g20?A}ZR-xJl-z}I5 ze!D!|bPz{GyxEB9@=wFy?puf4vO<7ai4#uR7U`Ggzr1rd#POjfWyh}Zg~PqO{x4x~ z%))t~U@rueGQxz_%v@5@S0S1Ov}GHCdlJJB))J`X)=jB983v{24j4p*$i)a9U z136g6V4>>#pu@Ox>fIV1UzlQQd%(*b-@uZ$y<#=bWtv>zjz3NCp?x8#t&tOS7F$fW zNi$~MTaJ){Mz6+Y(r@7fTk5)~L*^lG?!e|tQ1l)iBH<%2^3+LZ)yHqfVNSB4Vrn?R zGc?%)fpHyZJSAD|v?)`^ug+ZMhPIl`@TF3TpqM@q(TFOD5SqY8Aw*^K0fshBy>DJ0 zHy*Wd0zHEHbnbLyV}!*1`O7bm(-zsls!jp}yf1b$4p{NaVfTj|Md2d|mk{i(9t+I8 z%+@N{-|~Vix`R4Db`r`Nj-`HDaKZO8J`ZJQT)w1DN#A}yT|MrRYml8heQF0tdq0V> zUOvf6N*XnNnCG*-qWzxyQjb#QzIk%!-yTuZ6Zw9`{usncBlb}?8zLI!pY%4xAA{AX zoUgW2uyw(mPi5#dsHA6Moo0_k?TYWu!}C)$#QR?{)L+H}q1xsh@dZG68eAuigwo{l;3=3k@+JVe?~Gr{vRNBAgXtJS83b zwJ3DZn(hkw3lN2^Y)${v0RVC!2x+vgV0tFL%;ZO0fx$N~9>^90ob4l;g5)r#;??T| z0qqEb_p%py5g3Pdp{NIPhWbjWGii2C7^>P8BvahVg(-pZwX80SRoDtQ2?d}n8gWp8 zq9J-7EN!TdK7aeo3vWjn1oJrf#VjQ<=ai0@rVPJDg%B3%-9GpsEH$?}WOi!O&+fG*L4lOMBP;ufGS`*+**Mc^k1Y=sQ=qI6Z({zs~fO?6t%#0pH;`lj=QEe5m zG`4^aij&Hv(NOVZzQxdUB#4W0xp~>OSn<1_!=~+7RH;k}gJu&s zuHXAcG{*1Co|*HQ8jp|45I^Q{Y8=uEIiQW3STv$-Zl**Am*(>zB`z+Tb8iu;VU8~> zbpl>EjVn~n2qWuqWl)Nh3A=+3#QpD0z5JL(uE#ZP33O2DR1^qW(a(adKcN-;Itp&l-o@tyi*DN}?8kmcV4eoEE zcQ!^0sC_{E@YF+59mK1|-80~T{w~?q%DY(J^dd>~F zF+RCU#1$=6Oo>HFwmZ=n9Xwuk68nIEld}<6_VZ%1&KB--~u+PrSDbb2f*_8?kI+1J4tNCSx_hf*7Hc5Y8B13TTe3(>* ze^TiC2(-kjhXSYP-mMqEPw!udTI7Zsr}x-bjI~UYpJ_!HhR(F7$B0!K0Q_kvYnNeu z5l3aEbNfOe4lZtcOmQjL&x8*@g}}WaVAUUO;z}M=V5TNhGR~ds{Ucw*qn=6FU)RW@ zW|fiNl+cVKF8ZWzAG}KSFFMfWhfJ0q-qyM)=S+W0B%XXtFV%n**Ybtdj91 zS$TD((S5b7Fmt?0xi%WF$>_qA*I!L9KO=mrA^Xb_r?x4&u(FMTumw^M%SXDicjflg z!5qUule#TP5|O#Yr;D62gmtzO*#`5ugmiK+^bk@#T!T=miAq0?#|+>d^nT-sl!%LOOR*PV%vgv&bFv2ej{bo>m+Vx3R){%sM)IpJ8Rmu_)upLMFQah183g^Vg{#5!}l~>ZcTZ_z& z!1uYmRCdCua6s2$P3;}PIZtYVunC8JGs5uzLwnlKd|CsHDgeVH-mwJcnkM%fF5Evd zu6rXBcYRBsPp71FKM1D8iHpJGRw~KHvC8;~+6?GUJyCl(B%qfs^SZ4D+7R6(DY>zf z7w{~7ZP`=cmIY|ryA~JS#jd~@1hDTNobUSUM(iown_IVnInYxi{7+4D`h!Ng-SC!PI%}?(DHpIo%e>}+!tIu4b1-g- zNlzrfE`0nEG{pB8yAE1@?pj9*#uticNan0+Ai8_rzRV^jRDBoSihjVI$#8r#q-2~f zuA5O>@h39;T^|b<-4Fl!Y>f8<>hF8t%$9#Udd}k<&A{9jR|-fee*l~DFL0ufZxZP& zYFnoJmRk#7G6*lRcL2o3#qn*Z$K%o~jGPa{n76^wSq}!i%=FVv!NoH29@P7dx#5w3 z$$CW|66UaHvTQi@vPGHM_FjWIvI+>Xr#*;3rtrI|pwMoK5hNf`_+-MSvHD~xG zC4l|vYDIc#m&;NrEz_)J(eT2Qg-R5Z)De2(*thY{Ej!o|EsS`YtK#Bia7+QgEGe-K1Pn>Fsm5jra0b59S)ktws715n(&#=>zgvG@j;H?L#*P3_NBbLfo% zBm~M>dsbJ)(`!}fD09w~DKW=z`U$J23)^H`)ON6fs3al@vMVct(Ztk9CQ6ZIws0>J zX6p!^{{bD0JejcHr^LqTI&y07qT3if--Djwp~pJ;YcTo-M=G~Qr{BgCEk10i#W(YH z7_px|vWg&y$s{VywQj7=%`!}%d*eEX{ug9IFmO9C*RlLbQl9K^R#ow5wfwvm@ z$5NOrQI~0ext+-!9uv)cqT?kF$&V)GTeZFTlBrpiy2FhhNk9SSru0Q<10gi90>>9x z(F__GG3M@RlF>~cUOY-;N6;p4fngN&(Nqc>;FWXl#S^GZ<-YB9=IAYi?o@bGKbZ#bky($hn zp5Oh3GWI)AfLf1r`dTtn^EAPNu9#Gz+6hmH)G?1}2^oD4UYial&UYqnjOjq;?pAW2s^4%0rIZXfvqmAwI?X zgf|DHIG?1RS^z=_^uob`aj)gxm`8bveC7BsC|sb4bT9)PtzfqYQ#~$ak>1ZiN`_LS zKL_|qoSz2uNYG^}S@}T=*Q%zyHR?y>HAx5*RN!)?R%f?B+xr7^$v}H;zFE|q^+e%} zs;JNQp>onH72QvfM`jyXG=#C(&){Yh%$q0^kp2_@_GPV2o^o;?at&{k<=7NovMFc8 zjG|$UA7R+E+8kNaXRmbVwP!#A#%UmzAhykbXYa?g&%u+biD!AoS_r~OvL z6W{sbWX;ErB)eKBU)49p)Yeo_;}o}p8r2NqvC{wQ&U{@ZxuvtXalV-U&b~jA+y6u4 zgVD&rigv~ad;~6@pD*<{{6`Gx`Y-uMZVV}W`*eeyzmszgRorIqG~E} z%7V1(W(4Io#M)2lo@M!1PVGJ_Psb;9q^Q8}(|V}-xdvt*_1s^{Kr?T0+gIR&oiU(= z=z#Lz`ig9XeR2wDL{}?69?Nam%<6k(w`}#oxg&k&QtVOXXp~L_z5I9VYe}t@<5W!v z%aWMr+dGuoy&=bCXLPe~C<54}@20azQN3DS9E;#;@)Z0%2VHyfR4S(RTs)yJcfM2=eEvP(scx@clzb=jwN}p zuOyd9;rU1(CckX%bYfvSm;ke7f8r6%Fap`d9-&ZY*Gu!f@M&N0O>?lMm=~mAKLJ7v zG9|E&O-BJ$oTq4=jl}&qTgYmA&Nut)E8tKb!RDk$8Ereho`p zx$NVC_L`BFOY#sZqX#iUXCS)Ib_nYJPzkHrkdPZhmN?P8`3yal`n*@QErl^MaHw|i zN2>7VVK<_|pYy%3Hp7Xmm11|H8M#uy=0PBfMC2XbjbTP+(t2wM@YW4SC*==N_sm53|AJf){1Zle)PpISS6CEP`4Q$YvB$;$v%P2CpGSSN~LmtF+&L65pPqd7K z>4LzDx^isDLwPcg0KBFsYI2!VE&+?iIq5G~=I+AR-?)UEK@d@LbP_q$H?Dfw8_Fth zAGx@35X0TaZTdMI;HDFnUoG+zslLJ6bX3?4bO(`}`tMVooY{jQRiG`cK5+U$S zwXBZ~JX&SCWJ(}hWfn0(H@RHSzXzL1=OIMQTcoVVK}};?=58y^&Nz4D;9SM=By5T= zoFCBstJ#xQK_M_$OTqZZeJ9cn_qag7Pnte?CtYO;%)0_%rW<4sjC?R|9`@U51Fb*M z)$Vf2zM6i95V14v^(Zim^(a@;QC!TyRYowG4q#$^-jSocr^Ms6dJn=yz&x|?u7tww z!Oj&}Svd&tKp*Z;-_B|F#^q0;1rhumvs^>h`~4I&b7gp-LTc}hFQx2=9hRa*Bpf4Z zc7j^wmm71&ns>K+xu8df0X${`tijScIS7%&)h}+Q0mjisu*$K|@i&-V8i?>3P?TiB zzNxzeL2)=r>~NW*?-vws6kP{_MUHsj-Go6Ke(w5Lj^V87PPDq2YC9n6JtcCoOF>bi z5l7^Nnao(r3XWe}cXB`5u>~#mZ)%3WiL`uCUk=O7)m33=eI@t-WE0@PI}KWJ7bDu? zh#zXeTb!-s`BqjAW*dt8Kg4~Vgo3yhd^D35EL$e5yTK9fX}_t99w~Gv(akls!)Q^8h;-LRT(} z&;fH=8tG9zVh-S_Ep$!Q&2EHoQID>^H-NIdv#ACmA8x1*=55>;EkGO7ge+##ld0-m zBIUTqW8h{LLtNi#<~`2YFbq00-i9dYq}#d8YtEd2F(V>aw_wKC>Y=J#TaAl^Ni?<0 z#r))gV-{tCfN^Y!sDxs~H??==+`Yi~DkA9|mft!x7+{<}zuR2Nwc`ZFLCj!ZE&I2F zNo#-D^$2DTLAeXB!?Q!7=broyuDr#vm7c*0p9xW9tW_`;0X4_t%_`M8?R<00Ye@-w zthd1dufGdI=#fr-T1cl7VHp;Iza}ZLDSQ(wO(>4q1W1I0xh`B`YVVeMz_5Wywfiu= z(F@GbJ0Wp35rX;XzP(QxN*T#Oj#6K74CcV`>g$l9a#>TO)H9eI_qno(fH|zdv3&dM z_yQCf2f>(50Ei3C-Dti1Bn1P{>xstNm8SodLvvJO!VyU6jM8K%I}2)7!E_VD!1KP$h+6r|QM$Mb=%fb;Ay^gs{@eM#|-v7Es3f4zhM~cN;!|WSDkLnYB zskoYDVfFA3D@>bJbc9%isCF7xx+lpx@i0H*;{8Rj=S9UfG#&2N@*i1>MKpv1lCA+s9j91JjH zE{|2DpY=To6|R$J1=IH~|Hw?n&I*`eF4ZAL%BfHuhr!FRzNLV1cL$WDp=eA=`CBe? zb;N6@LAOAR8$COwI$pt+aXlJhy1;259kf}Gv&o3F9OKK9x$ppX>}2PgRTs|#m94cF zTt+ech`KIf+9GiOAwM-1Y`C*eP?IP+WB9Rx zAnzI_K3pxd$P=YFC=&SyTsKFus{`~mOZ`!Prcg646ZsG0SURAR1a9-<)|#E`+r6VI zxdxUCS`~;9kb}3cy@rxI)Z*5y5DGnYj{k!91ho02f5gE zuZCVUb;oT;%+|`QyO2h42!Vmh;F`A_cpILQuF-FyNixW;{JP8OKkahB*P-NCIrP=w zMcI$4yLDxj{qeA zB7w$PBmT19-M%@ooaxyZ^KqC*D4y;nWq zVE`2H30kje>zgdw`%GI+djs3D9Y_h<8eg>2sS40CBJ9CR=8q{NCVt%9+r8DQ<}w{aA6alYcsOM&(b^Aaj2U=muvy5HKJCeB6o!^cb=p0A$eO zw(zouS`;rxn6`*-9r&l@f$IRidlOIx1@?+3S^II`9t22%3PYXWtHQxr&X4{R!Y~yM`&m*vVp+O4f3e?Zm-sPQjnq^Ge3baYfKO)f`ZYHcd&H=!8GwczZ3i z=ssRp*7L-k>SF7fLW!;#)v4nn_^S(l2d!B54ydThrcMH-b>VNLfV;IH zW$<1QM4)fLCZY<$ghPSEsesHyJo8ebP6-tNM)yDxr6FzR=pr?HdO*AlL8r&8=Fs($ zqGxiOnnTwySa0M3bC8BSmUXX+g~S+avHyd)>VHJE_1`+1M}Hq-@hH*kpMn|RNJwf* Lnu;~@R+0Y;cX@(M literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-show_address/00002.png b/tests_zemu/snapshots/fl-show_address/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..7f07b4402c7f5f700d288db51fa5063337eb6396 GIT binary patch literal 8094 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 a_?|@@K=Mb2z_~l*w3GYEh70tAAB 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 Bi5UO@ literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-show_address_randomized/00001.png b/tests_zemu/snapshots/fl-show_address_randomized/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..a2aeb992526b63337bb7cac787e8e81f58d03770 GIT binary patch literal 31220 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-show_address_randomized/00002.png b/tests_zemu/snapshots/fl-show_address_randomized/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4b038a8b1714b3748678bf268003b915d93f75 GIT binary patch literal 8404 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

gcx4@n;+mY>VAZRL~FBmWquh9 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/fl-show_address_randomized/00003.png b/tests_zemu/snapshots/fl-show_address_randomized/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..bea51873c61ea32509a84828853c8259940e4356 GIT binary patch literal 12808 zcmeHuXIN9~wk|~}B4DKpC`DAHOAT!)APOj8RFERli*!N_&9y-3Md?jY5D-|>0tAAB z5Nd)14J3q!ln5aN41^K_cjDRSJp0^z{-6Ea=kjYZGv`-E#y7_MzGLLYT?-T5Vt`<;nv2T6fNoAO+veXW28W|qR4r`#-4-|Uy=$(FHpCY~F; z!#iqh6?4}N_|$>o`ej;@yjzy%CZ-mf8}UFpv_821VdjJKqrBgZX2eHRTgZO5F!3B~ z$LM#D$#{C?-f*`rh~-!dF5v9&M0v1@d<^omaDS~{!R^6v$0Z`{Yh{y?%)M7%j;O`D ze~Dt&Ww)jPvx54NZ=3G^zPkYR(B{zX6`paMPUv+m50>HW_w7{CHJ^HENlmRgN6U6%+`I$CLU=R~1 zlxEWztqQDUczbBEDGXZ)7)$)u5ASD*y-qE*%)P_E_xEdiXV(fg5er`D0dqOO@r=+e zUhc>_s3Y$NYrpl}ow3s8XXSm2c%WWN?ns+^xIaVPVlW-{^~CtV;I1;32EQ9Li$7Q- z%Ie9ZZc;IkC7~ekbI3tjr~Gh7Jq%CTjDUKxmd3|&l-e){*2LA{ZrE|G*;m-e5_reLxI52=PJzwIa#inX&>zG z-xpYFct`F~O-@HTmykm23-?c;X;H*b`z;a)8BnB|rr%r|8_S`DRE=JO*I&8*6EH&2 zIjxGNSFQQ4&&}nk8Ve=ZD>9KmU9-_0&1}u*|L8R5}DCNA$520 z#Q6?i%QLyd3t^zuEynOdV7r|(q_##S-RcyU3>Kd{f6!rDr?=W33iwc{wisW4*lllY zh&{JsWPC@x`QIgIQh!E@B$q;N@*V*N3>u?XYAz8hhE$A<-nam`Ce_92>lTx|iHmN{ zTuSGQFQW~bAgG0CJhR71NWjQRWw%M>(8)uyTAPBsgXt&ntOVEz%==Zb{n?Jy&4^d{ z&$(T;+djY}Xr+ugiO@|yX~45}Oj}DVE`~P-MY3UZl>HB2DGUA)z9KITC95!lJI!(z zfx~Ql#^_h#@mJ)P8#(&(%u5uRyiX8|2L_~YghRtI`MhDJInQ5ZhNY;iBl`792mc(Z^J}!hPu~? zJvAQBQP#J1y2$)upiRzr=xq3m!7T+w@X~K@Q(ojo)syK2tI4&atiL@y2O6&mMCoMZ z+)V-QpRPpzZGq!W>`Is)*rEHiuUs~$)P|Ju+WkwzR`sVLs5XZNd*GYJZb8w%XtX)a zG;#+F|FrrK#LBVP*Co_gbhD&0;TF;l@qCHb85Y@?B^PaFkzVTO#Iz4Vhu)1Ount#Y zs!x8h$>G)iu@j}2-d_Ihw7nS1Vq`y+2||a$?JK%3m|F+&Ckt=-5MzWAoX!|k>c2TW z=ULJ=tv(GaME}Eq%ugJlD9lN6&HGXhV@6%DabYkWq-dIjj<6yK9Xf)4yWKp6;A(RV zmar7D|5>mn%}_!ucBdo&9V&sQjhyWP7AGFD)!0f)W@v~3?!x(^+@qUVs0pzT?Iy;2 zlPbA5d*OVnNf*L%C&F*a*mjI1XT2aT4fc8_E;hL}@8yro|gX3}{NgL8kg8d3adx@zHC|BNUwYZl_Y>TXxz^}}c` z7;Jo{eKR4Jnl1j5#i1YJwmrk=$PoR*U5y9W zj>8b&XPDYseVO8OhyPLS&6oI-+zbua!_pyUI_SYsV;!bcxec(0nd$)5;doQRs{T%y zhXAmYE${T+!Y?Zn@|XQKJ9Xd)CvBwWl>}(52L(+XMzx9OSY=k`(HGMO2JG7`L_vhJ z5}ydm%L`?!2AA0WoiBEYa2^&lAkj@1FK%sxj(0j&QVTi41OWs66PkgJ-F5dm_$9?e z#kw{Bw>|Bay|yK4E+{im){IKlryhpvu~tXaSmcZhfQt>o>%}I!#f&w1zNicTG9oE6 znxqUJ0wuGT#tZ!CE5F~BP@4#M?N)UzeJu<`^1Df~94v1Eo8L{+^LR&JiFPmPV;%h; zW-57Y*sY4-{+Cy115KK{l~qLH(&zv8Joh5|X~p5{YI;Zi=76WetfzVB&*ec9Y>R+r%u>u>8 zE*km6jbeE!2gs;XMwUVe(B9#pMzt5E(l5+pC5Dosi2U)7!?-;Q3PN@eL@gUJm3b}M&Uc1Ly5qH-TMBPi3ytoISz zE_8YX<rF=1ddTk)lD-DGp2@+Ky@Y3jII z{hca|TT?qcC+<^JfLLM9FWL$Oj;hlvwn*i~DoL4f5u8((m5a=IqNUfcJ^&e4Z)YR zN5*8x4BQn~9rcBIYh;N2^-}*$cTYf3M?Hmmh05JNa-~qp{*IeH054W#qxd^C5&hc= ze37@RHlN}42Z{TXC^%t-TZG9%PY*=~fY5M)Fa1brvzKDbCj~x|qv8$6*|+5)GR=|A z_*a;B+Q@)%IWIHJPeb23WA$%`7slK3=`V{J6ADiqyHD#0vNCo1IhzTur=Bb6oZPk8 zjyrp;yebn)@f7hsu-7ibt2!tMM#iJk7UTGKjSaTG20344$4@@sXzGwQ?NRcH$!xCu zvHBNhl-O?BK~eAQ;{y&qJ7^>0FGh!=9rhY8EG~K(vC0!U@o7yci}M<;r(C(MoObLr z!E)@UzsJwo3&Pb;_Oap|7|B`uRzp46*fLnJG`ajInMdXAIfcu5C!u3RQ|;%X68FJh z+rCXidu5r9pn_FbxU!>X=xXe9BX8i}+PAj5I0=*t%I*Gj-F9}oP{QkKiu~|yrP#wB zA(ds+9&@0)>;x;bWpyTQ9C2>iH$JsHZUL=6osfu_TI#-c_G^fJj;m|<@|_c%=UAC0 zlr07wO*202<6?~QC%b6$O1v+xso_g}c7xWt&~x#8S@(U$791cFq`|zuQ8xQNkHSi@ zpt=Kp&Erwl2~IctW0cu;b#@T?puN`YVod~)lgCn$S7E(*l0m18@Rt05AgCKJaPI>3{(~G6prFtDI z8(!4R4?VQWVNdml{5aAn(A>pCXXq~Nah@F8=8ue}8So9Ml1fg#ge000d$k?bPNZjY zl*Bp-{#w82yJgg=JHkgyjO~w^v^<3jaObfUCj!3f*0i&;W7Eo#`iY++uUBjl!DcJ& zg4?$%`EovrSc;7oSLOTca1z1KntHGXCHmg*gW-)?1``)!5~=R_pF-^6RGl>E@WssL zDS#Z!`rqBWSq8w{tuw=?U#{$@W@2seE2BO!R|m0gvS!3V+=AR+fWxbPo(rE`YBI9Chiw4`G&eLzC6$}hx2$eOX72}xm0Db!I=Lut zmOCIq3vu?UM{t{+Lh7d=ih?I`OEmq6Z4#A{isYV3Lspc;K}odmG9}A1ygma$sj06D zH=E>D89kk?9F8wyjXAL)$>le*-l#&Q4LHS#v^KdUAgDC!9x}rx>lUv#&l-I}aL5rI z_$!-i5aCzvJDji$t1Pn`moX{MdhYgK zOY)yj7i%mn&#-6b4@&~eg?=tK{mvK_Cl}}r=fwitc@fl1o(*gduI!(nTx&YMS0ZF1o$U*) zo|q|wKKg=mXkoT{MsgUg4MbFZD>-~wuaxq=C4{W8IxTcFgV1jYgB}bI>ih9( ze9J)fx+~XDPgcT|tO~Ql+4dzguJI-6vC8Ny%0}D!FWAWC-#cA_u!FWqC;dz81ohj@$2I9{UTe={HyxMY_Br-q@sgeXhLSg3@^ZDF?1*zOaaaGT^5sGgkqH^FPN)5uQ7Py&eBaz9Y zmCa!AsN4=q^~ai;Z{$sbDe*myz#Ki>RRPa_$ki~fC|3MMXM$h5f>trI}}_&gom%^&}f2ExpEmL|=OdWfR(T#YAnJtL8k zGm5@V=NGN!e+V>mDR;*$KE=-c_7~#d-t$_rZAqLka-C2ywlQYkfHmF8BZU)t_eLm? zbaY_u%kZdPFFM`g>bSwZ{21F#mP)qLX3r*XzcTgyD0|&Dd%$SaUZWlj4+-M9e?~X8 z)x#{&lk{5Of2q=Mu<}Yf^o38qd}zMS$k(0(HFL`FjV4&=rwfB5^v~nh1b+xjWwe@j zHBcSjswXJUqww{dcT%a>4Z82yz;r z0$vgO)Q$a_YN_tmwW!cGdf@UE|XT@dyTuHFc+AFyGyvY3O& zCu-t3>ico*khwmG=OEA5ia>s-&{AHxVq}3Ou&TO!C~bMVdTOOsBS_IEa*(2Pyvmo_ z@QP1X3Rn0|A*)Mq#U8WMS@M=GqD|dc`~f?;*fw&}Mr`rnE8O3L;}88v^`#yEh*Qxa z1_uz`#^DfxT$1d$c+)Jk4#9afQNEv!wVs#aC4Y800pD8pfv#oZm05s|M0B;n|JI>0 z3p={pb|AW;zBs~#L7@iJg{wki#kCOIr|2ni@x4eoW<^A`qaF`?hJ!~hLzoJ|UQyYl zw4D)n%uIQ`H%3*Hv1|=b8EFlB>S270%yjF6)C^ zT(p>L`0U%q6Lp;jVA}G-^M2vN{*eWZ^2MLFmVg9~$&<+wteE0?xmA<@pd-H>gjV(I zM!;vPdGak$i15)E8YovEpdpF{-Y@UhPXaJ~`>G>0#3pC)>|apVlCFGb$j^zM$(kA! zDv~F@40_Y7?i~Vr5BxPuCnVBH@m)D9TEX4YgI1cGTd|IS8a{RWSzuP1#y`W z&H48nfbL;LR?ymoc{)$}Gf6<%{M8?Z4Z#naX1!VO_c-Kd-reMmpe}1cm5QRL(A=i^ zg;B^S6saj36Yd<3r+k}Q$L&;-gbTHz6D_W$0AQA)$<;gNu)m$O3@TE{y&ZX4q&Cdv zEN>V@OH}r&SL9XHW2@AuI*H|H>>YB)PCxw5{C*)9OL@US$pv*iM1)kxsocJq^?8Z= z=iIu7!s)-9JS5Cga|ij4Y;6BEBIjNu$+eR6e6Qi0yOns8!eKcgz5M1rpj;Fj+k$pm zt|%QBtu5@x&px!y-u`|G+MTh&+dEeDwS+V^EMa3w=^cFk$Bg|`!NEf`usd{FWNjr7 zBH~yJpn}I1cZ~7yYh3YhgxwchfeKn>kWbfY~3A^H6q`r7-?v;k62ja-r zn$*gjB+HPBF2-7%H<`zq!{0upG))v;P8G=J-sqRN)(9HsE4IxeZ+hL=u2gcqT=U@( zpoJVRQK`)41V`D-tm6wZ!+661@TFg%eWpJyQJ~)geUJiG{D-%)4g=!3G3YxE12^inUhBgBt zKIGe-V;&eJ4hCdc+=uPm%Ms>UoYQq*Q7w5-@bJN?$xyGGQT%qGLNzC<;1 z_v5uAG`szua5e=KuPT(y$kxF?Pm0}u)Iw1ewI-sfqaHW`wUlCwrL=}x&d{F*P9w32 zh)1_Y2oV=wVNb2z^47+o{%j1|Y_fa)9<7xy7q;PbRL~;k7fZ>fSP{KOFE>0took$+7 zyQkd!-&EKzq|gOnYk4s?T8`Ht!C)|1Jg~cbpI3Md7(TafG%TS}9-~I^QLp`a*&G9J z8lE|)X$3yooDg^)+%o0!jT|C|w8_a2c%OQk(qxW%oqeog7SUn^!8}9m4S?kviv*Ph zA8m&DtqZJAY19lzHc6Yh%y)u#Z{q|}UBvyx6VyV3UK@(XWs+M{W(dIUCAok=QCCOs zg$?izuImI_IjQ}LvVt#VI!7OuNn{GSr5BRbh@>WVTn3}8T&{*30Vm|R0*GMklb3HV zIr3fnQeC8?%z|2R36{KB4L$lK?C|WG(I#YHy?^rk(a;{oszqZiFXpyZDYA%fH(49c z85*EzPoyvQ^O9!zSc5Fz(LULN!I!u_fKi~i#TR?6T!q>JXXv*(q56PFbX=_%I`wq^ z@;nX6h!@vdEEde69UZBDJ%10HaEJG2qx^%~uMu6Vdlz@+R<~-@G%TvDBRPlpjb%zK zQPoarV_X2KS||1a2RNnYrqVgSM7qAKjldy(E7rf;?^p1?oECXc`+^u*VN_T^Ytiv8 zN?Bm(X69`^ivt_U++z$xl3q_0M>8q>S8WUoKcxegzpcg1S+e&euj&y{2&F)-jK1rg z{oA(g7sxSc8|O2eV=ZFhSzxhzE$7=Udu(dTZA>tnU~$=?%2X%V*y&B`r3ZVWQfm-+ zG3MHekC)M)Zx(VVwEmA(d-0}s7Rh2XMLE*n;fanC?dFv=mzU<1ONTE8RN#fWv9@K{^5~Z6*RfG)}(2ya2P<;>fcRkQkN!M15*R*isJ9URqo)kNkSZYQ@ z)y5HUT1@wy34!K0%|O3e;bdQNNnxW*rgX7WJ=sAaw_MIeDHhZP=(c)c_?{mE@>Kxt z!SwWR5znQYU~)9hiYL5g{)C&D;a;mAlj1+f-fm5FGBt0lDz&sUJaNY8d~F7)Y)Dot z-GrfK(sVU&q`Rz$-Ay7Ix(li8N-ZUe&X{_LKVOlL2$&1jKF7!TfEh`0%e9VHM7Oc| zT0G0_uC4;22I;KvqL)V7?vQFlxoq8&nxpAERXIT)S9<+ocPe*Qe0hg8j%-MAIM|&* z1{72po|x=@J+ojv#QoS%V!Cg=4TN5}-%QsZ)cu^6wr*T%Wx+DMOJ=plw%G0FN|>b0 z-2;bc7posK@OrXW82et;%hMlw^q7}P&o}}{L+o|$WHDa`vOOFt^#!QCRBqiU#{I^L zBLH~seD}w*JC`oT9%XJO|H)GJ&Cw4iUD*Ct>EeIB*pyLB{rbM929;|vz%G8R(|`BX zyi8IF$ushYI&S{F5|kSK`O4n9dqC&MHRqHl;(;~Xz^iwQ87g>Wi?{p75k&(*BzgP5 zb%vu6PtkUCOHyni_{Ky>YZJd63ocKdGn&s2O64DJOqpwwAI2XNZ(U4c+bhIo^V1r>~DNXr_;2vsxUvq0F;_MMaQixG_MmHho0?!Iu%zeMb z&l43x9Dg$NSP?@CcL0Oopb-1vS8wCWamyV*(f!u=menU?%O?5k(4W_${Rf8cESN)8 z75=cO``F*vt8-I8=3o>E+5Ywqw8Izrs*4Nt*LptAhH?+R^_+5L_wyFBffWzuma>7C z>FxUyXKP>?!%u)>tNG&&JwQXBD+M3{V}qv`I7`@8drAZuVmyY?<2~b|4<>~@@zft<7bV9vZ){Su+Tw!XA7dC;)sI-kD!W?gm ziGO!W@@lnrQ*Lob<0sdYjwjMb+0SZva$Z}$v5&onnDAn7eIT+;PZAdMJfnj0E|~V= z3cq*w!jCH1!HQYUwYyKTGJ`|eaYgs&rXHw|#-HOZvo*o*uF_7B!fP{;t<2&tLo|NaxtP{^KHcuLnm_ugBa3bmTeI&Ap_K_o5WIOy3$eZ|2*^S%;4K z#TXpWo564QPGM3FR#wg~finJ_GEW5`$3CsNxA;-A*fGIU%+F1MA2%w~KC$@F{+K!~ z(ng_S3Q*l0`Be1l7uax8xZL3p;hEK=;tqbK%6vqcnmJ>?x+{maGaY{J&XBrit;zlG zE9WLmDsx>6LcWGj!b{$le~`-`uMcWBUVg|ttB$74vykPj90|Cg#+MHUOe|dxChI;a zKf*FQ>gP0D^_6q?&mmuw5AbFi!(4p*{Ii38OIcl?r}CPa2N*j5dz&dFp%#- z_hlkB`pq+PlwM>BY|3YzJSOh=yy`;PHI>w27-(_*=qNpIy6B~pXTi`01@B(6EUa_W zSMC*J5pvP^#F0vV4gF7J!D4G}5RA-?1CB9hbS7?qabkkXORaE;zDY{J+KS7D^ z&TSFnOT>yvO9JbGVp8KI`hk9*2JD+s3>Jv zhy&D7I8wLq8OJS|VNkKfucFh8N5~@^2As|LUCcY-CAXc#eRgg+COU7*&sKAJynWN# zQBwn`oUr@zr)fXSr-n7$w*jTM@%0m z%NV`N!k1Qgb`X38uLfdL&PgBOHNK7Rz^t|5c`^+$ry1fIFQs3QJ5;1m^^@|$0HUB# z?{DXe?xnZ$nsChgo_(HGH*Ib{95Lnd#)wX%H90iA<#olW(DJIB23$+OdbQZr0f6bm zkvT;-l{aR0alS0Rx929G z;QxR0&)paQ?^t6~9~san9~r95!eV|9BzEz5Z>S(U%h-*7PoKCB2cc_gB0?|4YHS1D zHL?6aOC%VaRdQIH`p(#oA8sH6?QjFX6mxH%IKrbKHkKaS?-FAFnOZ7Mv+@ zEyI6ycu%0Ro{Jai z{wX!wSe5J3d?@ROxM#k>L_KcagutKf)dnLAWoZ|hSa^d29-q;9yq_T;6_z45%9X^#coZ+Y~Io`UL*n?c3+6;1iVfNng( zbrolUGIo10q2ATDw#bp2^cQja$M6FRd;vgX3CTG^-Nmx#)yZ8E-(l zqw2<*@TD(qkYiWF*kUb0fx)Q~%9V9Z*UT{hdulDnyfoGR zfu0y*uc02)FK-~qnrbP+stfwC!wrb+B|^6_8~&Qj*KHCW=r_&_H(}!Yg$}I(-*ite z%iu)S0lGoNRcG}TQPYj-f=p7oaNlf)uTTO&p{7}OzW2CCaWC!6!~<<%$~nTI2ViiH ztID>axFg`BV#p~9#K>}hOV!CSrb()rz!3w1wd`00*u&(KOmmfWIC*e$)%e?mhim5% zah{T*{LoYvcIiL!01PBPvx5X6pKz(`l;J~@L5!T7IJnO$-!}_P^A{;g@T;!;~Z?j91PkK@|NrxGoIARJE9s@z*qR>x^ zHp288^EOVyvB@Z)oANRsO&^ykQ?{8iPPc#tOzn{MxZ;NwR4$d_AJA84tR}G^9=nIS z8ytf878l>>eBIyfX_g~xYI%mj()g%?&L4%}jCk5yvBl^rMo9s>r+zd}I3WLnTvC6< z%KUnuGr|v-ZDa}5TR9@K50|?KRJ2i?N^H(~g+J`DuYLj@GiWqh z#&_Jw{3&R1H7!Q4Q0g4vj{q7M28s!oJOKYq__QoDd5foVg?(eLH)nqe!hwwHiy2g` z0L}=|M^C%@Bf14q(V}~j@`gPl!+#9z=6$Xyemt63+HQ%Ij{0JUJ=G_71awQ7cK7f4 ztR7){aQ6c5TwWk|hN-+CImIrgg1 zw1oXFP3W`}(p{;;np2y>o@KX28M;{)g7SLQ7ZIH&oO93WlO5L7Dox%$`ad=Ucnv-x z7GEL050GJQ2%>E6z#{t*P)@Cuzl2!Z6r1A8=Zj0sD^k2o7nqV z8zGU3oL3RGl(`nN`~uw#rvYT@Y1e)&8ITdIRwBDne3VtVYJ~KkgrU|>?+lE4HSH&V zE9X*uAlmT4nL<+tN}n1zU0n9n=iSxW-qR-DQWibPNN5~`hiz|fg=-sN%4M9<_Z#j$ zS$)@C<~5l0D4))r^z=>GQmDLN)(V3l2!bF8f&n00000NkvXXu0mjf DX#(my literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/s-mainmenu/00002.png b/tests_zemu/snapshots/s-mainmenu/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..802e312d24065c6d5222b36b5559e4533cd7e93f GIT binary patch literal 500 zcmVOzr z+rOc$bH;tll))Oo+yE5Hf_Oafb17l=rSRB+y$l02V|__aqO<;{`qop~&9SRa z(-QW!RH2`p(AX6lR-MKSwk(@%^r4&UBq+~EdlJ#_gx}mV`(%UKu*#74_x?{?0K5So zp~Wlc`v4#2N)QDue+HD4vw$)PyE7JOw-#OW53rX%T`4<9}W%_RF9E*h?(Wbeh=Fd?t{zr(5rLa)Tq~o0iarh=fG{ z!)@FyPi?u$WCl$4LxOC|K#9#D2>^QsV_=MaOne(E-GuGKLe`OJqd#;JKxJ!}yG4W% z4Us{a3 z{v8qo=L&%5g4J23ohI7GwhcVKcX_o2i`|HIrd8ETmGzi%7L literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/s-mainmenu/00003.png b/tests_zemu/snapshots/s-mainmenu/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..853a0611df7d142612629325deac6359141a8454 GIT binary patch literal 513 zcmV+c0{;DpP)6c5TwWk|hN-+CImIrgg1 zw1oXFP3W`}(p{;;np2y>o@KX28M;{)g7SLQ7ZIH&oO93WlO5L7Dox%$`ad=Ucnv-x z7GEL050GJQ2%>E6z#{t*P)@Cuzl2!Z6r1A8=Zj0sD^k2o7nqV z8zGU3oL3RGl(`nN`~uw#rvYT@Y1e)&8ITdIRwBDne3VtVYJ~KkgrU|>?+lE4HSH&V zE9X*uAlmT4nL<+tN}n1zU0n9n=iSxW-qR-DQWibPNN5~`hiz|fg=-sN%4M9<_Z#j$ zS$)@C<~5l0D4))r^z=>GQmDLN)(V3l2!bF8f&n00000NkvXXu0mjf DX#(my literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..fff75be5223374a55e7ec93961a776deb2d1228c GIT binary patch literal 424 zcmV;Z0ayNsP)SWQu(0iO+ ztsPzte=foHF*CAz?zeQhzS>J;e#W@Qo_dIwzds~}1&4122#OG>a(c>SoB@^9=td#B zw(g5>2H;1c+&-p@Gs;7d=!ne$vwyS|zs4Z-L9Av$#4SP2x*v7_58VSw^yS|W``&;< zEY{<&-2?OiL+5Yn974KGW&p;EP@n9g=74@m=19lGUv4?TiQ=GWWuQelK-_}_LVcW$ zNzg**x!uXO4k+(hJ`n1Qt0`$wgi_}SaDaGM^+CTdKsw;!fz77DxbY6lGHE6uhSeBL zxn|`ooIeF6_|&TUJ7#O;(6B?RaUCXWLHg)vQD3<2g8{p^`f1NixVr9_AgzL(Kf7G? z?XJLN22@L!>xW?=p|v35=YXlY#qeJJLla|NmeY-bEb-d827k4QEv&A(U5uwpJ(<3WZg%4Lav>e?4~Z$+j0agXb9s zwboj@b?0bd+n?`1?6ENZW()9YjBTgBhJO-DgB97%cZsZAx4`^0Ig_z6HUc<6Tu?FA zHP^loLz=0Yo=>#1G~j=;dlgKL08mrh^)yP+9$X`sOnZ(%WPTuNhL{1e@@0J?PT%nw z#H`-ClOW-IfT=0Sb|M_tuHHF;xCPQqP?E@T{4&T`Wvl@}I1m?f?aJ*^auCJjAQ`|-1-Mu|vT8E%{Ro22r&Y`rHKD-i z5?6$xH%5B+Yw_9%14_s@Ky?HOkeT6wny7j{>VCRN+MU$Y>b)(b$@v> z)Bjow|0F3sYb*A;2r;c4F>y&##Zu6RqKk=(%rM+fQKZKf=O1obBfBnXl0uP)%^7{Q>}h)M-D`0!Ywi15WR0j7>>g1a!DSSni=o zaD0%l`Fy|OGr*`5ed=pH^Jt=HRh*C@1#zWDwZr*G8=H00b#4kG>u0BVF}}-N4(IIM z{9_ZaxO(xA!J7)6e{+9xDh5*!_pGejyI(;vfSoIwr{j$|3HgFxZ1V&Iki!mvsE?A1`lF<>*-WqL#)_nZfF-ijZ&y~nSk+9gy=-L z7+{RjF1bu%9hBS>$Np3)6ow-}Oe6k}JQPKXC+8!aSuWGgEvOcB*ym0Eb=Hm&a7r~) z%v7Qfns82U^*c3LTH>tY+lIag4|!g{d%TY1_}c2K9R`g>*m#`1{{Jo07m*VDAu~5+ efTAdhdAS3=U=S6)!0Y?~0000fMsIxbZ*Qbeh#!%WaOXK(!1E!8<*RlTM`l@^lV2*wuySxfMlG5 z{@>gmk?cp0_g`OrboE!OO$@#3`JO&lo7AgUp?$yfR0Yrc3qB7|XC&QFx+Z?~;G>Sj zwM=!NmUd5GqVvkdjb+JOtNj1&0ipuU7Ww}V?d+{()T|Y>nxUrcaM}MwLf6OL3-0az zpe;T1o|(ygmzSlN@0iZ*+cE25ZpPkwWmD#FtW^%1|Ef&(gT|vIn;vG6EB{PaUvCtB T#$=}FHW1g-)z4*}Q$iB}XOVQe literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/s-mainmenu/00008.png b/tests_zemu/snapshots/s-mainmenu/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..616c3d4be49ec2dc4671a2afb7f91fc68032d19d GIT binary patch literal 488 zcmVP)%^7{Q>}h)M-D`0!Ywi15WR0j7>>g1a!DSSni=o zaD0%l`Fy|OGr*`5ed=pH^Jt=HRh*C@1#zWDwZr*G8=H00b#4kG>u0BVF}}-N4(IIM z{9_ZaxO(xA!J7)6e{+9xDh5*!_pGejyI(;vfSoIwr{j$|3HgFxZ1V&Iki!mvsE?A1`lF<>*-WqL#)_nZfF-ijZ&y~nSk+9gy=-L z7+{RjF1bu%9hBS>$Np3)6ow-}Oe6k}JQPKXC+8!aSuWGgEvOcB*ym0Eb=Hm&a7r~) z%v7Qfns82U^*c3LTH>tY+lIag4|!g{d%TY1_}c2K9R`g>*m#`1{{Jo07m*VDAu~5+ efTAdhdAS3=U=S6)!0Y?~0000a|NmeY-bEb-d827k4QEv&A(U5uwpJ(<3WZg%4Lav>e?4~Z$+j0agXb9s zwboj@b?0bd+n?`1?6ENZW()9YjBTgBhJO-DgB97%cZsZAx4`^0Ig_z6HUc<6Tu?FA zHP^loLz=0Yo=>#1G~j=;dlgKL08mrh^)yP+9$X`sOnZ(%WPTuNhL{1e@@0J?PT%nw z#H`-ClOW-IfT=0Sb|M_tuHHF;xCPQqP?E@T{4&T`Wvl@}I1m?f?aJ*^auCJjAQ`|-1-Mu|vT8E%{Ro22r&Y`rHKD-i z5?6$xH%5B+Yw_9%14_s@Ky?HOkeT6wny7j{>VCRN+MU$Y>b)(b$@v> z)Bjow|0F3sYb*A;2r;c4F>y&##Zu6RqKk=(%rM+fQKZKf=O1obBfBnXl0uSWQu(0iO+ ztsPzte=foHF*CAz?zeQhzS>J;e#W@Qo_dIwzds~}1&4122#OG>a(c>SoB@^9=td#B zw(g5>2H;1c+&-p@Gs;7d=!ne$vwyS|zs4Z-L9Av$#4SP2x*v7_58VSw^yS|W``&;< zEY{<&-2?OiL+5Yn974KGW&p;EP@n9g=74@m=19lGUv4?TiQ=GWWuQelK-_}_LVcW$ zNzg**x!uXO4k+(hJ`n1Qt0`$wgi_}SaDaGM^+CTdKsw;!fz77DxbY6lGHE6uhSeBL zxn|`ooIeF6_|&TUJ7#O;(6B?RaUCXWLHg)vQD3<2g8{p^`f1NixVr9_AgzL(Kf7G? z?XJLN22@L!>xW?=p|v35=YXlY#qeJJLl6c5TwWk|hN-+CImIrgg1 zw1oXFP3W`}(p{;;np2y>o@KX28M;{)g7SLQ7ZIH&oO93WlO5L7Dox%$`ad=Ucnv-x z7GEL050GJQ2%>E6z#{t*P)@Cuzl2!Z6r1A8=Zj0sD^k2o7nqV z8zGU3oL3RGl(`nN`~uw#rvYT@Y1e)&8ITdIRwBDne3VtVYJ~KkgrU|>?+lE4HSH&V zE9X*uAlmT4nL<+tN}n1zU0n9n=iSxW-qR-DQWibPNN5~`hiz|fg=-sN%4M9<_Z#j$ zS$)@C<~5l0D4))r^z=>GQmDLN)(V3l2!bF8f&n00000NkvXXu0mjf DX#(my literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/s-mainmenu/00012.png b/tests_zemu/snapshots/s-mainmenu/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..407a27d88dd7e3f94fc5ae138646475d58019afb GIT binary patch literal 440 zcmV;p0Z0CcP)@GiWqh z#&_Jw{3&R1H7!Q4Q0g4vj{q7M28s!oJOKYq__QoDd5foVg?(eLH)nqe!hwwHiy2g` z0L}=|M^C%@Bf14q(V}~j@`gPl!+#9z=6$Xyemt63+HQ%Ij{0JUJ=G_71awQ7cK7f4 ztR7){aQ+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`ig@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!M&#t)<-u_Rin1Vb&hon4Y08(IX4aSQr=c#^wADw_hbLpM zV@M9O{&Q`0H8a}^y1vu=S{|vpoz&QsGR@=loXMK|YInxqVbT`#d>_XzQQc43=QD3# zU*XoU_EUbo^??~%&;b$l_c<{*Zb3D<{2Ovhxr*EdWpjfC>aiEK6L4W0CF1e&mn+@= z$(oOC&GIajRqcu4m^Zb#o;I?%$t^~(+2#3TvE~FMIn=id#Ih5R;>^LC0_{QziggaJ z=G%t%Z5rp(XXl&rM+{q{q#~MJoBX0MzA68~4ichx>GNOX#N4>po(oy+EyAsUlV#37 zGFg-f*qMg=Gz%0Vt2)LZe6tWMKz=@y2IqlHI5)rc-!%aM00000000000Km8U0|OK) UYAcrAzW@LL07*qoM6N<$f&mK0rT_o{ literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00003.png b/tests_zemu/snapshots/sp-mainmenu/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Gba4!+nDh4L#dXaJJPnEG zite?1uUEO3Dt_9-IlJ^slJWodS%n-^xma{qfx2Lzg@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!Mi`4|r%t##WwnT}vsoy*6&kZNF~!91rQvzkkRQ-Z^qcK&K|6 z&GPb-rjuuAGdu1uHg-uLqsPb@0qvh`(;XAK7Naf%C%u(ZfRmjxMmL)UN6(*vg7ZGx z^}jDb%3!R$Z*#c+`D;Ua$eHLbo%4c&5Q$UaeLPLF?1%X!)v_N<4KkU9GPw?Cdhhh^ z+$mn$#0z%bSR8Jexd8c3!lN!741i%zr#oT)OL8ygftgGO2w+XH*8h9z1tU!Wm2MjV0000000000000Q_=NN0> zcl|b{xGoU8jl@#k-*V*sPA*)oIy`EU-vgmJ*9{Yjt86atzA9_~HWa%N-EI2{Jm!SS2((`(l_qsvz5LtF6dopvn`eNW!m9hZm<4WhG zyOQf+zlSaBvROTEhMKuO3mxx+;5WT-bR3Th;uoP_`isTSAkWmksN8hyXQ4A7DEP0{ z;9ksBQ-cM5^E!MNUyLGv|YxvF=G&%C=7`#PIN z#dF!S?!t##X7e9*n)RzS47k8GGr;$uuTGrrmVKxd{|6Kz9=WXzxbJsC0T#$Lj^0Uj zaoG}-U&u!ECC@9N6!TS0000000000003_7A9%`R0m8&e6aWAK07*qoM6N<$ Eg6!zkLjV8( literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00006.png b/tests_zemu/snapshots/sp-mainmenu/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..86e715d1dd4f3d6bfdcc19ed0134f801855560f7 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2#EZ-po0k^=U zJDk7cg{nU`dZ_*J$;_R(aqsh!3P*qWE);VHYJ!9EDM4PEFLl3v+h*4o)pPNe$h4yH zhMJ$#jZWO0AiZ1H@Yp50SIc_RBEC+)%6?wsWlE^GK;tv1Ey`2oo!YqV&e?`VydKB) zW(!!_uSz}}ZnK{?;LH*;uDdoLyY8#5@Xg9EEBY%boBeO`>UoTdkA4Zd`gik*@QpRw zb8pIQE}3or%}V;C)lU7pw+&J*#V->!eW~xptFw_S@)pNTshCsVdzQ~Re$VmJ^iS{J zr+;Pt^!?A@+j4Rbr}*}5-f^RA#+{u!XO*MBuRQfF@HPJy+pudhx5FzYZ>8xEor>*#5HpDC-KP39Bd6Sx^0Y zJMVMtt?C^y{8JP2-)Y((sQ&X$@w0#kJe(K~wA!sauTUekqIV}q(9_k=Wt~$(696%n Bx}N|5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00007.png b/tests_zemu/snapshots/sp-mainmenu/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..c770372642f8ce21b3e6ba77fbd43321e8c0b76c GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|;yRx*ioLy2|aen&Di%VW^?(p#fYJvcZt4DV?yq_6aJGZ!O%@grSj9b>` zYaT23s+Vvx@cZ-ahlFM~+c__-Mgz&e8Yn1#J;+gvpyO;Cpm9$ zGFm7ztTEX9(<~%UUCWYDez(r`UyJ_B3)FKP=9heUW`Ftw%qO_Qwe;T>N`Y zuDy_d5%-I*69?oae<(Bm5pR6XcsJmjxy{qFpJp$z*mb#e>0!3c$($z_cP#q0J-4KK z<8GnJ1q{WdqNgm~<0fw7bzlYAnSPO3@ WOHH59+S9)yL1Lb+elF{r5}E+&*N8m; literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00008.png b/tests_zemu/snapshots/sp-mainmenu/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..86e715d1dd4f3d6bfdcc19ed0134f801855560f7 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2#EZ-po0k^=U zJDk7cg{nU`dZ_*J$;_R(aqsh!3P*qWE);VHYJ!9EDM4PEFLl3v+h*4o)pPNe$h4yH zhMJ$#jZWO0AiZ1H@Yp50SIc_RBEC+)%6?wsWlE^GK;tv1Ey`2oo!YqV&e?`VydKB) zW(!!_uSz}}ZnK{?;LH*;uDdoLyY8#5@Xg9EEBY%boBeO`>UoTdkA4Zd`gik*@QpRw zb8pIQE}3or%}V;C)lU7pw+&J*#V->!eW~xptFw_S@)pNTshCsVdzQ~Re$VmJ^iS{J zr+;Pt^!?A@+j4Rbr}*}5-f^RA#+{u!XO*MBuRQfF@HPJy+pudhx5FzYZ>8xEor>*#5HpDC-KP39Bd6Sx^0Y zJMVMtt?C^y{8JP2-)Y((sQ&X$@w0#kJe(K~wA!sauTUekqIV}q(9_k=Wt~$(696%n Bx}N|5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00009.png b/tests_zemu/snapshots/sp-mainmenu/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..1adff7ee65dc3c9d4ac64ba994d3027ee4e4093a GIT binary patch literal 462 zcmV;<0WtoGP)741i%zr#oT)OL8ygftgGO2w+XH*8h9z1tU!Wm2MjV0000000000000Q_=NN0> zcl|b{xGoU8jl@#k-*V*sPA*)oIy`EU-vgmJ*9{Yjt86atzA9_~HWa%N-EI2{Jm!SS2((`(l_qsvz5LtF6dopvn`eNW!m9hZm<4WhG zyOQf+zlSaBvROTEhMKuO3mxx+;5WT-bR3Th;uoP_`isTSAkWmksN8hyXQ4A7DEP0{ z;9ksBQ-cM5^E!MNUyLGv|YxvF=G&%C=7`#PIN z#dF!S?!t##X7e9*n)RzS47k8GGr;$uuTGrrmVKxd{|6Kz9=WXzxbJsC0T#$Lj^0Uj zaoG}-U&u!ECC@9N6!TS0000000000003_7A9%`R0m8&e6aWAK07*qoM6N<$ Eg6!zkLjV8( literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..28c5b93fe6826b3017f4b086dbac8a62c5bb08fe GIT binary patch literal 346 zcmV-g0j2(lP)i`4|r%t##WwnT}vsoy*6&kZNF~!91rQvzkkRQ-Z^qcK&K|6 z&GPb-rjuuAGdu1uHg-uLqsPb@0qvh`(;XAK7Naf%C%u(ZfRmjxMmL)UN6(*vg7ZGx z^}jDb%3!R$Z*#c+`D;Ua$eHLbo%4c&5Q$UaeLPLF?1%X!)v_N<4KkU9GPw?Cdhhh^ z+$mn$#0z%bSR8Jexd8c3!lN!g@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!M+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`iSXt+lNOTg11Ia?v-l-_;$ssFYG`ZPE8> z&>}ekLiD#r(Lo@YfDrvHA0`-m6HUM*`f{_7WCCm)eYrs(nSe0i_~^@x0LfiYzx5Q2 zzKM!QCk`V*N7igAmnj)1R00s!DH`h7&AT~O$pdYySB9M{t=!rv6@UE#neb`tho z@2hVudB+=<@a6P$BVeLUM`3mfEsZ}I@7}wLpM}zmfKh0|gO``rTURliU;Hs)4M>-O zmy?6PVDuzl6!hf_OkXgUnS##7F6XNfeNWPDLqius<9rd`ZA`cb0{{R(o_|pnI4#RT z%)i((DJ}HHwfRY{|A*NgGbAcS_}KNuOCPvV_~v)@m%Z`J9G0sXxBJHVLG!y(6-2#U z2?(zJNR#}u4@xuzHKPd5r|8Lr!ro0=&7UfN(3oY5z;_yg3KkGHcsFSsA}9X?syMnK&>7H$ShaU z=Un7nwG!9?(+7(j>1E%X}0&=rDmrd#8P8C<}IS${}EhdCf>29!%@*(LJu zrzT2or46$QtJ&2kt49FYkdBot`Cxp>GF5+_)R#J1uAzv1LUDX?uzQ>snStz*E8c2 zZyV}qf<(5R48>I(GQ+~`qX}xr$Ot?6Djz)hK>ZY|1?{^7GWsjgHw{1voOX0e1)rgaY8%AY%U!Hus~fUK4voSiX?Xf>ER{`UdX?+5CTsSJ2; zs))ah$%Wmm2AyYtIzXMUgGg`I!gAM+H_~dE#noFS#g`%YD~i> ztfpWX?a-RGa~^r# zuRL41_=9ZgC4+QDUaiM(;HZjCl4O&zh>MtBZmTOM0=$`|=fy03!~sci&@*4|^j9`p z+k!2f4v<$(HKx|gEng*4t0jw*d98(_DTr22NLP$=ciAk>unnt*VhL02l9BhHuya?| z=QUC3s#}cfYh%w6#H%!=W#~Jd3uHbFIlUx-H{oT1qKrPNiAHnQ0oye10aEj8l_V|C zWCg%U5qMKOgE@w(^=vx7x^4V82B$^SA=}N8V%*KF{*PH7!fyQeSdt`3lKk)ww^SVw TH(2(>00000NkvXXu0mjfSjei5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-show_address/00002.png b/tests_zemu/snapshots/sp-show_address/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..81b0e89028a686e32664dca5858f64d1972348c0 GIT binary patch literal 938 zcmV;b16BNqP)r1i0!{2*x34)4`pqkw`ZlD1Y9MNt$*Q54(xvqVP?L+v#| zJKm8(O$e`JmrQMF!%VW(iB=UTeMfy<$p1@<15zw0ilQhAjKJ1UvItr-%a)vbTnpQ);Yr|rA@iB~j%w%Y=hXg|2Awm*EyIPu~h!y6`NG%MK~h9v}a;i|X3km-nt zplN+@1hYaUz!jh_)jkJsmnP1MDZP7RKY5?`487KIuMemL#>O`X*J$1YUrSSyhIV~h zcuI)GgoqunB&2QM?~uP*T?}H?$M~R<-5Vfp?ml10tR8*W8j_-DgRVOW1OCnl`zuk0 zx_q#K$sm^xmcobE{Zc-CHIJ>@-c8GUh>RV4d;J|-QTkkQ35-<+TZOykRn(?8VIoL$ zrs(Z4g3j+>Cfm0XF`Z(VK|*yZU$hyCcdlsKBoppZFnu`wDdsN`Az&IcAV+)J0rhg3 zM1ltNK7fZ3vIKA2&sQkoAK4+JNtz>*Ba#h8M&Fyi1l`H2ZA&%V^1}wqXMngUgVM)r zl##y_Tb(S&Ic)-3^(vrEc)I@}B{$Io8mc?qTqds%Zq!q2m#`xA#7%OYx(8YEKVk*W zGp{5K_*!u&|F&2ZMNupVIdzD2_+1>lorBeI^N8d?Th}!>nXm(lr$&8mKV5^U{qQzS z#BmBbzY>$$$6r@TIH#{&kI4}Ty!3$wCw|AwHObZvK`z5>7D`CG+gV1k1O-%sO}y3a zn4|&C09XEJ+IA|9zf^jhb;dw9;c%)eF#0b9&n*W)_W+*GZ2k-_FG=}sFqh3HtxZLM z8|Fw#|HUaAmh3%W?8uG3YJs+S*3_x?%7#9SdkK2ml3f%$Tgz1@7K)8U(<^@m7a0oM@F6`-9TBAME-iR7O+bq6q;%8GUW?zoRCt5efj` zTlfNOWX`T7?(;HBN{l!Ap0fw=YIKI9TIf>vy)H+hfh%Ov68AAc zq=Wol+*eu>u*JWK*4UJVzoTLrS;ZD6HDh-HEwt9ARt@Ddi;Lzd)1=>dJMorrHHELI z+gV}_SF8Djo^8s1A7E&W3$dvipr_>6v;erOr}$??^`vuCvloR-ZBiS?w!O<^Y3)F* zVihU%YKPQZw;B&Tk_42azY*J^Zgq<{3;+NC00000000000000006+?#u%Ir;`Zh*& P00000NkvXXu0mjfmN!XD literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-show_address/00004.png b/tests_zemu/snapshots/sp-show_address/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..336c6fdbb9c5056c6f7a9a839ec6128f3acb6e6a GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh2Vw9p|19*4k^ zJD%V6t9*Op?yfdz%OxX+gVp;)au;}B4(9;rEblK{nB4PnbH|nTT{273KA&1yUuD)c zJIDL_(HH(Mw^BD;TK#`YUiuLUSCzj@j`J(+n0?!#%qIH4y-9lS9!j3IJ}{~O!`{i! zLSOCge!JfM?wMJib*aJAi}BI(DGaIy?u?s)-+tS<lMtdxX-@PmRluu_IieQ-e(i$ElD$cP+G$MYwDfW>&47xuQMj@=S(w6WehXQW(><} z(l@`qy7~46O}#_*)5Q5@<-fw`Im# TnFL*x{UA|KS3j3^P6^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-show_address/00006.png b/tests_zemu/snapshots/sp-show_address/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..283d3cce477f78ad4f7111a31cd8578152b326cd GIT binary patch literal 504 zcmV+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`iSXt+lNOTg11Ia?v-l-_;$ssFYG`ZPE8> z&>}ekLiD#r(Lo@YfDrvHA0`-m6HUM*`f{_7WCCm)eYrs(nSe0i_~^@x0LfiYzx5Q2 zzKM!QCk`V*N7igAmnj)1R00s!DH`h7&AT~O$pdYySB9M{t=!rv6@UE#neb`tho z@2hVudB+=<@a6P$BVeLUM`3mfEsZ}I@7}wLpM}zmfKh0|gO``rTURliU;Hs)4M>-O zmy?6PVDuzl6!hf_OkXgUnS##7F6XNfeNWPDLqius<9rd`ZA`cb0{{R(o_|pnI4#RT z%)i((DJ}HHwfRY{|A*NgGbAcS_}KNuOCPvV_~v)@m%Z`J9G0sXxBJHVLG!y(6-2#U z2?(zJNR#}u4@xuzHKPd5r|G8 z{#EVqtGiPg!79FruMDFHX>O`daip)+Z0C7i|6Z`18GZS?+@g=#2Q?bb^SsifBk+`& zHtZoK0<7sq9m<|cf61w*&dNK{NnusU3~Co-DcQAo5+i`McwpY)7N|q55p|G7?y9d? z#7*^*H~`Bhi=63nY_56zkSzyi{StJ$fJVACkC4gb7+v<4}WT+ zv_|tFo3L73^|E>dkR2IV*^2+nUox_E1k^n zL1wHq_^Tq=r0Iv-R#j$GvcQ6W!EK}NhN+x>j&P3g{ow)g@ya`vQtnaf7?E9>iTgT z45I{$HZ`YehY?<>Sm@(YXgmOjl`)ade|kGz&Ce2L=hZ}23u0Y!#3FnkEo+i^0OZPh z^mu$=f!=ul_jeJe@v2(}7+Hc?vzVr@2BTG0CCu+1p zc)ecWBd2_oJyZN_%due=pk=5+Az$T+gY=O0=uAuV&ivPZ)Vj6&Emw3y?s9iuvLwd&)bg4&U#R+cJyTInDJu5cv*8s--c zrJTe>)v+l1G!c2#UJ41EENv!;Vc^?-!e^yEqI2u#>8m(j&s~>w;vaXOqEI-RxoyIc zPvjZ!Gztv^rD|5drW=@)RS)Xv4bn6GSSHJH!k>)LDe2knOEpc?G)>bqYk+U0RwN+N zocgXWjd6k^Rt{pPZ@@$G<1H68{f3;TogBx`P2=u;8;bZ*7=W`hWf+U4<)5k=?vhJk zC2&d@s`90oqod45oF$MlenQ&n51EsekC2=&A^ig%3X8jgabXnh*;2rVySnudonYo^ON3VfH?u(c-UI) z6WSz^mT}z{knaIvCc+!Q$fNDfG|96uXwgIL``(OrTE=slL8gSDq80+QeceO7f2ObK z{cf(2-b=k7L72*ARtQShTU&a)d}6mAM6w5*OHg}&mp>qpI*>u)56-*kaeHxGWJ@QU_C!;C7_WF@vZSA?!sMOZ~C76#c)pGSG?jy0@d3?NE@zcrSo9~d literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-show_address_randomized/00004.png b/tests_zemu/snapshots/sp-show_address_randomized/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..807131ca595f2e9821b6628b00e4fa691298ddb2 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s{ba4!+nDh2#v`~`)k3(R| z9nWw3m%Ka5f6On3NhB-2;=Fj6r}r<0SDS!(7|z^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/sp-show_address_randomized/00006.png b/tests_zemu/snapshots/sp-show_address_randomized/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..283d3cce477f78ad4f7111a31cd8578152b326cd GIT binary patch literal 504 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 MY8%}xxebo`FFQA))&Kwi literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..d346ccfedb0d4807567480373b1662d0e42ecb72 GIT binary patch literal 5755 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-mainmenu/00002.png b/tests_zemu/snapshots/st-mainmenu/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..7beef93eedd315d4fb4814ddfc5710ca31df0376 GIT binary patch literal 5593 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-mainmenu/00004.png b/tests_zemu/snapshots/st-mainmenu/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..75945857d53dac75948ceb507ebf2b46688044ae GIT binary patch literal 10811 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-mainmenu/00005.png b/tests_zemu/snapshots/st-mainmenu/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..11a3c9d693061077de94d1c71b7097f7a84266c3 GIT binary patch literal 6166 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 MY8%}xxebo`FFQA))&Kwi literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-show_address/00000.png b/tests_zemu/snapshots/st-show_address/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a59aa2b0339b70c4b16d1f58610f09f03d8a2664 GIT binary patch literal 9384 zcmeHtX*|?z*tSZg5Y?15DobcA$#z?BNrlFip&7=KrEDXz4>PwGB4i06YnB>j6b3Vc z5g~>o%apaOG0Y^(%rIl#>3yCL_j5lV-jC1w{C@YBS^nE~UFUTk=XspR`A@X9zAAiJ z@-QDCpRmQX%l3SHd(!y$_7)55+uq^>ar^%i-YfW*B>zc1Z2=&kpXg1#;nQ#UUYWY@v3>CG1^?RNUw`;- zxR@p3b@}Mjfg%%<^*y``HZP)g!)%D}+23IkcvCzyaA(+P)v*omj}ypeU^ogc@DBOWRL z^Ol~vaZFQ==ndO{UT?(U`wV|{yZGVXz<;Nsy%<4Lkj^U%KR@x{*x$lIv9MsK;VjG1 zP)d+e`p;XG11%^Gx`W1#5dUSA{}thc+uyQB12iP=dH=L{ZUtH;7noGKrW_}-^*s&@ z&SD>p|NfrJj)&0RPQn>GEf*9mGA7}ag43X(exF&AJ)koLAH&Sn0^Oi&ej=KRKJ;Mz z%t9XEeloYyqIbnK0m*7b#T{q)2Xwxt6OC$e@Gu8 z6{-eH7g<-H3;fGAE>kD~1&uP9e22<&xwyv{ut2CMX4-c8{~ zZ8@e~8`@Z0?4DNnmSx;*Dc=2-NN5;ejXYE8E9oQ~15xvWG)%%%E=+E_L$Yb~p{0#p zNyzzXj+|$5y2^6%U?P3vd)x_gJAiq}TUL%sjbrcv-g#>v1aBzwv?Ykue^woCqLNg) zQ#zg3@HIdH*gTcsbSUM*D3tXQjb7^u*)&bWR|e(k1WWIjJE+7*wuq>ENO;cZW$Wi$ zPy`K?Kug@H!4eb$Na5n=vnTmY0p_D)B_H3{0?VHP;!7NAKWnLyYkejCG0$uXLmyO< zofN9kz2y%CZ!nVb-&SG$8`Ba1k7x9z=#1KTQH2b(^)WN~1f!(0Uj?H&Tkc?1Rbk<` zU+Bf{Ko57=rj`W+!YIEisY4NTNzZDW+~O7L=`!DC9rrtO{q>n;L^tFTV(urhcz~t= zz&2@pcKV@vCJaG+|4BOtvs%zu@N#r)XlX8ItQx18Lgbq`Z>D|uXm_xGS9(F7X3E94 zRpe6-HH2g%ABPhQxIz9?=@L2Qd1iQn;@yji79n^Sg71&5s>VqTp^n)#J>-vQ65yrM z^2f;B@Qfy$5KgG6Ze}(Xnf2*<)rsxRcQgigNb5=GtyjmMEwcP@lJrL|H58IgDXg>L z$1Woj{!xmFu) z?EuEz1a=L?rDuB8eGSmbFA>oP4RzkSP&+rUCah5XME7(RgZM#KM8R!Sb(i5P-Q7LA z7GqpweU9|!plWB+^>lur`)yE!p7fD~2U2q*sva=4oY}QVLz&6;c`}4K4-l(v8DBvS z*hm;^zkR6f;L@@#YVq}qP{$ z481kT8?JeG>c~N^D(U`lbGx8|SGsQ=5+BB^gwATWRxLls@r|25N0jA={Be2m$C^ow zqtdkO%}GzBenE0&mZezD?icit#^t{-u`inBpn8r~<4sg@>)O@@f%{V12g_l7>G0m7B3Vk;+*5Yshckye z-ZYwj#dyydcaLxA{M_+=m7XGTA+&xn-8ZFuQ_MId;~F@a4UA@eZwcIT3VfO@89c2(ftR^Xi{I>eUJK;7>gbwAsBsU!_oLBYBl}nIpxCR>0H5#Z;4WGPI`X1R-gK2~+8AvP;ChWD@AA-y_ z^PO0-m^MB7@d8@6N7!PL!nyPbT<#F@H2s24h>?rf<0$Q`etzj8dRfE2Ta&nib`IKJa z%SfG3^ChN}U`y5IKyv4;w_gJmmTQ82sq|t0BqyH=v$=zgx(bXPj!Vwkr=w{HJ@U^b z2eZ(w?KOfxlDziX*jBe_Sdd?)^FUcd6!z?MuKS47l*y0gT~U^s26c1HZ3Rh^wM-Ga zlUEVOKc{9TR%~WA63-l*P}NDDaA&5sRtb~YRVNyZnQN_FrKE|p$A$x3HtTrzTNjPb zLn{@{TP`uD{V^m3b>zY{RV01GsTZeGaOYRDZ2onb2XHcXZt_2zT4uZf?5E5M~FUC2#t37N%EcY@+iz zrM3wwB}*G#plbb|$@LZxjF&YB7NZP4u*XB;#8Zn%b>qvw?x06C=hKHSroIrk|1DG> zXN^8B5Kf%ze_$RTZi#&Vqf2;XiB|>H1gtRmLaZLf@v_);hIfd&Sr%P`xcV%u)tC;X8| z02`O(_7%pp*$3cVKDVaUT*?ytf7D?IQjywRF$k99{SdLRA8vMtT7_|};yKbyAUv}8 zr_uV}#xs8>p}&i}=tEh&Oo3KmbmZCrApWS;vh(CxpjECFaw9aFG=*CyBz9;#tDOEI zVyp}D#H{Y_K4(8H+PUyN5#g1*hGNZ!9O_|$Gs zx(jiV7J_ebNkhqM)*vqD;I=~bS){w(m_W>}AB^J|+~RuFoyvH7MWGHJ33&zi87}}l zh2(e)DHXf_bUA#w#asWJX zdw&OXcc6LqMt*{&MMB3r&}`-NpD4@OyLub6fX478WIYTC+%1IsY~U^CKcc@F>AdMf zj~^r&I>4;+APG`=LZ8t`JveG>@a)OAl2Ki!kA8t|*OFb;a)y?M`wMt$8bAAHc)iMy zW==}`tlA!0xu(8=SZIli(*}euuCpkY?|I9jD%CnVdyWq87$548bjUE}3xhd_=atx3p@+fs0X1$wFTjh^X}J`9yhZFjzC$bqbC4!$Daf zcin;e5tq}M{j8kOAd?)oj^%q3*O!W4Ub*4THT_EmJFL#K)8T zEhRbt-Ub;wN{-DTm2x)eIlOmaM=&NWE(_u`AD!nm7o;g2S^wCYx#xi1=@+s_VtJgdh;8=1!( zpB-UqUh?m9ti9=U7tk^xC zN88kUD8F%0a~AOt4VLDPNuUg6GUa`RO>0L}O^gPi@+)f+?ThYxdV{AnXKblAi48-_DZkNz2e8?JtE4@CS2M2xd5F? zbymEvl-m3VusLewv9F*?%N%lMe&PT>k$3?$3b_S|D<*R+krK z!KQhdUcSe?b(u<-f;XCqHu<-B#_0oUh@<>*UYR5h3f5dPTu`g)nfFo!JFGH3S$zwti&DB% z@=$vu1P}ZTJp#6y46p-?gu%dBvS!$zw`lZyh%$<({?kqUOs=NIu|`*XJe6QQG|XMd zDU5UMxz-!uo0qyVo#63YJ`rFsM<3*uELCZxmCLazFUTbxIAV4+VOvN@Nk zfNy|Se=tcjhZ;9A1Sa1EP;c9wr;_UV2Sh=6l)4#C>|bxz?tLdN7d1ywEOStRT-?~M z$tIVZlshOTJB4SG%3VGYG|QI7in*w#7-srdi3g; zYybYMg^R!DA>a|8x;4QqJAegeP+LdBvt8p^wxCm8THW-B=vASS2Ht;kQa~2aw)ZcL z@;oMAeK!50W>j!Y&vC}aM_hB|Vyu$e<2FJ8ZWK!G@>pdcoECBps4E{~ik09RfL6X! zlB}7Qq4y<+bj8P@%0F;jx0zUiVvsA@0KuCHSfCnV(H+w$HO2P-m4;PN_Ol2a#8IC2 zY`&`k=8$(1-fW?%gop>-S7mZhko6T@bKUO&AGPI`p;aVQM-XQ=vjx1gUZ1~>A4_wX zd6?@ctHrIYL0}qA(i9_^;MKfULQv0>S^rSEeO>#uc@s`_)H3;PS}lUj*};p$M-{za zjV>vjnIW`H5JNf%kcy)Blcs-Ssr?E*jSoJj>);Zp%aV}VfG?4g;a*#-;l!^2?75aG z)tWi6QVxZ9kQF7{D|YscVsPNxWcZNb0OIO7<^yqdBYTK}-Y(Wc;!)oGj{awMHLOss zOP@ktu3i<&3ij&x?7m1+GZLw&IbNqt96sz^M?}}Va3iquV+Djvpd(acK5Ob-IRmA1 z_ti1$WBhSAN45OTXjR?&+FWtZQl;ev+Yi2e`kTg#?TstK%2#@RTt)RgluDVGw>Udn zshgj2et%O88+TwiJg~);Jk&aIr8i@K5P(r|_D89z@PgUsN=Q{PYg(LePnAL&Hmb(` zYAWGrUI&bTIabQ7?Hg09k~SX1vJCCJV7~U0OvzkaLxccs8a_`_k5BNZ$%~MnMfuMwoZz%Yh)141k=%q=?G zwpAM3?%c<0)@4Bp_0|e<-hWt$P>Y&TGn~ypc4^kA05fkeiY*2Hv)Pfom!dPUuP8~U zIzlY|%z)KieuaN~AOH4%{w9b2ujqyCUhJBSGG_Sjwb6M$Z~8Az2^m@yF2=Mn#T^dq z`Je7xAt_oQ80B8j{%OT@+Z_8vj zc0E5WP^y#{;TgkAmw$Byv%e_lg6byWFo#n|5>5*s3#>kJD}3*t7T{Hd2Hx15p4#iB zmYUQ^!*~xpa(18WP0&y^g$mE|AWn7#$LLA>d`0hMdE>tZBwrXEqYD8|FjLC{E4<7# zfrxasfbKUvowHGcAJXbal7db+_tw^rLj7flfx3eCd1_{>nNPp;O>YR6LM_R-$CF`T zV&-czn0C(8MGP7}MrYW-T3_@XC*8@fNDsnk2)$H-s^x%&=AvA|;KD^aKtDKbDLS(+ zuTI#i*YVe$gTGmMQmJ0ifVo{0-N?y0?kqjm(KpW$YHqhNd>~;dCpfP{lLK$e^efhi zzqSdPij~cP)JELH-R_sTiABruzgr5m%<#gy^eQ9uqdW`XVL`BwxE5;S_yvhuZe{^T=cu-zf3ysU6Duz`de?2lnkO~P@zrnxlR};RexEwu&2%R)4vL9S`oyc- zX#Q^1j#ac{C!d)6*AlS0`Tfx?@D?V6K0W#j48~BXtKs9sJ#I6BWXG8WxaAVFiVEG< zFZX?orE-w;aEN5dg!hUfF)*d}3&Xd~FSqW6w$mXp&b~9)Fcv$z_M?G)SMSBZBCla^ z@&tcee(lI|uDk_L%OaaospJA_4{;wzxS);Ac}R@&A!-5H z5$2TjrYs;!K9O5`-o9YqHe+Tja>Y6d)A9YZ71FzB{y^Qcx&_(MyQ`FI8S-JU?qJ~b zcT-WGJa0HqK2nTE)5MmRLNjnY{-YsOeqvhvtVKjwKp*dr*h{6u_y1J19&%Xzi{~PP zeb9XG-0KqE!2t6oo$ca0NN^lD$AVlN2nqEF%gQt^0p~bY_gO3U+VNJmG?5OC)Y(Q= zk3`6}@NL2B@!mB1&#itZ{V^!fSv^{~0fCAMTVQ$XvN}@4{0mxZJ>YsXPQkMCi{)7? zMk2#CVRS5UQm+xi`0n{$2Ac)h;p~3hcaHZYM8=mCaJrNxeLx`MW7yD}u+L3*{Ivrl zJSTjH!+7dm%5!V|U(qJEl*j97C-8d_g^N*zlrR`2jEXqAesC1$X3MKLM!vtZ}C{H}?|hiK(hD3gD!ABOla-wWLTbL^~4E7{>xBShBf&IwcJC3lV}*|e=(ObGrsOwZW=%)m>6=(v2Pjg{|MC0DZj| zPA$=HeVDxXT?wDQ`X^!1iE_SsS8IP=sKxW@bL zo#wubwIa>%VHC{z*uCy`nTg}4TtMx?13{4;sqGR&y?wj&@uf;S`6&*>yb51ou*m(> zWKB}Y_X7&Q17=t7iCshkuh|o234u{CGHs&|jLT#xY-;~nWpe3>}}xQ>OhlYC5v6r^aeqZgv-=fL|I zw!VV>Ai&(o0iH`l-D`ajNgutYkAO;e?tVCRK;4xps_Vd^1gR?9;4f`@;(a#Vbj`ZR zM!pwi&JL{Oji;YV@2V9spWT~<()NhZqtsf=pt%u(K*NdTIB#REy4FwmWm!=PDrbzJ zyXmqs;0aIV`-wiZdQJY5g&=AFFR*=z5;*0Y}VtS@ggm5CnFJi@}lB2sy+ppAuf zF98ed{x`h)z!M3r=29#yh@FbUD_!5r-K?FgMwzOf+2c#mU$9@Wk1Q7W2KQm#fImj} zq2E|u;=c)j{`Pxew=u{ky7zu+Pm6j;A#|Nn>o6NB6tpYEk1S@1%HG&=b~UY65dHii#hCD_cu z*&bls*eJGhB9FYAa9)jgEiAiIc|p*KIyB_lV5|f+)^9#85&WG-{W~nIkK$$Q1`zba zS1;p8gb1+sbADn+`&Z_&t0pny-QTuyAMr9Zoqpg2ndonK$*A6uxP83P>-)Mv-gKI| z{aEV(mbz8B47YZ&kjAPQFLDeVfkw2L@E(OStE`A+d$^+!y{j(>J3E(MC9+<}!?~ZI z5{7)+X+&a}SoorHxskc-+Rk1QS!6cqNecT548Am27R04^`qN&f(_xmcwMiAhXoQVn zp+iZg$^a?$E2?m23St-giGJ+j6ei#&(8VjOGSY1~#yJOxf%0#v2@m7FOvhh`kmY?U zx`$;8kFszJNVtn#{R&m2EF0faVC%C~STIg=b$^V_tfC0sJl|^6Y(Qb$8y1{Xk(fZ4 zalVOGf{@>VGRKdtO{a^-x4fIGNr|M00JG>_RsHDiIZ_BtK(lD&4L^Th-@il>@tHo4 zf7_ZB<#8(mK`Vjt=OgAmn@%U%b-6rIOl%GY_4;M2Jpuh&mJE`Bf-Bl7a&$>`T2kfn zB7`gwFKZNwkTA0?O_$ zPyN@tEI857zEMTR)`vR;DhAVDs((d$3%RC=WoKW3dgqmSgNsJ=qk2}RzxQ!tgyO8I zy#ATgToFw8XK2f&ZOO+pwXk?M+;keOC56jQ{du~nLMoy$(?oasN?Y<6FtR$uan)7W0u!>TDZ0Tz~j zJ1g1$=Z-Br%qQq!@^Y4N2#d(H0sbN_hwrLFh%6!Yjww4bNd!U|^83)YS>%P1X3^7K z0+nVvruLqNi|WEZ~e=6^rwmcE-vk zk>a)}fEeqSN})d>*_jsJBIAqWUxD#7hnW|bsnd4$`3V+A*|vBF{F zTr6%}h^TYq>`lpAH_*8J7UkUw4V_i_Qv%%VH!zmlCyGxdEmZ-3bP^3u6Ja0eFB%b`PQOu+XW^gtrb|zSAhAQNu0RnhJt?TDyRHf$iq_*?%eC>qHUwBgw(W z(4B&g825G1Jpf;u{<8WtsnJP-@*8_p zuloTlJ#j?uswMZjkjDOb(<-Y!j)!@l{@0C$o3{;9Zk9>Rdr)?^gRqly|3d|^f}Mzl zm6VZQ%2C+rECsL#A*Pp-mrTc1pFVTz?+ieF=!ja zI44liM8@Xgz2r*XOMxo*lfAHW& zqIY{3iIW;D0dM^D-Riq7|7;_@@Np_T;^Ym5tN z_3O}$oTv5N>f!J3>?8ZTh0Q<}h6uuM4(U6moIGg@2RMS3PUIGf#6i*; zSEh3%+N-uxhiPRj20im&%>>)Si#h@J2>N(sJ-t9(ha&c#?FxGCuQt( zPHBZ}aP`{)q94txzbF}x1^id{&Z37T$fqdE@NH{e16#OzSUKX+QO|u6AL0Im*Y4;? z*@tNBkQWRfSSO|;n!wndDqP@&$C!8yIgVPTdwlO|P}?!SD!p6mn4}IKLaIQ!e{8H~ zpHa2j7VhD+kcEE*-U{nqDxjE=(a2O(l}_ApJE5E3KhI^4VXM;M5-2&qZl`e+i6+Z! z>I_R(4rgmq>Djib5xpH9o1p9uwXi1tT^bX_bg6-u|C;dc@I=`Bxx?#Ba4d5Y_c3Kt z9*GrQBY=Dm0+Ue(KpV0pjaJ9`&zw~m1`?@o5!ug&snbjch9I9mw7Zn{y2(|^QN-Fn zXSqWp$3vcp<)A#}Os8!Ok8YS(Kf0h1nGp#0e2RDDLOt}3=rDN!z|_B!V?}EhAVCsr zH86|Whrd(g=Xuyl8N&W<_BD%4aT%{yP)e_fob=DQYqdsJD|_hrZ#M#G3pj~wOGuRv zKI^hsZaJ62ewzBF{bJH^OM6g%3d|`Wi=Qyh{3Org-xLY}@XX<3>?ah>ao4PhYFW9Jy*3`HvU($3{ypFZ70 zAIhawkCTeCJ?)W6T;jSQ3Sw?wag|dZ{H^u~IsN)PCA@Blf%m#v{3YXa^e)WmhKe{C zhZtHS$$xczTU^44@=(-aXY~f~l1N6~6`~wtDQ*Tozpb2h+`s+nisQlcgn{mQa?ZJK z-snp%J5u0%(i=_fPFHRJRO`6eGF3D}wbZW;-Jj@a8;|<>9}kIb z=q`IVWdRXk%Ua4(j+L8uh~DZ@czs!ItYL2gbgL}>MEA?$dNAaFsD8QN8c8TXGxuTJ8+;%ySSO_^nt(}uK3yhgm}L}3n(Uij1@W?keGLY5=2Pg zR-)_toLJRA&;J;*Jw86RlKTGEIXihc*g$y9^vkinQHN@6_Ma!NT?^aF7;b&55+`sX zyoQ@lo;szpD@1&KXgl7DvWF^^<3Sc?e}JmNedGF;*Ob%vTMZBHn*8b3xT;X>A+bNx zX)&TgXx1J>^SnW2*k*JoW6r4dDg3)_zVt%KTcx|e%U*#Is?)X6VfbJ z(YfEIh$xd^=sj|7_g5c6rPK`* z8yna)hQ*JyijuAFQ8!!+9{Nr+<@6_cc@&^NOM2TGEu=l{w%l6Kvv%phSujh|Tq$Lb z!jbF|tCiKz;kBaI*vv|2{{G?W2g-dSEO}X>;`ZC}LFOwXZ?EMD+u#$~0TDEgaB-Fv(-w|mT8W(*{yA&UCx-(#u+0c>x zYpA7GRH@^Eg~fmez^&gzkGZivioUGE!dk3yEt2d_YC&P!9^CzMx*sgC{Bz4htPDsx zrygj?{qIj5 z6MbzPEgz}EHRXv}!9Iz-3AVGCyE2w)`2M4MMDb>ybVMMkzWPHgVXJxZHUBDjIVLt^R3EG#hW1_b;HG3`tMW!}{G$@y7ey5e$af;Ln z#i}s|be;MOrz?;tI+nGyJ`6Ug^0%Yg;_5=>`)K%QjB@Re*|n*wg4Aj9L9kV`DnK;4FIgp=m+FJCG_GZubsmv*xq}Ji7Ij(jHfD z(02xJn7wYIyj*GDclLkv7;2-UF@bF31a^FIHTdZiX9|IPT#F*;q1Bv zzA%qId@Ie}D-#|cT$f)g zg7baw`ee#P_jxaBEQ!XtN9v?hl0vT$PS;=J!|H4b*|v?pR6#vW*|f|k7GvJdHb(4ZC1pe4GGsgd! z@%LDJ8|E$K*8C(@v?b)wn%BXmO+DPi?Pw4QXSOTak!VaXk81V|0_}G(_JTMLf!xo# z$qPs!I8NWZxf{7`GNkP1FZBVO4pD zhJ-2^(G|PDfff9D%rDYO-dD?xaRVWzYqKg1u4kTxm_PUp@d7=xZN7Yr%zvfV@f9B` z>&fMJq^)9_WRnqU!nr0zOVGdBPjYw+X$h|tPj?r9SY&K8lpC8Oe#bahL7+S%XMb42 zt&7Q?`2PsVd3E`$!O(VG2%h9o=!P5WM)DT71syVnAj5>@JuC$4$E+sZNW|sSptgj` zGx){BX-Y~2V8S+GUYbi)o zfG}9hmCc_q`2#pRn=t2DN(Y3q#kg||RZ=pr%xY3OEsVVbd~Y&MZ*_HZk5OS#vXXR? z(huYPwfu^9qY%X_xu#VBJ?@;A1fGMg%_W`HY|P0N$AzYM^e7e$azc(z$gC z>-0ZWt`wvM$zHjN2>~!Rb_H+q^3UENf+M|C*ZM4pVW4gWx_N4-vUciUUJ}KlPjC9B zDxcBDP|0RNC|1Zpx_F#hr=MCeDPPngFwsH9^vh3dK+f2^2_^TYT>=+5ajRSrUrKTqj3O0BKymQGvqP5OrRAJBej z{*)!BiO?0J^KrN(`%{hT1(szk=DE6zj-bHi9)Y zw^aegMoD(55F=kUVoPx|^2ri5_6Q<>4P^c7kMh`Ear8^l^}Q}-s4mAr6o@Y8&s>sfaVv z{oqE5Nk{cM*WN9M*hs!o{ro}@NV1?jc?L*+qlQ=g3G~jZ`0>FlRG5Tvz0FNa&=G{z z06s?L^jYvIQxRK@B6+v-`A|?_^kZUV;MXf$=APD&(^HhG$J52gP(>^{V~_bnRkWkQMW-Tk1AXlQ_J5-fJ0Ic z3AOZXF$)d~vd3!TR{M}^Llqv;`Duk-tk{z3?BPpEPWdEeP}etwgo7I1)aVJ};YP5r z1aJ_1O8-I93=_3py0yox<>n1_l)>C%`Qq&DiB$*)U7^5;K#IyKncvfJMy*j7w0GOm zv=Qrz$;c_p{Tn5hO?BT-l0jz(ToFQYq_d@BT=oJE1sO|F}(cY1Wkl`Q(z3 z!S0$_H4Q;z&-ruWMT`Y)Dzq=YO6J}#-`D*@t4|~1Nwputnz-g*7rkSaL{=NEn>IpI z0tLxmnZGzw!E5BM43Co=#ezk~Ouz3m0$HLtq47LXPV=l20?mW_QlJ(TvHEI)&WsF) z$42qc%P)Ir|6E7|vtd6O*~F~kbe>v~a1*LZR%zXm#g)gt5@Io(@%LNe2w1f29~{Ok zaBO@1gTu6WMZbBYr+GP^Lu}J+2Kq?^R6mR7prQwZU9q!xyPLFv%(^-!CI@&Vj;tSP z75OW^-BQ!vnlWM;>zi`T7B}POs#vl!C$@t&9iJ+Vke6V|FW0P5&*u3Zxhw%9_N4jAd-_N~q?qe)FNB3_v6cd! zt3SOnnN=>8#e^3kg^EDoS=M+*;+zYdg#Xoe9=E!PPeE!GwC63^N^7I|FT-ifqRXhE zIO!K6pg7G}0C$B5drQPIM=`ZFL(mJ(${bGUGf#<8MhE;JBO2^i(_YCq$R85|xJn#H zLP*f&1X4b*A8=j0O``ZVBD4NGE_LWFPl+teEBr>I)AgpC5Nb$=Z7X{B?E2rxxL!CV zFs#z&3~DX+6sI!zCP`b6j+)~czc`xMAy4|=qt7D z$2nQT9;ImAVcY)a9M;Y)eW@yB7EovPzn7}1 zsB1~Xzc-%+wIK;&{aX9jmsgj*u}S~X&^MCSswcC4(-gq_DfiVCNXc*F#j3hX`AoPQ zq;Ms>4H7`$V0v|P53>tJ4>)pIhmvp{G7a$O1`G+HwVjiBbXW_0pstDkwgeA0sPmrS zb%5TZ=Sa8|DkagBh13U1kf$q%F;oPRQ2HE-Qzr?e?g%++CrM11WltAQ;p0VPzfFZ zwfh^ejwj654~0}r5{SiF`RMa;8IT~mUPN_`YQZEN%f=8-q5PU3g#FP^y{w0Pa<)Xs z&%~H5sTwK8rczhdQnEoIieE-=DF<>FPph1)rVL@TwN`O9a}TqUn74KX(-J0xFOrVC z7qNSDhtZ^(iEQM(H~ zM@OA65JL|$b<=%kawzbaK%BF_?wL6W+T9{9le+1mD6#solYIxG3R2@2L?~vac%3YT zrtwK0AN4XH8-xPXPZCY<;hbbg+jdGsl|Iva^nIGtsi0Pig?*oM_hQK^#Y;JE>Y=<$sfQP65D_;O{#RIXy(K&_ewjOk!z zat}xA!ZOPi`Tj^D@J8 z+~LTY*30x*jEn^}L&?t;Jcqyp%!NCxh!rN%eMt7CKdkn$>JJ#$7&sIz@cMjd))gXr$-*FlGF#vxP%MxU(+|+2LiXT^Wy4wEJbFrHC)LU<(E{*pW?=imrW!_NVmu>VhSEuV0$-L<&>U^V;->k|9yal4KozL(Hu^93* zJjVzQ$;0474<4yY@*r(ffplQK!QIFu9F6Vx->IT&KF543;p}FN&+W4{6KPL+Uyz#1 zEj4HTHRk1I6<4J={}QBt{rY>z(n8Tcpzp6osOz_vd9$V1x}S-RWkpWD6d!1#C0Ev` zpF_5ml3jOAH=FKR+5S%+>qyjp(eDRC3fw5-PK*FTbsfPzy_qGbS)(6Oq zjEF$KytY47ZXVIY@;g|G8?NE#7-cgqzRbS^T2?CUN!=FQF#zLLS|Ca6_|2%{1@R;w zy8)ur!zy@W@ZSV0V)W=-sGFrTSM$=o2}@M2YsB|H^qhdpTax&%=N3BrU&?7 z?yn`@7{U%IN5ul$FIffW_08ABA9Medn=@*dSJ!#pREE{EM2$OP4-_{B>iWJ8r-j&D zLy4Z0RbS?LTqydDFZbk!a-2zU!-@KWsVbA+t<~=yXlGvnGvv6?-!ye=adx8fts8ask5oFZOUbXeeocztE;n_nVxjZnptd3h&eG4>El&k* z=*;|{{X1(t>VgF;%fUd&YFFKGCzm}JzvX1sA-#tpw_9#q#M5sByj54NdpDC1_aI_o zXY)NKI}Zi$w&05{=Q)%Mt`aq6jR}&cp%W@Csu|ARTn>T(~A#(u8I|YWSuH&tN^ofB`cZT=-NV=kAMMcC~1drH}W2@w!Dc zoD4noOl?kIP9RH-9F=)9>m*|SpOG=ts{4L@?k!r0zDd+@%vgg8cnPidG%SI*=@a(?n2_hBS zyrj+vKW=m7Vp&0R?;x|G7bKX;6TiGTB!*IgP~Kru6@E(ic27Nv8OYcj(xp%s1$OC9 zyVj#|1DgdoX?x@NwW-p^=Z{C90MMh~QE=UFxaQ{KN4DmNUuye*1=dlZ_Vi3ylJVxh z7nB&EbI$}bsKokX)^j^U)Up)HZ-}AcBHk=`y%|6$v0oVM=>>?RcN21dLA6DKM4;kA zLJB{mrYZU@jcX!x95ZgDj#F}ajN*Mn-C}=^(uqSHk?eDP-^KfHDqm#n-PvaBNa|D- zVn~+1-fDHhTA0Jn%Xawo-msjn2*wF_6lZP5b*A6IqfHhw97K*2V1KH#lsg9yV7%ox z$>b8|?;vl2sWrf~s72uj3SIu}eG2XZLAALwH{I+-a&F_!5B#ph=I8@eD;9g#?-rAds8>YL<%kS2Ng9oV- zc(|o5`7}3@9WC_Zo>6ISEP(W514S?{^(oDk|JcSn;4)K^+xSCxL`hqbmu0Cx)*T)M zy?1`SzrTMQo8H9Hawj8tJa62ri)7pgRM7B1A87RG(542BkN!Jn%3vR?Cn|B~J~NA7Gj z$re41n8v{kTDx?7YoGl&AWZwV_7h(PH{`uk5&NT6r!uiPWe9JZ1^h1|khmi*(KE4v zX2au;+$>D1mciKpCinaa`m4XyU&~QE|G-udfuN3$vpSq*RM$LX_$KO-%(q^;)R{`?+guM;bKiS`ZmIajW`KT1Z z*&F`=NXrrZ>&%TxO$S*m-md--jA`~?!}g?}?*`#VrylzmOo@_Ro3s^xs>ypOyh;iF z;nm)=of!fF->p_(dEX#LO$zS)qZ`yCm@dWbk3TjP~gBdS`8`;OO>{Un?eLCWsxjO8xdf~Fl zZ%!5NkUj>0Rk^s^{`eU6=JI3#BpjgK*^v3$=lSH(jTON0%y+egr+|Jx1<>m&bqq+= z?x3mjhdUHEX7j_T@&Tsj)Z3+wcJ{%p&9CkurChQ)LZ%mIdgI0;KUKT%+c;t&qkMo& zYJ62p-?>lu^HPi4Y470(Jqc`-?60)azcAIH8G&`-K`V%1&}I(ttRipie6;%?ZN_ z2pu@g7}@$~~PAiQ<^_tyiHraK=6mHJ9z+Lg;i93P4v)6Xp#@J)v zTb#>msOBnGTY&6u{IGf@Q&%B5%6<>gXrCY+YBAL;@00T_&oP#?wwbZ{%boHv4Ck_z z>VD+IrKn_UN#%91rKL}SS)ac1BBp0|y)(&sj@j4(YG!AoDiIJrEs2owdEYP14MF#d z%<*rEcZ_E5J^~+$3xuT%e5Fsbii<}aZb8t1mZV|_3i_P~#IYxA%?r-49DGQ3fb8+f zlVv4aq4BZ=P{kC7e~WImY)bcaRsE{rlYn0Ow!Ph82!luO+c1<5NtY`%yU*rn73fw6 zPX6o|wy(mcwj1&v&BGtA^ z)$1mRMV7xjm4a@)9rFO__+kHd`QwZ^rL|w7c>}OL)oiYF=yUrhl2Wm+f&^}}jnDLY zs2Ih>QPH`5JbfmnoZN|qW>qnM1DEeWGOK??{5zZ^R4Zm5sd&F{TpC_)L1QCl^7Rt# z6^yN~DGSG0Ej-A{aS|ajZ8yy5;D?3}7wdt7T09gQzP~6QyE?rpjQmzDH()XVkHI!= zByIU@IMAd9CRS%+is*MbpC~Qe)!3k13GsUMsMIR;(!tMJUPRFDAv2Ak4fG8Mp@UFQ zZ-459@{-f^9JZRwFj&)Hf;z*Zfon}ZdJK*atG?J^LuVlh9Zs4t*j(fv3(}H#1kF|B zo1-u&iudfty|zOe$Fm~eESnV8%Y$^MjBkHHZPC)P&pVX%t%4YN^(fbj&!-OY{hZf= z+Ro>Gsq3fR0O}Hs1)#WN(~lONQ?gzWTR+#G8#`J`b%D8wfyAkUmswo9R+$uQKZNses24^eSk=Sm2ofOKV~lmb*%=Nf24 zDzZDPvnShPOMXi^pvl%r5^)?R{}35o^V$@kIRoAIc?E$>)M5GwOxFJ?498Hhs)K)x zWEudH%>-sq+BzrSPfAZ)zcArV&B@8B{LdJ&mDe-U6cnOq< zUmF{h6Qz}MtCT4pJ+S)oIW?6lV~Lt!Lq7tEfzLWw7rAF|Oh|pt%rBpTTvy@lkhPTW z&tLFHGh5i2ie+h%-4TawQg-xps>(da8gjf_UHA+@pTnmuMG4= z?C$NESmS=fYdC{Z_ER!{tEM8-rw5OTL^<(fJ{iH``POKCL@M1E2GXen<}ZuyVT);y z$OY+*_8Bf~$Hg-kWm{$QE>oCT5ifgvMuErCJdC!5PbQgsx>H+VwESf3aDD&5-&a=e zALMXNc2P?io07?wx4;Rxf3v;m9Ov8c;z2 z+~fI;7ekcvyGGgQXZxQt|IW=J#+wQEM88di1|f0D0H}i?=p)I;{#{Y`k>X9QCa%pS`gq!6@*0FQjlH?yiJ;5s_ zP9Db=Nu(SVHsov_zy7ivP_Y0g2pE8u^9{+Y6}J4@lai#NqcwAMvY!v)654)ptKrf+ zRZJG;HdY|F|Lo;&-P}5Ij{g5l>uSHZ?D|_UzBey`w|7knFkPTs9Fak4cR-&t_d_3p zxsE0BdR$%2(c06gCc7U^pQSMD;q>Za%*05l4rEVBZ||A+%CNfkxDXKbob=AKPO%Rn zMky3JF&%6tnz9p30V(Z|3Jf6kG7;D4b%*V@(lz5*U#$ZCJ6NZ2Y<5jrv_5EN%iaw& z7V&)jx$?doJ~rUvAq%E-K&QXj`)YBizydd+_V7~Bl`CzBA%T3HN~9EM>ethc(qSlMW>C1Z5Bv~O&3UZ$!zO=zeD^~= zj-w_V6E<y44~ zobLitg35``Ph$H0Dq_e(DL}1gAqooa2u>oCdCjdl4`!{ue|GA;L@yx34QK

rHI$ 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 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-show_address/00002.png b/tests_zemu/snapshots/st-show_address/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..7c32a188594119bac0371556b4f3329711e8734c GIT binary patch literal 7357 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 MY8%}xxebo`FFQA))&Kwi literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-show_address_randomized/00000.png b/tests_zemu/snapshots/st-show_address_randomized/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..a59aa2b0339b70c4b16d1f58610f09f03d8a2664 GIT binary patch literal 9384 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

  • 7#%-a?@;;hq*H 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 Il$$huvf4-t-&zAOplL zC;}7(E33;$Ed}Io&HsNKDfKf?v~Ht|EoPM!hHOg`}GtmJP2wstOaK4BH;nNSq~ zert;7Mf!>*%ewZj-F8ESf^b(fHcl76BA%F}E6u=85$ zQ3F`A$oYm)tv7!Wf;1zY*0H|EY*+<)o_NyY!`{oet zi)smQ^=x>F_|Q=<-Y4Oh2(iG=SEz*DR1%ssuT@P>Lb`b{G>JScHgx`p&pLe4hY^(5 zbDkiY2;H1m@`|@K*KzNROIhwyPLe}Cl^jA?*wIgEqTY1%6y>2cSh;N&?U|tTtcd*? zb-gLXH|T>^x3pu2s{_Ay?jjt0_x+;-UA6=<&%n$MH;X>fz9+LX=4Q6+9?YoQ^F8T) zMD(+#;}Dm{$zso?rsN68IIfip&pi=WmF}ga76ch7uwzHnEn>Z1g7;0kGlXN;j;gGv zrV~FWiSSoCAt@d5oIqB0+J$MAS$*orxohoYuMJ`Y2xZ3q24wb>Zc0Z7Yh>lvDf0sx n*XpgUZ9mGc|M}*DOwn!BP);#uQ3HIdm9sws{jK`6f69LW>6=O* literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/st-show_address_randomized/00003.png b/tests_zemu/snapshots/st-show_address_randomized/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..ce539ae6fd22b05742d3843d775c2a04b75d0f28 GIT binary patch literal 11071 zcmeHtc|6qr_pf9tq!5vmgDI1J z8T(}44Tf>weZIf@_-|2j^FHUi&Uv2adBr_2(qTQ# zdzyxZhE@0e-G?+ZC*IP~(7tD)1^%OA+)zwIBgUY6SL;!5_R9EZdX!#ujNO2M*a1@;sp-Z=zRuh!#?j2=|tI4d8YZuL4&`wnpU7JJ_7C5ox zj5G=42&5zpP0i&pn$KF`6Az-BY2PzM(%)jGWq!^}$3-L0Bu?Xc)|}>-(EsoQ)Fb~B zG!1$=B*lWCJLV5*nfC-FPstx8za()-(tlQjnMy7Y_EGymnVs6;6Y=Ucnv3CW-4Ced zPu$O$Ki3OA&P>^Vb^hTHKA%zNZO3=FiUr2JOL3TWzNK zMK2>?@p6^<_v!#7|1sQpi0y+$_R|1pM!F59=&JC zbGeb4=c1xuc$UtPpjLk0*j6X&MRSIE>EOf6ML-eVln$b9%5q?ROXp&pO|WV5)l2Ih zpB5g2(kmH9tJL|e9xXwDfAe<7XM8u`(4eo z(-dM+(QML!F@(?X_N4whRP9HY1FhQ>VimB)iP8&^j-g|Q2SY_gDgsH^8J~4)!v4+} z?*Ku^{--cq(~DCGBi7=gA|z6f9im>3|oEj2@8iii^Y7+Uj{P{1n9WlTjr38`@8P;c~)1b{)&J?XW5A4p!#voYFP=L zEf^_8+vHvOnE>ljvtmaZuluQIAD}!eRa4HyM)P>h9VNQ2tKDRxm5ql~k7l;4f)T_ErceNQ` z0)&PWH4#SamcGQ|BdFH|;O-`5Hxxr$BVSF45-QVCSSE-0A;rV05^fi$zPIGVns8>8 zGt0>R%D$$CF!D_XTMuGqeo`kF{AD7%6fP2wj^rOVS>?rVsT0X70zs;7-=x%#ctktm zZi;oI499&8MTXGzF@`>zl|uy)e7berxAqZ8B;a$)Qm)}`i85l>J@5&^vsj-TQb>;G zhVN}zUx<`H;N=>l9}PQW`hGdkPT{|Ny!AZDs@dJuJUZjvO-6a~N&O)UQ<&pum2bsv zU5RQCW>d|pVtB9VW>VhUu)WSDX1*}TD`n4bPEnfL438DCl%t8Jh2K!j+H0S|C?M`c z4xCTEnb~;Op5|mRz(WLg47WZ`U*n-FBaFO)4HTX?6_9n|jAy!fM&_>Du!Cf_TPTq3 z3{r@03Z0fvPdgBP%3x!@AM5dO&ORWfVs%9w7dYRoTGs|n6hpanAN`3uEZG$vR5HxP}~D5XSre&N!{@y-JKcpNX+y6#$`Lx`E; z;l;j1?S8Q&;N&v_Cx2-4hQ-=O-D0{9kZxZ9^48pLSls+#69QygZ6xu*9iJBxoU z<36ZVOuRJ{0Fukwy6#ZR$W!8Atw%(aIo6jzT5vQOlnOVte{l9sLh3>V<^Pe0`*gWt zBKxmbV4W!XcG&fPxav3{w$^}8{6>X=-9$wEb0C{}xMc3MRBqNp3YLW#J-mih@dfKqW|#~v4U5ADwj z$Ho2mJ3gR2W8$2m{kYxV))(KfLTWyGK{J&d0S(E&+urDdCDcBsFo{pPEu6l>{krvE zUTOa4Yt{cl5)LT~wBTCmJ_!jYSd|W1AOkX??!3==|Doo;XJh_2ziX`C=S5%hKIR`l z!SB|n)N-GPl1FBKl&a^_K#Kc2cz~E+*tw7CzfdC5b_K}7e@7GtWm1dDP_Yb+>%fxL zzk8<_D%Nh(LNEW1ctemYyP=L4?{;b`>Yw!zsAYHy6>FgVr|0jf`$|j=ZEssno%^R9 zyf@=1mOftM-P)}G0BwH6zBG}9==xFMzmebmTYdj^2Xd+BTs{*W(8kZ>0 zvvh0XNtbu?nOoN@UbaxqnG3!p?FZH)a<1y8jC<<%1`NShLmQ!0Qo)*8FPPIEhh4vR zp_d8tC%9hl4#aAkI2?~wd4NFkwuOemx|^#{PbAz0L(EM$kGLzuWm%Ccf%@PRQCFwf zMRZg03->c(E(v|MlX#ROjGZy*eKi-NVczLFs({}rDjKQUfoQU{DkVaQg4uQ!u)ZOd z)(0aWHseF26K7g9s8mLN(T*)EDpS<0-ru?|OLefv(@Iq&`-vU3n~5{M_4XrGJ?L&u zFzW3?qs)-AbTWo8M@Ne)kBeBJ2xeU9u&9Wr!p(_U0KIJ31g^L|mGNVu*OJ=s)ZxP# z61EEzV>hO}%Z^vV1E-@+I1Mu@WFz+{J*(?&N{{5^mI7+67>MdfJOSQI9b{@PJJzaK z^Wn3Vd9w$@S+@v#r z7;;RzCfF%=@QZb@+!C|mmY~6A zLQ2HvZWV6ryH6MrenD}bCwDIf#kRIIhXIQY^N= z8X)k&lrLA`l-RGY>`=bQ zyw~d8MG@mjD}<=%BoahlA$DC;Q*+lH0ORJa4O*jB2nnIb7Fjg>7mF0y6X&5{eWq#e zG_XRhNiV}P!0(}MM<$37ZCWj#N)qN$ph~?DM6s5tPa|iG&K0h`wie#An$Jg++Pqcu>v=yGxD&UPmdt_U(W3oRJmgND z_-9`ugG@wY+ zA9Epi6*JIRo6?WhZp2R?>0=*1b-VrR?S`^E$e_1Vdf)Kg^R$Fc#q3&I3_n)p5)22rI6> zaQG10IP>wOK)pkR+b0Tm@Z%x79{0S^{(TD=!i6tPTC|tQb|!oUImgl}#S~RnLKz>b zxSI2pR6D4;al@#9uph1XqaL5RBLk@!kkra$Phbn|3nu$ zykVVfwOoI;g7Ar)iGl znHrbX+w-KzeoAoIK4aNS{*<7P5?@w+t(BxpR@cqhjo>kN1p@L0&bNMiAOIn(Yr@&L zaY^*#D|iEmzVe@PVnY5uHh39l!H-|Ca|xcANz8WiN78i$O97cbcCQFe!3UMZVT zCUk0>08|E%Oc|%+m)X-WG#z&FTupqK{u?8SDMsYCq2da3!2zM(2lFMps5~~$&bW=n zAgP|q5o2Q^6Xk{sZn}z$$rF$FYJsRYXI|Y8q%w}Y7Dp0-8;t;3tXq7 z-bak}W(9u(XH@L%?^~1(q7Q;ly+8med9PX3hiUcs*V*R)3bxR9ZgXhLuD*diY6uM~uA*{;nkM<%=5b_uzw37OlSgyoK=C z+*3leY?wWy!kt$cV`VZ|26zT0(eEur9afdZDVBaW4}nAcN7s`}2deklUtbj9yR7-y zg*Q`%wooYrQx!mqQyT8er=qlz}nkza8`l zAhIh|n5a?prI3tBWsWNVM`-iKOzUjN2N}r87z+;K)I5U5v&1MOlq{hDsg4m1T}80W zdvdIm*UKw$QE{sSx4;tGqR}}@((Cd{`b_^u77s*q^Qy@QeLBBRUjy^L?i6tUXV^;& zK!p5vNaQYBfWqr{{rcoflatoFgwl2sn4>Rdz$;h0Y*Q@*9^7!y^vlcg2VL#(Mggpe zF4_`&%C;w$#WSz2qo%<@!Q{8mf9R;sf?5a@?vmAHSkoTHY&ab+z<03#oC$v69HF&}M1VeN zCBD&e;d^N}WNTPUnKR#5HRr~LJ)W?t^q3yV=dc7n6U4?g%!wdS(r{_ zZ}q@?phLN<3r(Xd%RRp^%sWFX%>bAvi1b!L98}LKlx}+oLjC@>L(|s&*l||3VSNu@ zcf~`sC773S08AqvSMy|E$Qp2u+@1foCOZ(dqBg>&=KYD=?BQY9M6N{CRwfx+X4 z%c#pcop++=PSHBK`R62`i}`T(4j&faBb(8J*;nvCrP(YN#J@qTt(v&W+P25!pEnWO zxQ%5ry+HWyUXI7%Kg7BSQ#I++O1luu)+>aOQ-DBws&HH;I<-u&I;~j-Use(EcCM^i z&|PukR%5SyqA)MR$znks^v&IZWkwjz+4;Q7YgE|rrCavj%ZO+(t9+?w;~V~CXA+4C zxZF}twp$Ig^a3HMDPXT|0#0^*9@-az^FQ9vA04)K>}p{&g#36&tKaLx;z{nsAl_UP z%ns%wfWbRUbUPs4Bju%y zl{Zyc^GGGZM6oW}MpWFv#x*F=t11Pw4oVwQAlGDlc1vB}ynh7cK7iAWm&%!0~-gTk5z9TS_=QiM#Ls zbX*r^=7-6EC%_)(P#kLGoMpPELa|&mVX@&RA*(aK`Nn~RK(#pOlb4;q+t`rSys1`t zE&d3KbhNO50mVmXeB9Hy4tiC5opV_S=thS(f-A{Vev{+s#@My*K0ix`C!bXwqc zk?yROan;#`uC0ej%a_(F)2@C{;yYtVu#(J>Gt86mRTEHz_q6HE2Dz_G1(&Hns*TSV zisM!SEe8WqgtblXlVh{>L%n^SJQVkN&72#QnZKZoQDKMc!jj{U6%(G7T zRuJ(L@j(tr#_(~(n6v&fOFi)4s)NpTrYN{|(q{eOvHNHh<%lZ(vT@2(JLSu-HI)!y ze!f3mH{PD19v-3wmsCeyb8MvvH-5w|ukvqd&xIi3`t&UKRz$MUY0X_|_do5qCFOfv ziDQ`I;pNT_1N;^g3hlmk6X#no9KJX`RKTeV9dPRJa1aYvz4j0`cZGbx=g?-1TOwL` zsgAn8Uv3MK?;$xj5pjTO;$mu*iqEC0ZK)~p8&^Nxi5PFZ)AU)*es#!LEq#Tr|#9s&tv5{nFFn}F?JDZzuMBJWf*0Z9G`xo^x%7M^wDKT zvv9u?AV~lKkQrTV7jbq572vZEr~u*TrJvwgfMU7csiF@p#5Cs5&+*6xX(r!Dw|?Dw zKd8PE@$-{l_4{VmtbD%#;?a|DOFK_EUs|2u_%pGnp(ehfJOV3ob^1iVvxh!q?l@G{ zq`GA3=}qvPOA-?(xjky4B_a)8%-wZ?YjJ?|g}F@gAE={Gg64xC+)jzO@;~17_`|p- zxSE8q+46aHe2JR9A8a-(;BT9}SeNtlx&zHG!rFzo&Bku)%9+L!P9Bj9^;gEG@`Bug zb89J`Lk2m%+l?Jj?RGpt?uBS^ioHzU%28nsN|eiGmEly>dUCH zB>pq8JE0Pa;sreP4IGHoicZ6(#*KoX9SDbZ0aRbrm!q=GI8oVAQzMM$vFb*LBbKr6 zo$Az>Fq`9VZnTGG$X*4`VA)vNGZX59t=gR#9ca)ndtO%}diqDEueYCF%vw!jx7hts zo#T5mgG6V^ZDjP1LT_!8U$vsuwXs3RF~rrN(u}CiRz20NO0nqq-3i3Qoi#mAr+4{< z<8RJm%PsVrEi!Q5w@;tfw!3zb z+Uq=yZp75KH`#8jC&De4y)KvC>p6|;_0vfamaabkl?2`e>%x>0SDf3okp(hhW#6Ra z^cC$cMc@RTv=B^hdAg=<;IHYYw4o9qkKm4-^*%rabEn0LEB{raqeXm~po8xtw%)4a_uN}%q-PnNHTz{eWC_23 ziIG8KsF^11?8XuTyZ=sNAOfAeMmeJO*YFfrm^gNASIDq_($_^FDero@%pmx(bC{;GP}pYbc5iUo%~L< zqAp$jD|zKY3gOjJc-rRZxvN`zhpsAbuyH;8`%qmm9sfGw1B==2_phI%w7)XA(zq7g zI?RAP={drL;BK_U-$MR~h)+9QqQ1y!(Xqe3uZpMghdu3YBQ)|2;v8|^<0H|ZKKuIK zvPlj|Q(YZJ{FW&im{8)Ne`}p<`W()-mr@`myZep4mDlsP8piUjiNoUY#9HglrrH|P zDz)N~A3g)p1_oz}KC8iFXDLJbU5x5(Zlb!t*m_GXBOuL(q;>YLNg64{0>-Y3<_w$Z zIAr{2(HA&y!>ih|Q}2(30`72X?|MP^iZvYzcyoK(%)PM(03ZZLl^RxadlBDZA>lbG zS~7w>J>Y|7;f`q~SdeP^^&GV5vdjl|7RwZ@WET@tyuRA(YWC=95GnsfP zWCfa>nr&qL#SA+m&2p!|{>Q~1u{(55*d468kIzk4@R{~_xmQ+~EnQE$00b+q_Rl3r z{qX4ln4~C2Vg5L`cCx?Mj%ry0v92F1Yth6@UgC-t0;;Rl+52p*czja)L^RvwvK(-3 zDS7qaa* zWBgx*WuJOh40j(b6Tg+kNOQFE9x&)IWN!2z>{yRXln03$db_%i5N(DCoER|4wq1jt z6q=>^&GtMci9A@TxiJLvH?jxlnqDp`{?2IotL_z5uV)6D5?|+{Go=<$^~$#xbl&#x z#>&^!UQh}Zq;>m+YF>QZSQV==itR_W_Gx%H^pf?Nr_V>uY4kzXnbMLCWf;TO$&=;d zif%Y1PY=pWpKL#I)X?LzEEU(Fp)lPI`BWbUwvNCg^g7;>0uEmV?UIUr0DQS;SFYj= zZt2*p@DpZ6MaFx3qq)weG;xqU(c0Bd1F1T$2-Krx4aKq&Ps>pQm%dN7EZ1!?rxk*A zZ#h>1kM*7w_dDf4iaNpMIY|zmN9|U4@`{R%69bu5$cejJGP|x%&o21Ydac9}-Y0QS z&i{U(M*oMC>t(0?`-tlQnvu_cR-FEYS9ks+n(<$JJLvy!@$c_hZIqHiLUJPNF3@<7 zVsc2|eGV6%(lmSgZ|0N#6Gz*{RCyE^9r#~g4>|(I$dmg;MK^HhlBFsS2$8K-N;d`T zYzdols`v|S$r%bFFG+Dn?tm8SCjJ2AARD4*byC6WOb-j#{P!x4rMlfe*Jy}j!AwnW z4#RJ2CLn+gSS(2IKrfR>q~!gzzy|i->tfnF3*GwO|BQjDYAHqr3 zGUcs=#Ao30uEi@Q&h4n-1v^nfOp+P6oluD0NsgM6hTm?Mk9!&tmcupR0~TlLOgMo- z;<%?e9=FvXj=L7WYNh{UKQEzP980Wa7n)QO% zyltrqarNdUBwk#a4UGn83uhz=o^(vV{)j^9F7wH|$EEf$2)~{6F zBN?#(Q$;WEnfuBKitP;)pf3bQE0<-B3&#w}i2$|T`BhjqoX8d>WN3P-ruDT zV{|^m29%zSgD0jKksF-l-6?|Ez&fD3)`gh9bPXSetYo^0FR+=V!^6Yw#ZBaS6wA{+ z=4b5Clcu$0GeS6YzpG<=)2K7Mrms6t{jW#M4fM&SOEVs2B}*4qWasQ)p7RbUzU}oY zyya1C$&-~PtZM<2sXGEZsPD{xEeuNBE!ge~de;WrQc46hKwti}Y9C6fwcxmO-PPRo zn-wv`F|#wDups=i%%-%b!-cEScDRa3j!ZXQvcXn`mWcj~PPt1^>l1v$J#$$2+zfB2tVFFox+}q}?!v?}9?eLAC%r!JHPH4Tj(4EC&PviZmS=x(HYz0Vqf3@fmQhbB z+!Pq|)`KBOMOFkkU|{S$4}51}w#eZVM3%k@rxR)boHyT6er8n=^O1SXQ&}VE>F?X% zqw|QZ=;!yg|6JeT<$~Sk{gT+z4OsST#DQo!4LB3H5%qt(Xl@+aS&LZK@!VMlF2>U6 MY8%}xxebo`FFQA))&Kwi literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00000.png b/tests_zemu/snapshots/x-mainmenu/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..283d3cce477f78ad4f7111a31cd8578152b326cd GIT binary patch literal 504 zcmV+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`ig@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!M&#t)<-u_Rin1Vb&hon4Y08(IX4aSQr=c#^wADw_hbLpM zV@M9O{&Q`0H8a}^y1vu=S{|vpoz&QsGR@=loXMK|YInxqVbT`#d>_XzQQc43=QD3# zU*XoU_EUbo^??~%&;b$l_c<{*Zb3D<{2Ovhxr*EdWpjfC>aiEK6L4W0CF1e&mn+@= z$(oOC&GIajRqcu4m^Zb#o;I?%$t^~(+2#3TvE~FMIn=id#Ih5R;>^LC0_{QziggaJ z=G%t%Z5rp(XXl&rM+{q{q#~MJoBX0MzA68~4ichx>GNOX#N4>po(oy+EyAsUlV#37 zGFg-f*qMg=Gz%0Vt2)LZe6tWMKz=@y2IqlHI5)rc-!%aM00000000000Km8U0|OK) UYAcrAzW@LL07*qoM6N<$f&mK0rT_o{ literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00003.png b/tests_zemu/snapshots/x-mainmenu/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Gba4!+nDh4L#dXaJJPnEG zite?1uUEO3Dt_9-IlJ^slJWodS%n-^xma{qfx2Lzg@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!Mi`4|r%t##WwnT}vsoy*6&kZNF~!91rQvzkkRQ-Z^qcK&K|6 z&GPb-rjuuAGdu1uHg-uLqsPb@0qvh`(;XAK7Naf%C%u(ZfRmjxMmL)UN6(*vg7ZGx z^}jDb%3!R$Z*#c+`D;Ua$eHLbo%4c&5Q$UaeLPLF?1%X!)v_N<4KkU9GPw?Cdhhh^ z+$mn$#0z%bSR8Jexd8c3!lN!741i%zr#oT)OL8ygftgGO2w+XH*8h9z1tU!Wm2MjV0000000000000Q_=NN0> zcl|b{xGoU8jl@#k-*V*sPA*)oIy`EU-vgmJ*9{Yjt86atzA9_~HWa%N-EI2{Jm!SS2((`(l_qsvz5LtF6dopvn`eNW!m9hZm<4WhG zyOQf+zlSaBvROTEhMKuO3mxx+;5WT-bR3Th;uoP_`isTSAkWmksN8hyXQ4A7DEP0{ z;9ksBQ-cM5^E!MNUyLGv|YxvF=G&%C=7`#PIN z#dF!S?!t##X7e9*n)RzS47k8GGr;$uuTGrrmVKxd{|6Kz9=WXzxbJsC0T#$Lj^0Uj zaoG}-U&u!ECC@9N6!TS0000000000003_7A9%`R0m8&e6aWAK07*qoM6N<$ Eg6!zkLjV8( literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00006.png b/tests_zemu/snapshots/x-mainmenu/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..86e715d1dd4f3d6bfdcc19ed0134f801855560f7 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2#EZ-po0k^=U zJDk7cg{nU`dZ_*J$;_R(aqsh!3P*qWE);VHYJ!9EDM4PEFLl3v+h*4o)pPNe$h4yH zhMJ$#jZWO0AiZ1H@Yp50SIc_RBEC+)%6?wsWlE^GK;tv1Ey`2oo!YqV&e?`VydKB) zW(!!_uSz}}ZnK{?;LH*;uDdoLyY8#5@Xg9EEBY%boBeO`>UoTdkA4Zd`gik*@QpRw zb8pIQE}3or%}V;C)lU7pw+&J*#V->!eW~xptFw_S@)pNTshCsVdzQ~Re$VmJ^iS{J zr+;Pt^!?A@+j4Rbr}*}5-f^RA#+{u!XO*MBuRQfF@HPJy+pudhx5FzYZ>8xEor>*#5HpDC-KP39Bd6Sx^0Y zJMVMtt?C^y{8JP2-)Y((sQ&X$@w0#kJe(K~wA!sauTUekqIV}q(9_k=Wt~$(696%n Bx}N|5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00007.png b/tests_zemu/snapshots/x-mainmenu/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..c770372642f8ce21b3e6ba77fbd43321e8c0b76c GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|;yRx*ioLy2|aen&Di%VW^?(p#fYJvcZt4DV?yq_6aJGZ!O%@grSj9b>` zYaT23s+Vvx@cZ-ahlFM~+c__-Mgz&e8Yn1#J;+gvpyO;Cpm9$ zGFm7ztTEX9(<~%UUCWYDez(r`UyJ_B3)FKP=9heUW`Ftw%qO_Qwe;T>N`Y zuDy_d5%-I*69?oae<(Bm5pR6XcsJmjxy{qFpJp$z*mb#e>0!3c$($z_cP#q0J-4KK z<8GnJ1q{WdqNgm~<0fw7bzlYAnSPO3@ WOHH59+S9)yL1Lb+elF{r5}E+&*N8m; literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00008.png b/tests_zemu/snapshots/x-mainmenu/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..86e715d1dd4f3d6bfdcc19ed0134f801855560f7 GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2#EZ-po0k^=U zJDk7cg{nU`dZ_*J$;_R(aqsh!3P*qWE);VHYJ!9EDM4PEFLl3v+h*4o)pPNe$h4yH zhMJ$#jZWO0AiZ1H@Yp50SIc_RBEC+)%6?wsWlE^GK;tv1Ey`2oo!YqV&e?`VydKB) zW(!!_uSz}}ZnK{?;LH*;uDdoLyY8#5@Xg9EEBY%boBeO`>UoTdkA4Zd`gik*@QpRw zb8pIQE}3or%}V;C)lU7pw+&J*#V->!eW~xptFw_S@)pNTshCsVdzQ~Re$VmJ^iS{J zr+;Pt^!?A@+j4Rbr}*}5-f^RA#+{u!XO*MBuRQfF@HPJy+pudhx5FzYZ>8xEor>*#5HpDC-KP39Bd6Sx^0Y zJMVMtt?C^y{8JP2-)Y((sQ&X$@w0#kJe(K~wA!sauTUekqIV}q(9_k=Wt~$(696%n Bx}N|5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00009.png b/tests_zemu/snapshots/x-mainmenu/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..1adff7ee65dc3c9d4ac64ba994d3027ee4e4093a GIT binary patch literal 462 zcmV;<0WtoGP)741i%zr#oT)OL8ygftgGO2w+XH*8h9z1tU!Wm2MjV0000000000000Q_=NN0> zcl|b{xGoU8jl@#k-*V*sPA*)oIy`EU-vgmJ*9{Yjt86atzA9_~HWa%N-EI2{Jm!SS2((`(l_qsvz5LtF6dopvn`eNW!m9hZm<4WhG zyOQf+zlSaBvROTEhMKuO3mxx+;5WT-bR3Th;uoP_`isTSAkWmksN8hyXQ4A7DEP0{ z;9ksBQ-cM5^E!MNUyLGv|YxvF=G&%C=7`#PIN z#dF!S?!t##X7e9*n)RzS47k8GGr;$uuTGrrmVKxd{|6Kz9=WXzxbJsC0T#$Lj^0Uj zaoG}-U&u!ECC@9N6!TS0000000000003_7A9%`R0m8&e6aWAK07*qoM6N<$ Eg6!zkLjV8( literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..28c5b93fe6826b3017f4b086dbac8a62c5bb08fe GIT binary patch literal 346 zcmV-g0j2(lP)i`4|r%t##WwnT}vsoy*6&kZNF~!91rQvzkkRQ-Z^qcK&K|6 z&GPb-rjuuAGdu1uHg-uLqsPb@0qvh`(;XAK7Naf%C%u(ZfRmjxMmL)UN6(*vg7ZGx z^}jDb%3!R$Z*#c+`D;Ua$eHLbo%4c&5Q$UaeLPLF?1%X!)v_N<4KkU9GPw?Cdhhh^ z+$mn$#0z%bSR8Jexd8c3!lN!g@f$rvmoH=d6AC$%=Q=jSJKIT-wu*=_G3~M%K@Xo_i(g zHdj=f=l)-H()mog&*u5_*A=XeElu2~Zj>*9r-ABd>TJY1jPr+jQbB^Au6{1-oD!M+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`iSXt+lNOTg11Ia?v-l-_;$ssFYG`ZPE8> z&>}ekLiD#r(Lo@YfDrvHA0`-m6HUM*`f{_7WCCm)eYrs(nSe0i_~^@x0LfiYzx5Q2 zzKM!QCk`V*N7igAmnj)1R00s!DH`h7&AT~O$pdYySB9M{t=!rv6@UE#neb`tho z@2hVudB+=<@a6P$BVeLUM`3mfEsZ}I@7}wLpM}zmfKh0|gO``rTURliU;Hs)4M>-O zmy?6PVDuzl6!hf_OkXgUnS##7F6XNfeNWPDLqius<9rd`ZA`cb0{{R(o_|pnI4#RT z%)i((DJ}HHwfRY{|A*NgGbAcS_}KNuOCPvV_~v)@m%Z`J9G0sXxBJHVLG!y(6-2#U z2?(zJNR#}u4@xuzHKPd5r|8Lr!ro0=&7UfN(3oY5z;_yg3KkGHcsFSsA}9X?syMnK&>7H$ShaU z=Un7nwG!9?(+7(j>1E%X}0&=rDmrd#8P8C<}IS${}EhdCf>29!%@*(LJu zrzT2or46$QtJ&2kt49FYkdBot`Cxp>GF5+_)R#J1uAzv1LUDX?uzQ>snStz*E8c2 zZyV}qf<(5R48>I(GQ+~`qX}xr$Ot?6Djz)hK>ZY|1?{^7GWsjgHw{1voOX0e1)rgaY8%AY%U!Hus~fUK4voSiX?Xf>ER{`UdX?+5CTsSJ2; zs))ah$%Wmm2AyYtIzXMUgGg`I!gAM+H_~dE#noFS#g`%YD~i> ztfpWX?a-RGa~^r# zuRL41_=9ZgC4+QDUaiM(;HZjCl4O&zh>MtBZmTOM0=$`|=fy03!~sci&@*4|^j9`p z+k!2f4v<$(HKx|gEng*4t0jw*d98(_DTr22NLP$=ciAk>unnt*VhL02l9BhHuya?| z=QUC3s#}cfYh%w6#H%!=W#~Jd3uHbFIlUx-H{oT1qKrPNiAHnQ0oye10aEj8l_V|C zWCg%U5qMKOgE@w(^=vx7x^4V82B$^SA=}N8V%*KF{*PH7!fyQeSdt`3lKk)ww^SVw TH(2(>00000NkvXXu0mjfSjei5 literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-show_address/00002.png b/tests_zemu/snapshots/x-show_address/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..81b0e89028a686e32664dca5858f64d1972348c0 GIT binary patch literal 938 zcmV;b16BNqP)r1i0!{2*x34)4`pqkw`ZlD1Y9MNt$*Q54(xvqVP?L+v#| zJKm8(O$e`JmrQMF!%VW(iB=UTeMfy<$p1@<15zw0ilQhAjKJ1UvItr-%a)vbTnpQ);Yr|rA@iB~j%w%Y=hXg|2Awm*EyIPu~h!y6`NG%MK~h9v}a;i|X3km-nt zplN+@1hYaUz!jh_)jkJsmnP1MDZP7RKY5?`487KIuMemL#>O`X*J$1YUrSSyhIV~h zcuI)GgoqunB&2QM?~uP*T?}H?$M~R<-5Vfp?ml10tR8*W8j_-DgRVOW1OCnl`zuk0 zx_q#K$sm^xmcobE{Zc-CHIJ>@-c8GUh>RV4d;J|-QTkkQ35-<+TZOykRn(?8VIoL$ zrs(Z4g3j+>Cfm0XF`Z(VK|*yZU$hyCcdlsKBoppZFnu`wDdsN`Az&IcAV+)J0rhg3 zM1ltNK7fZ3vIKA2&sQkoAK4+JNtz>*Ba#h8M&Fyi1l`H2ZA&%V^1}wqXMngUgVM)r zl##y_Tb(S&Ic)-3^(vrEc)I@}B{$Io8mc?qTqds%Zq!q2m#`xA#7%OYx(8YEKVk*W zGp{5K_*!u&|F&2ZMNupVIdzD2_+1>lorBeI^N8d?Th}!>nXm(lr$&8mKV5^U{qQzS z#BmBbzY>$$$6r@TIH#{&kI4}Ty!3$wCw|AwHObZvK`z5>7D`CG+gV1k1O-%sO}y3a zn4|&C09XEJ+IA|9zf^jhb;dw9;c%)eF#0b9&n*W)_W+*GZ2k-_FG=}sFqh3HtxZLM z8|Fw#|HUaAmh3%W?8uG3YJs+S*3_x?%7#9SdkK2ml3f%$Tgz1@7K)8U(<^@m7a0oM@F6`-9TBAME-iR7O+bq6q;%8GUW?zoRCt5efj` zTlfNOWX`T7?(;HBN{l!Ap0fw=YIKI9TIf>vy)H+hfh%Ov68AAc zq=Wol+*eu>u*JWK*4UJVzoTLrS;ZD6HDh-HEwt9ARt@Ddi;Lzd)1=>dJMorrHHELI z+gV}_SF8Djo^8s1A7E&W3$dvipr_>6v;erOr}$??^`vuCvloR-ZBiS?w!O<^Y3)F* zVihU%YKPQZw;B&Tk_42azY*J^Zgq<{3;+NC00000000000000006+?#u%Ir;`Zh*& P00000NkvXXu0mjfmN!XD literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-show_address/00004.png b/tests_zemu/snapshots/x-show_address/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..336c6fdbb9c5056c6f7a9a839ec6128f3acb6e6a GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh2Vw9p|19*4k^ zJD%V6t9*Op?yfdz%OxX+gVp;)au;}B4(9;rEblK{nB4PnbH|nTT{273KA&1yUuD)c zJIDL_(HH(Mw^BD;TK#`YUiuLUSCzj@j`J(+n0?!#%qIH4y-9lS9!j3IJ}{~O!`{i! zLSOCge!JfM?wMJib*aJAi}BI(DGaIy?u?s)-+tS<lMtdxX-@PmRluu_IieQ-e(i$ElD$cP+G$MYwDfW>&47xuQMj@=S(w6WehXQW(><} z(l@`qy7~46O}#_*)5Q5@<-fw`Im# TnFL*x{UA|KS3j3^P6^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-show_address/00006.png b/tests_zemu/snapshots/x-show_address/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..283d3cce477f78ad4f7111a31cd8578152b326cd GIT binary patch literal 504 zcmV+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`iSXt+lNOTg11Ia?v-l-_;$ssFYG`ZPE8> z&>}ekLiD#r(Lo@YfDrvHA0`-m6HUM*`f{_7WCCm)eYrs(nSe0i_~^@x0LfiYzx5Q2 zzKM!QCk`V*N7igAmnj)1R00s!DH`h7&AT~O$pdYySB9M{t=!rv6@UE#neb`tho z@2hVudB+=<@a6P$BVeLUM`3mfEsZ}I@7}wLpM}zmfKh0|gO``rTURliU;Hs)4M>-O zmy?6PVDuzl6!hf_OkXgUnS##7F6XNfeNWPDLqius<9rd`ZA`cb0{{R(o_|pnI4#RT z%)i((DJ}HHwfRY{|A*NgGbAcS_}KNuOCPvV_~v)@m%Z`J9G0sXxBJHVLG!y(6-2#U z2?(zJNR#}u4@xuzHKPd5r|G8 z{#EVqtGiPg!79FruMDFHX>O`daip)+Z0C7i|6Z`18GZS?+@g=#2Q?bb^SsifBk+`& zHtZoK0<7sq9m<|cf61w*&dNK{NnusU3~Co-DcQAo5+i`McwpY)7N|q55p|G7?y9d? z#7*^*H~`Bhi=63nY_56zkSzyi{StJ$fJVACkC4gb7+v<4}WT+ zv_|tFo3L73^|E>dkR2IV*^2+nUox_E1k^n zL1wHq_^Tq=r0Iv-R#j$GvcQ6W!EK}NhN+x>j&P3g{ow)g@ya`vQtnaf7?E9>iTgT z45I{$HZ`YehY?<>Sm@(YXgmOjl`)ade|kGz&Ce2L=hZ}23u0Y!#3FnkEo+i^0OZPh z^mu$=f!=ul_jeJe@v2(}7+Hc?vzVr@2BTG0CCu+1p zc)ecWBd2_oJyZN_%due=pk=5+Az$T+gY=O0=uAuV&ivPZ)Vj6&Emw3y?s9iuvLwd&)bg4&U#R+cJyTInDJu5cv*8s--c zrJTe>)v+l1G!c2#UJ41EENv!;Vc^?-!e^yEqI2u#>8m(j&s~>w;vaXOqEI-RxoyIc zPvjZ!Gztv^rD|5drW=@)RS)Xv4bn6GSSHJH!k>)LDe2knOEpc?G)>bqYk+U0RwN+N zocgXWjd6k^Rt{pPZ@@$G<1H68{f3;TogBx`P2=u;8;bZ*7=W`hWf+U4<)5k=?vhJk zC2&d@s`90oqod45oF$MlenQ&n51EsekC2=&A^ig%3X8jgabXnh*;2rVySnudonYo^ON3VfH?u(c-UI) z6WSz^mT}z{knaIvCc+!Q$fNDfG|96uXwgIL``(OrTE=slL8gSDq80+QeceO7f2ObK z{cf(2-b=k7L72*ARtQShTU&a)d}6mAM6w5*OHg}&mp>qpI*>u)56-*kaeHxGWJ@QU_C!;C7_WF@vZSA?!sMOZ~C76#c)pGSG?jy0@d3?NE@zcrSo9~d literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-show_address_randomized/00004.png b/tests_zemu/snapshots/x-show_address_randomized/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..807131ca595f2e9821b6628b00e4fa691298ddb2 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s{ba4!+nDh2#v`~`)k3(R| z9nWw3m%Ka5f6On3NhB-2;=Fj6r}r<0SDS!(7|z^PbX0`eJS}y70`%8T>n^%dV>bk>TM}C(cF@9*Jbj^5WTF;gKGIO)y zjlJ*9*PE9W@jdm~5r5wEu#TD8y6+Pnh8_O<-8#^Bx$bnOy3REWn^jXeAFev)TXe-F zTky7j?62N_lL@yzwx7O!=&4O1W7^|)7fcr%%i5*3D%0_G;tl)cpW3Io3*7!cdXW1o sV&B=e%knGs=l(tai5cc!1_ryAe9w9}zGZ%X&;TUp>FVdQ&MBb@086r+N&o-= literal 0 HcmV?d00001 diff --git a/tests_zemu/snapshots/x-show_address_randomized/00006.png b/tests_zemu/snapshots/x-show_address_randomized/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..283d3cce477f78ad4f7111a31cd8578152b326cd GIT binary patch literal 504 zcmV+JL)*1A-~(fcB4mTz|*eb%l}+=)JG&!J_!`SWbNr`HeQMWn zLoG^1fKh)bEE)tQ9bnX7{2>L^m!b|Bs9$atD(L{(SHD~klyrcZaJ2g6BB10h$ZtK1 zsxL(&K%DwZp+1pSfn;1TRU_bQzySaNcfs!?X77TG1rs(Z+0sPjxE`|z=aFMR=D?Wc zB&==PJlu{GaJt02V%i_SB2xy3PN%2XhOR>R6#qdv{N;?n7aGxh@1H{(8505ePnsK* z30?aOaBz^$Vdiy$57782XtM6H>%Z?k-T|UUpZ?roz=eyKL9@E|Q*8nO z006*ca@`5PF(;EP3A#s$bAX}fH*VL+k_~;yX1dgr_?qHEAzNf*i~!GOx^y#z>GjnW zvZ*gQBVcpP%FfUpm*gj71njK=O<`i { + await main() +})() diff --git a/tests_zemu/tsconfig.json b/tests_zemu/tsconfig.json new file mode 100644 index 0000000..3435f95 --- /dev/null +++ b/tests_zemu/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "module": "commonjs", + "strict": true, + "esModuleInterop": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "outDir": "./dist" + }, + "exclude": [ + "node_modules", + "./dist/**" + ] +}